
Loading…
Loading…
Loading case study…
Two products needed assistants that could understand real business data without inventing information or making unsafe changes. This project uses one reusable assistant foundation for both use cases.

Chat, streaming, history, and artifacts live in one shared shell. The business logic — what the assistant actually knows and can do — is swappable. One adapter only needs to look things up safely. The other needs to act on real data safely. Same foundation, opposite risk profiles.
The Assistant Shell
Chat history, streaming responses, and artifacts — the reusable part neither adapter has to rebuild.
The Assistant Shell
Chat history, streaming responses, and artifacts — the reusable part neither adapter has to rebuild.
Four things that show the same platform doing opposite work — finding information safely, and changing real records safely.
Four things that show the same platform doing opposite work — finding information safely, and changing real records safely.

Never invents a product
Every recommendation comes from a real catalog lookup — no fabricated SKUs, no guessed prices. If nothing matches, it says so honestly instead of making something up.

The conversation follows you
Move between pages and the assistant keeps talking — chat state survives navigation instead of resetting every click.

Nothing changes without approval
The assistant proposes a change and waits. A human confirms it. Only then is anything written — and it's re-checked for authorization at that exact moment.

Plays by the app's own rules
The assistant can't see or touch anything a human in the same role couldn't. Permissions are enforced at the data layer, not just hidden in the UI.
The mechanics behind each side — how retrieval stays honest, and how mutation stays safe.

The chat platform never imports business code. Each product plugs in its own logic through one contract — so a third product could join without touching the core at all.

One model call classifies the request. Everything after that — what to search, how to render it — is plain code, not another AI decision. The model never picks the catalog result itself.

The model plans what to do and drafts a proposal — it never confirms its own writes. A human approves, and only then does a separate, model-free step re-check permissions and make the change.
History, streaming, and artifacts are shared infrastructure. Everything about what the assistant knows and is allowed to do lives outside that core — swapped per product, never hardcoded into the shell.
A single reusable assistant core powering two products with opposite risk profiles
Retrieval assistant with zero invented catalog data — every result traces to a real product row
Mutation assistant where the model never confirms its own writes — every change is independently re-verified before it's applied
Architecture built to support a third adapter without changing the shared core
© 2026 Sherif Khodeir