Agent mode and engines
Multi-step investigations, cross-referencing, and the native, OpenCode and Claude Code harnesses.
By default a request is one model turn with up to eight tool steps. Agent mode runs a coding-agent style harness instead: the model plans, gathers evidence across every relevant system, chases leads, verifies, saves what it learned, and answers once.
Ask for it with "memtro": {"mode": "agent"}, a :agent suffix on any model id (auto:agent), or make it the default under Dashboard → Routing → Agent mode. The Chat page uses it by default.
What the agent does
- Cross-references by default. A question about one record (a ticket, deal, invoice, order, customer, email) is treated as a request for the full picture. After fetching it, the agent pulls out every identifier and looks them up in the other connected systems: the CRM for the customer and company, databases for orders and accounts (schema first, then SQL), billing for invoices, email and calendar for prior contact, docs for the relevant policy.
- Works in parallel and delegates:
memtro_delegatehands self-contained sub-tasks to worker agents with the same tools. - Saves durable facts it learned with
memtro_remember, never secrets. - Answers once, conclusion first, with where each fact came from, and ends with one line per system it consulted, including the ones that had nothing.
The step budget (default 30) and the delegate model are configurable. Agent mode also turns on each provider's deep-thinking setting.
Engines
Three harnesses can run agent mode. All of them expose the same tools and stream the same progress.
| Engine | Providers | Where it runs | When to use it |
|---|---|---|---|
| Native | all | inside Memtro | The default. Fastest, supports client-declared tools. |
| OpenCode | all | a one-shot container per request | A full coding-agent harness with any provider. Memtro's tools reach it over MCP with a short-lived token. |
| Claude Code | Anthropic key or Claude Code token | a one-shot container per request | Claude Code's own harness. Also how claude-code/* models always run. |
Choose the engine per request with "memtro": {"engine": "opencode"} or as an organisation default under Routing → Agent mode. Requests with client-declared tools always use the native engine.
Sandboxing
OpenCode and Claude Code never run on the server itself. Each request starts a throw-away container with all Linux capabilities dropped, a read-only root filesystem, no new privileges, tmpfs scratch space, and limits of 1 GB memory, one CPU and 512 processes. Nothing from the application or the host is mounted; the container sees only the generated prompt and config files and reaches Memtro through its MCP endpoint with a token minted for that user and that request.
Progress and results
Tool activity streams as reasoning_content deltas so chat clients can show the work in progress. The final response lists every tool call in memtro.tools. Facts learned during the run are extracted into memory, and connector results are anchored into the graph.