Your production agent has amnesia

Without a state layer:

  • Context drifts across sessions.
  • Facts conflict across tools and tasks.
  • Decisions execute without a reproducible trail.

Neotoma is the deterministic state layer for long-running agents. Every observation is versioned. Every entity snapshot is reproducible. Every decision can be replayed.

RAG retrieves documents. Platform memory personalizes chat. Neither maintains durable state. Neotoma does — with deterministic guarantees and no silent mutation.

Open-source·v0.3.11·11 releases·MIT-licensed
agent session — without state layer
$|
/

The problem

Same question, different outcome

Without a state layer, agents return stale or wrong data. With Neotoma, every response reads from versioned, schema-bound state.

Financial facts
without state layer
What were the terms on the Kline contract?
No contract found for Kline.
with state layer
What were the terms on the Kline contract?
Net-30, signed Oct 12, auto-renews Q1.

Conflicting records, silent data loss

Two agents read different versions of the same contract. One quoted current terms; the other used a stale snapshot. Neither knew the other existed.

People & relationships
without state layer
Use John Smith from legal on this thread.
Sending to Lee from sales.
with state layer
Use John Smith from legal on this thread.
Sending to John Smith from legal.

Stale contact, wrong recipient

The agent used an outdated org chart. The message went to someone who left the project weeks ago — and no versioned record flagged the change.

Guarantees

Agent memory systems make different guarantees

Most AI memory systems optimize storage or retrieval. Neotoma enforces state integrity.

  • Platform: built-in chat memory from Claude, ChatGPT, Gemini and others.
  • Retrieval / RAG: vector stores like Mem0 and Zep that recall by similarity.
  • Files: markdown, JSON, or CRDT docs the agent reads and writes directly.
  • Deterministic: Neotoma’s append-only state layer with versioned, auditable guarantees.
Plat.
RAG
Files
Det.
Plat.
RAG
Files
Det.
Plat.
RAG
Files
Det.
Plat.
RAG
Files
Det.

Get started

Agents install Neotoma themselves

Paste this prompt into Claude Code, Codex, Cursor, or OpenClaw. The agent handles npm install, initialization, and MCP configuration.

Follow this workflow to set up Neotoma:

1. Install Neotoma with npm install -g neotoma.
2. Initialize Neotoma with neotoma init.
3. Report what changed after install/init.
4. If I ask for integration setup after init, link the matching setup guide in docs/developer/ (for example mcp_cursor_setup.md, mcp_claude_code_setup.md, mcp_openclaw_setup.md).
...
5-minute integrationFully reversible

More options: Manual install · Docker · CLI reference

Agent installs and initializes via npm, scans context and platform memory, previews candidates with provenance, and stores only what you approve.

State inspection

Inspect agent state like version control

When a production agent sends the wrong data, you need to trace why. Neotoma stores every state mutation as a versioned observation so the full timeline can be inspected and replayed.

Observation timeline

$ neotoma observations list --entity-id contract:Kline

  #   observed_at   source              change
  1   Oct 10        import:drive        (created)
  2   Oct 12        agent:renewal       renewal_date
  3   Oct 14        agent:amendment     payment_terms

Entity snapshot with version history

$ neotoma entities get contract:Kline

  entity_type:   contract
  entity_id:     contract:Kline
  version:       3
  payment_terms: Net 30
  renewal_date:  2026-01-15

  Previous (v2): payment_terms: Net 60

How it works

Architecture

Neotoma treats memory as state evolution, not retrieval. Every state change is versioned with full provenance.

  • Deterministic. Same observations always produce the same versioned entity snapshots. No ordering sensitivity.
  • Immutable. Append-only observations. Corrections add new data — they never erase.
  • Replayable. Inspect any entity at any point in time. Diff versions. Reconstruct history from the observation log.
  • Structure-first. Schema-first extraction with deterministic retrieval. Optional similarity search when embeddings are configured.

Resources

Learn more