The tools
Reading
exo_context
exo_context
What it does. Retrieves the user’s own context: past decisions, graph connections, and any conflicts with positions they held before.When an agent calls it. Before answering anything that references “my”, “our”, “we”, “earlier”, “last time” or “previously”, and before asking a clarifying question the graph could already answer.
Equivalent REST.
POST /v1/retrieve for query. GET /v1/recall/identity, /graph, /insights and /temporal for the matching modes. POST /v1/brain/query for brain.mode: "compare" puts two retrievals side by side. Phrase the question as “A vs B”.search
search
What it does. Returns ranked results with ids, for
fetch to expand.Why it exists. OpenAI’s Deep Research contract recognises exactly two tools, search and fetch. Exo exposes both so ChatGPT’s Deep research and Company knowledge surfaces work. Exo-aware clients should prefer exo_context, which assembles context, identity and contradictions in one call instead of two round trips.Equivalent REST. POST /v1/retrieve, or POST /v1/search for the cheaper primitive without the cognition layer.fetch
fetch
What it does. Returns the full content of one graph node, by the id
search gave you.Equivalent REST. GET /v1/recall/graph/node/{node_id}.Writing
exo_capture
exo_capture
What it does. Records one conversation turn: what was asked, what was answered, the topics, the facts learned, the decisions made.When an agent calls it. After a substantive exchange. This is the mechanism by which the graph grows across sessions rather than only at import time.Equivalent REST.
POST /v1/ingest.exo_ingest
exo_ingest
What it does. Saves content to the graph. Takes inline text, a list of file paths, or a single file path.When an agent calls it. When someone pastes a document, shares content, or says “remember this”, “save this” or “note that”.Import-grade files,
.json, .zip, .pdf and .docx, go through the full parse pipeline. Other extensions are read as text and ingested inline.Equivalent REST. POST /v1/ingest for text, POST /v1/ingest/batch for many items, POST /v1/import for files.exo_ingest_codebase
exo_ingest_codebase
What it does. Walks a project, chunks source files on function and class boundaries, and ingests them so later questions about the codebase have something to read. Respects
.gitignore and .exoignore, and only re-ingests files that changed.Equivalent REST. POST /v1/ingest/batch. Chunking on syntax boundaries is the tool’s own work, not something the route does for you.exo_edit
exo_edit
What it does. Four actions on an existing memory:
find to locate a node, edit to change its content, correct to supersede an old belief with a new one and keep the history, and forget to erase it.When an agent calls it. When someone says “that’s wrong”, “I changed my mind about”, “actually it should be”, or “forget that”.Equivalent REST. POST /v1/retrieve for find, PATCH /v1/graph/nodes/{id} for edit, POST /v1/graph/nodes/{id}/supersede for correct, DELETE /v1/graph/nodes/{id} for forget.Reasoning and control
exo_scaffold_prompt
exo_scaffold_prompt
What it does. Wraps a prompt in the subject’s cognitive scaffold and returns the scaffold plus the focal nodes that shaped it. Backs the Claude Code session-start hook.Equivalent REST.
POST /v1/condition/scaffold. For a full session prompt rather than a single wrapped prompt, POST /v1/condition/session. See Conditioning your own agent.exo_decide
exo_decide
What it does. Weighs two options against evidence already in the graph, and reports evidence strength, drift rate, competing hypotheses and confidence.Equivalent REST. Two
POST /v1/retrieve calls, one seeded with each option, compared on their cognition blocks. The tool does the comparison for you.exo_configure
exo_configure
What it does. Adjusts how Exo personalises responses: voice mode (
mirror, professional, casual, default), quality mode (fast, balanced, thorough) and autonomy (conservative, balanced, autonomous).Equivalent REST. GET /v1/settings, PATCH /v1/settings, POST /v1/settings/reset.exo_purge
exo_purge
What it does. Wipes knowledge-graph layers for the current organization. Destructive and irreversible.Always run it with
dry_run=True first. That returns the counts and a confirm token. Re-run with dry_run=False and the exact token to delete.Equivalent REST. POST /v1/purge, which is the same two-phase ceremony. Account-level tables such as API keys and settings are never touched by either. See Forgetting and portability.Quick map
“Equivalent” means the same capability, not a literal proxy. A tool may do work of its own on either side of the call, such as chunking a codebase on syntax boundaries or formatting a result for a model to read. Build against the routes when you want the raw payload.
Scopes still apply
A tool cannot do anything the key behind it is not allowed to do. An agent given a key scopedread plus graph:write can read, edit and supersede, and exo_edit’s forget action fails, because erasure needs memory:forget.
That is the recommended posture for a coding agent: let it correct its own mistakes, do not let it destroy content. See Scopes.
Next
Claude Code
Connect a client and get these tools in your session.
Conditioning your own agent
Use the same identity in a model Exo does not host.