# Chatbots and assistants: remember users, stay in bounds

Build a branded assistant on EU-resident models with one base_url. Recall remembers each user, answers from your documents, and the firewall keeps personal data out of the model.

## 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.

## 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.

## 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. Memory is per end-user: The user field is the boundary. One customer's facts are never readable from another's conversation, or another workspace's.

2. Threads hold the turn history: Pass a thread id and the recent turns are kept server-side, so you stop paying to resend the same context every message.

3. Erasable on request: When that customer asks to be forgotten, one call wipes everything Recall stored for them, wired straight into your own deletion flow.

## Turn them on as you grow.

Start with the API and switch on each capability when you need it. Every service is metered on its own, so the ones you leave off cost nothing.

- Inference API: OpenAI-compatible chat, tools and streaming.

- Recall: Remembers each user and answers from your documents.

- Model Router: Sends each message to a model you approved.

- Firewall: Pseudonymizes personal data before egress.

- Cache: Serves repeat questions in milliseconds.

- Audit Trail: One record per message, retained on your policy.

## 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.

## 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.
