Skip to contentNewChat and Code are in previewJoin the waitlist

Chatbots and assistants

Chatbots that remember, and stay in bounds.

Build a branded assistant on EU-resident models with one OpenAI-compatible base_url. Recall remembers each user so you stop resending context and answers from your own documents, while the firewall and the audit trail keep every reply safe and on the record.

drop-in · grounded · recorded

One reply, and the three things that had to be true for it.

A real assistant is six integrations in a trench coat.

A demo is one model call. A product needs memory of each user, retrieval over your content, safety against prompt injection, personal data handled lawfully, and all of it kept in the EU. Stitch that together yourself across vendors and you own the glue, the outages and the compliance gap.

What you get

Everything an assistant needs, behind one endpoint.

Three problems that usually take three vendors. Here they are three services behind the base_url you already point at.

  • Drop in your client

    Point your existing OpenAI client at one base_url and stream responses from EU-resident models. Chat, tools and structured output behave exactly as they do today.

  • Remembers and grounds

    Recall brings back each user's durable facts and answers from your documents, so replies are personal and accurate without you resending context every turn.

  • Safe and on the record

    The firewall pseudonymizes personal data before anything leaves, and the audit trail keeps a line per reply. On by default, recorded throughout.

What it looks like

The second conversation, three weeks later.

The same customer comes back. You resend nothing. The assistant already knows who they are, and says which fact it used.

  1. 01ScopeMemory is per end-userThe user field is the boundary. One customer's facts are never readable from another's conversation, or another workspace's.
  2. 02StateThreads hold the turn historyPass a thread id and the recent turns are kept server-side, so you stop paying to resend the same context every message.
  3. 03ErasureErasable on requestWhen that customer asks to be forgotten, one call wipes everything Recall stored for them, wired straight into your own deletion flow.

One turn. No history resent, no profile lookup, no summary.

FAQ

Questions people ask when building an assistant.

Do we have to resend the conversation every turn?
No. Pass a thread id and the recent turns are kept server-side, and Recall brings back the user's durable facts on its own.
Can one customer's memory reach another's conversation?
No. The user field is the boundary, and a workspace is a boundary above it. Isolation is by construction rather than by configuration.
What happens when a customer asks to be forgotten?
One call wipes everything Recall stored for that end-user, which you can wire straight into your own deletion flow.
How do we keep the bot on our own material?
Recall answers from the documents you gave it rather than from the model's general knowledge, and the audit trail keeps a line per reply, so an answer you disagree with is one you can find and trace back.
Does our customers' personal data leave the EU?
Not unless you allow it. The default is an EU-resident model, and an external call is pseudonymized by the firewall before it leaves.

Start here

Ship an assistant you can trust.

Create a key, point your client at Akumi, and build a chatbot that remembers, grounds and stays in bounds.