Five things Iranti solves that memory layers don't
Most AI memory tools store facts and retrieve them by similarity. That solves about 20% of the problem. The other 80% is coordination: agents sharing state across tools, work surviving crashes, conflicting beliefs getting resolved, teams knowing what their agents actually know. Here is where Iranti sits relative to every other option.
The label “memory layer” undersells what serious multi-agent workflows need. A memory layer stores and retrieves. That is necessary. It is not sufficient. The real pain in AI-assisted development shows up in four places that storage alone does not address: agents with no shared state, work lost to process restarts, tools that start fresh every time you switch, and nobody knowing what the AI thinks it knows.
Iranti was built for all five problems. The benchmark data covers them. Here is what each one looks like in practice.
1. Your agents share state without explicit handoff
When two agents work on the same project, the default behavior is that the second one starts blank. Agent A spends three turns finding that the database uses a non-standard connection pool. Agent B opens a new session and discovers the same thing from scratch. You pay for that context twice: in tokens, in time, and in drift risk if B reaches a different conclusion.
Iranti fixes this with identity-addressed writes. Every fact is stored under an entity and a key:project/my-api+db_pool_config. Any agent that holds the address retrieves the fact deterministically. No similarity threshold. No probabilistic miss. The second agent reads what the first one wrote.
The entity retrieval benchmark covers this directly. Iranti scores 100% recall on exact addressed lookup across all test scenarios. Competing systems using only vector retrieval average 78%.
The full benchmark suite ran 14 agent coordination scenarios covering sequential handoffs, concurrent writes, and task resumption across cold boots. Iranti passed all 14.
2. Work survives crashes and session restarts
In-memory context dies when the process dies. This is the failure mode that hurts most in practice. You close a terminal. The agent crashes. Your IDE restarts. Everything that agent knew — the file it was debugging, the constraint it discovered, the plan it had written — is gone. The next session starts blank.
Iranti writes facts to PostgreSQL at the moment of ingestion, not at session end. There is no flush step. There is no explicit save. When you restart your session, the Attendant reads the project memory and surfaces the relevant facts before the first response. The agent picks up where the previous one stopped.
The persistence benchmark ran 20 separate scenarios covering cold boots, process kills, and session restarts. Every fact written before the interruption was retrievable after. Twenty out of twenty.
“The core challenge of long-running agents is that they must work in discrete sessions, and each new session begins with no memory of what came before. Imagine a software project staffed by engineers working in shifts, where each new engineer arrives with no memory of what happened on the previous shift.”
— Justin Young, Anthropic Engineering Blog, “Effective Harnesses for Long-Running Agents” (Nov 2025)
Process isolation was the hardest test case. Running in a subprocess, killing the parent, restarting from cold: all 20 reruns passed. The upgrade continuity benchmark covers the related scenario of surviving a version upgrade.
3. You switch tools without re-briefing
Most developers who use AI for coding use more than one tool. Claude Code for reasoning tasks. Codex for bulk edits. GitHub Copilot inside the IDE. Each tool starts with no knowledge of what the others discovered. Switching from Claude Code to Codex means copying context by hand, or just accepting that Codex starts from scratch.
Iranti solves this with a single shared memory store. All three tools connect to the same Iranti instance through MCP. What Claude Code writes, Codex reads. What Copilot discovers, both of them can retrieve. The setup is three commands:
In the 6,000 downloads data, the three-tool pattern was more common than expected. A meaningful fraction of early adopters were already running at least two of these tools on the same project. That signal drove the Copilot integration up the roadmap.
The cross-tool handoff also covers a broader case: different team members using different tools on the same codebase. If your colleague prefers Codex and you use Claude Code, your shared project memory stays consistent. Neither tool re-discovers what the other already wrote.
4. Conflicting agent beliefs get resolved, not silently overwritten
Two agents working on the same codebase will eventually write different values to the same key. Agent A concludes the auth service uses JWT. Agent B, working from a different file set, concludes it uses session tokens. A generic memory layer picks one and discards the other, silently. You find out when something breaks.
Iranti detects the conflict before writing. The Librarian component compares the incoming value against the stored one, checks confidence scores, recency, and source identity, and resolves or escalates. If it resolves, the winner is recorded with a conflict log entry. If it cannot resolve, it escalates to human review through the Resolutionist.
The conflict handling benchmark tests this across adversarial write patterns: simultaneous updates, high-confidence vs low-confidence agents, and stale updates arriving out of order. Iranti resolves correctly in all tested scenarios. No silent data loss.
“Agents don't fail because they can't reason. They fail because they operate on inconsistent views of shared state.”
— Mikiko Bazeley, O'Reilly Radar, “Why Multi-Agent Systems Need Memory Engineering” (Feb 2026)
This matters more as agent counts grow. A single-agent workflow rarely produces conflicts. A three-agent workflow running in parallel produces them regularly. The Librarian runs on every write, not just when conflicts are expected.
5. You can inspect what your agents actually know
Black-box AI memory is a liability on a team. If your agent makes a decision based on a stale or wrong fact, you need to find it and correct it. With a generic memory layer, you have no view into the stored state. You cannot audit it. You cannot correct it. You cannot tell whether the agent is acting on what you told it or on something it inferred three sessions ago.
Iranti exposes the full memory store through a queryable API and a web interface. Every stored fact has a source tag (which agent wrote it), a confidence score, a timestamp, and a history of past values. You can query by entity, by key, by agent, or by topic. You can overwrite wrong facts directly. You can archive stale ones.
For teams, this changes the trust model. The AI is not a black box that occasionally gets things wrong for unknown reasons. It is a system with inspectable state that you can read, correct, and audit. The 2024 State of AI Agents report from Scale AI found that lack of observability was the top reported barrier to deploying AI agents in production environments. Iranti addresses this directly.
Self-hosting also means the data stays in your infrastructure. No vendor holds your project memory. No third-party sees your codebase facts. The docs cover local setup in under five minutes.
One more: token budgets stay manageable as sessions grow
Long coding sessions accumulate tokens. Every file read, every tool call, every re-read of a value the agent already retrieved — it all stays in context. Without external memory, agents re-read files to retrieve values they already knew. The cost compounds.
The context economy benchmark measured this directly over a scripted 15-turn session. By turn 15, the Iranti arm uses 37% fewer input tokens than the no-memory baseline. The gap grows because each recall turn avoids a full file re-read. In sessions with 8 or more recall turns, the savings are consistent.
This is not the core value proposition of Iranti, but it is a real effect. Faster sessions, lower API costs, and less context pressure on the model all follow from the same mechanism: facts stay in memory and get retrieved by address instead of re-read from disk.
What does this mean for you
The five problems above are not edge cases. They show up in any workflow where more than one agent runs, sessions restart, or tools switch. That covers most serious AI development work in 2025.
A memory layer that only stores and retrieves solves the first problem partially. Iranti solves all five because the architecture was built around coordination, not storage. The storage is PostgreSQL — reliable and boring. The coordination layer on top is what differentiates it.
The Model Context Protocol makes this tool-agnostic. Any MCP-compatible client connects to the same runtime. As new tools adopt MCP — and the list grows fast — the same Iranti instance extends to cover them without configuration changes.
Install takes one command. The quickstart guide covers Claude Code setup in under five minutes. If you run two AI tools on the same project, the setup pays for itself in the first session.
Frequently asked questions
Is Iranti just a vector database wrapper?
No. Iranti uses PostgreSQL with pgvector, but the primary retrieval path is deterministic addressed lookup — entity plus key — not similarity search. Vector search exists for when the exact key is unknown. The architecture also includes conflict resolution, operator visibility, and session recovery, none of which a vector database provides.
How is Iranti different from Claude's built-in memory?
Claude's built-in memory is single-agent and lives inside Anthropic's infrastructure. Iranti is self-hostable, multi-agent, and tool-agnostic. The same memory store works for Claude Code, Codex, and GitHub Copilot. Claude's memory does not survive switching to Codex. Iranti's does.
Does Iranti work with multiple AI coding tools at the same time?
Yes. Iranti provides setup commands for Claude Code, Codex, and GitHub Copilot. All three tools read from and write to the same store. A finding from Claude Code is immediately available when you switch to Codex.
What happens when two agents write conflicting facts about the same entity?
The Librarian component detects the conflict and resolves it using confidence score, recency, and source identity. Unresolvable conflicts escalate to human review. Silent overwrites do not happen.
Is Iranti free to use?
Yes. Iranti is open source under AGPL-3.0. The npm package and the Python package are both free. Self-hosting requires Node.js and a PostgreSQL database.
Does Iranti work outside of coding workflows?
Yes. The same memory infrastructure works for research workflows, document pipelines, and any multi-step AI task where agents need shared state. The research workflows use case is documented in the blog.
Loading...