Personalized AI assistants that know their user
Assistants that pick up where the last conversation left off: they remember across months, act through 40+ tools, answer by text or by voice and take files — sold through a storefront of personas, each with its own character and voice.
The challenge
The client wanted assistants that build a relationship with the user, not chatbots that start over every session. That is a systems problem, not a prompting one: memory has to survive months of conversation without the context growing until every answer is slow and expensive, the model has to be allowed to act without being able to do damage, and all of it has to be safe enough to open to paying users.
Our approach
We split memory into tiers instead of one growing context: the live conversation, past interactions grouped into episodes, and a long-term store where facts are compressed into a knowledge graph. Retrieval is semantic with metadata filters, only the few most relevant entries reach the prompt, and a durable reflection pipeline compresses and prunes on a schedule rather than on demand. Acting is a ReAct loop over 40+ tools with a hard cap on iterations, prompt caching and extended thinking to keep latency and cost predictable, and an eval set so every prompt or tool change is scored before it ships. The tools sit behind their own authenticated server, and each assistant gets a character composed from layered system prompts and its own synthesized voice.
The results
The platform shipped with an assistant storefront, subscription trials and an admin console. Conversations carry across sessions without the context bill growing with them, the assistant answers by text or voice and takes files, and everything exposed to the outside was hardened before a paying user ever touched it.
What we did
- Designed memory in tiers — live conversation, episodes, long-term store — so context stays small while the relationship grows
- Modelled the long-term layer as a knowledge graph with semantic vector recall, so the assistant knows how facts connect, not only which ones exist
- Built the retrieval layer: semantic search with metadata filters, and only the top entries injected into the prompt
- Put compression and pruning on durable scheduled workflows, so memory is curated without anyone curating it
- Built the ReAct loop over a suite of 40+ tools, with a hard iteration cap, prompt caching and extended thinking
- Set up an eval suite of real conversations and scored every prompt and tool change against it before release
- Exposed the tool suite as an authenticated tool server on a standard protocol
- Composed each assistant identity from layered system prompts and gave it its own generated voice
- Hardened everything facing the outside to LLM security standards: prompt-injection defence, least privilege per tool, every call logged
- Shipped the assistant storefront, subscription trials and the admin console