Auditability
Every memory is provenance-chained. Every recall is replayable. Every supersession is timestamped. An auditor can reconstruct what any agent knew at any point in time.
The audit-grade memory backbone for multi-agent AI. · Bitemporal. · Deterministic. · Self-hosted. · MIT.
pip install attestor
Every AI agent starts the day with amnesia. Single agents rediscover the same facts every run. Multi-agent pipelines are worse — the planner's decisions never reach the executor, the researcher's findings never reach the reviewer. Teams pass giant prompts between agents and hope nothing important fell off the edge.
In a regulated environment, that's not technical debt. That's a compliance failure. Auditors need to know what the agent knew, when it knew it, and which source grounded the decision. Today, most teams can't answer that question. Attestor is built so you can.
We had a planner, a coder, a reviewer, a deployer — four agents in a pipeline. None of them knew what the others learned. We were burning tokens on stale context and had no audit trail. Engineering Lead, Fortune 100 Bank
The commitments Attestor will not compromise.
Every memory is provenance-chained. Every recall is replayable. Every supersession is timestamped. An auditor can reconstruct what any agent knew at any point in time.
No LLM in the critical path. Same query, same ranking, every time. Unit-testable. SOC2-auditable. Defensible to the SEC, FINRA, and FDA.
Six RBAC roles, namespace isolation, contradiction resolution, write quotas. The only memory layer that treats agent teams as first-class and prevents runaway agents from corrupting state.
Self-hosted. Air-gappable. BYOK encryption. No SaaS middleman. Your data never leaves your infrastructure.
When an agent calls recall, six cooperating steps find, narrow, rank, diversify, decay, and fit.
When an agent calls recall(query, budget),
a six-step semantic-first pipeline finds, narrows, ranks, diversifies, decays, and fits the most relevant memories into the requested token ceiling.
Ten million memories in the store. Your context window never sees more than the budget. Same query, same ranking, always.
Three storage roles, every memory persisted across all three. Lose one role and Attestor degrades explicitly — it never silently returns stale results.
Content, tags, entity, category, timestamps, provenance, confidence. Postgres 16 by default; AlloyDB, Cosmos DB, DynamoDB, or ArangoDB in the cloud.
Dense embedding per memory. Finds memories by meaning when tags or words don't overlap the query.
Entity nodes and typed edges. Query "Python" surfaces "Django" via the relationship graph and BFS depth 2.
Every fact in Attestor has a validity window. When a fact changes, the old version is superseded — not deleted. The timeline is replayable to any point in the past. Auditors can reconstruct exactly what the system knew at any historical moment.
recall(query, as_of="2026-04-11") replays what the system knew on that date.
Nothing is deleted. Nothing is lost.
Every agent, project, or tenant gets its own namespace. Isolated by default, shared when configured.
Orchestrator, Planner, Executor, Researcher, Reviewer, Monitor. Read-only observers to full admins.
Know which agent wrote which memory, when, and under which parent session.
Agent A says "user works at Google." Agent B says "user works at Meta." Attestor auto-supersedes. Full history preserved.
recall(query, budget=2000). Each agent receives exactly what fits its context window.
Prevent a runaway agent from flooding the store with noise. Rate-limit, flag, or tag for human review.
One Python library. One Starlette ASGI container. Six deployment targets — laptop, self-hosted VM, AWS, Azure, GCP, on-prem. The three storage roles swap per column. Your agent code never learns which backend it's talking to.
$ pip install attestor $ attestor api --host 0.0.0.0 --port 8080
Postgres 16 · pgvector · Neo4j + GDS
Docker Compose. Three storage roles, one command up.
Postgres 16 · pgvector · AGE
Docker. One database, all three roles. Full SQL audit.
App Runner · Arango Oasis
One engine, three roles. Scale to fleet or to zero.
Cloud Run · AlloyDB
ScaNN vector · pgvector · AGE. Scale-to-zero pricing.
Container Apps · Cosmos DiskANN
Managed DiskANN vector · Gremlin graph · SQL.
from attestor import AgentMemory from attestor.context import AgentContext, AgentRole # Orchestrator context — root of a multi-agent pipeline ctx = AgentContext.from_env( agent_id="orchestrator", namespace="project:acme", role=AgentRole.ORCHESTRATOR, token_budget=20000, ) # Spawn sub-agents with inherited provenance planner = ctx.as_agent("planner", role=AgentRole.PLANNER) planner.add_memory( "Use event sourcing for the order service", category="technical", entity="order-service", ) # Executor reads what planner wrote — same namespace, ranked recall executor = ctx.as_agent("executor", role=AgentRole.EXECUTOR) results = executor.recall("order service architecture", budget=2000)
Not a config file. Not an MCP setup guide. Three words. Attestor interviews you, installs itself, wires the hooks, and runs a health check before you've put the kettle on.
Paste into Claude Code · Global or project scope · Auto-merges MCP config
Free. Forever.
Read the docs →Contact for pricing
Join waitlist →Contact for pricing
Speak with sales →