NewJobs: scheduled actions created from chat, personal or shared.Learn more
Product

Agent mode and engines

Multi-step investigations, cross-referencing, and the native, OpenCode and Claude Code harnesses.

Open Memtro

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_delegate hands 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.

EngineProvidersWhere it runsWhen to use it
Nativeallinside MemtroThe default. Fastest, supports client-declared tools.
OpenCodealla one-shot container per requestA full coding-agent harness with any provider. Memtro's tools reach it over MCP with a short-lived token.
Claude CodeAnthropic key or Claude Code tokena one-shot container per requestClaude 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.