Self-hosted · MCP-native · MIT-licensed
Memory for AI agents that stays on your servers — and tells you when it's lying.
Mnemos is a self-hosted memory + evidence layer for AI agents. Every recall ships with citations, every contradiction surfaces explicitly in the query response, and every byte stays on your infrastructure. Drops into Claude Desktop, Cursor, LangGraph, or any MCP-compatible runtime in one config block.
Built for teams where wrong memory is a business risk: regulated B2B AI, internal copilots, and on-prem agent platforms.
Own your memory infrastructureSingle Go binary, MIT license, and storage in your stack.
Reduce hallucination risk from memory driftContradictions are first-class and surfaced before response generation.
Pass audits fasterEvery claim links to evidence and every correction carries a reason.
Integrate with your current agent runtimeUse HTTP, CLI, gRPC, or MCP with LangGraph, CrewAI, and custom systems.
Live proof
Same prompt, safer outcome when memory is auditable.
Mnemos helps your system avoid confidently repeating stale or contradictory memory by forcing evidence and contradiction handling into the loop.
Without Mnemos
Agent answer
"Deployment succeeded in production."
No contradiction surfaced.
No evidence shown.
Wrong state repeated.
With Mnemos
Agent answer + memory audit context
"There are contradictory claims about deployment status.
Latest resolution: rolled back at 14:02."
evidence: ev_1
contradiction: [cl_a, cl_b]
confidence: 0.84
Fast activation
Start with one endpoint, expand only when needed.
Mnemos exposes one HTTP API. Any language with an HTTP client can add memory in five lines — copy/paste, then own it.
import httpx, uuid
m = "http://localhost:7777"
run = str(uuid.uuid4())
# Remember something
httpx.post(f"{m}/v1/events", json={"events": [{
"id": str(uuid.uuid4()),
"run_id": run,
"source_input_id": "chat-session-1",
"content": "user prefers vegetarian options",
"timestamp": "2026-05-03T16:00:00Z",
"metadata": {"role": "preference"},
}]})
# Recall it later (months later, same call)
events = httpx.get(f"{m}/v1/events", params={"run_id": run}).json()
run_id — full chain replay
months later. Add structured claims (fact,
decision, hypothesis) when you need
contradiction detection and evidence linking. Open source,
self-hosted, no SDK to lock you in.
Proof of value
When facts conflict, Mnemos surfaces it before your AI response hardens the error.
Beyond the five-line memory write, Mnemos extracts structured claims, links evidence, and detects contradictions — the parts that make replay-by-run-id more than a glorified log. No API keys required for any of the below; add an LLM provider only when you want grounded answers.
$ go install github.com/felixgeelhaar/mnemos/cmd/mnemos@latest
$ mnemos process --text "The deployment succeeded in production.
The deployment did not succeed in production. Response times averaged 45ms."
ingested 1 event · extracted 3 claims · 1 contradiction detected
$ mnemos query "What happened with the deployment?"
{
"claims": [
{ "id": "cl_a", "text": "The deployment succeeded in production",
"type": "fact", "confidence": 0.91,
"evidence": [{ "event_id": "ev_1", "span": [0, 47] }] },
{ "id": "cl_b", "text": "The deployment did not succeed in production",
"type": "fact", "confidence": 0.91,
"evidence": [{ "event_id": "ev_1", "span": [49, 95] }] }
],
"contradictions": [
{ "between": ["cl_a", "cl_b"], "kind": "polarity_conflict" }
]
}
$ mnemos resolve cl_a --over cl_b --reason "rolled back at 14:02"
resolved · cl_a now valid_to=2026-05-02T14:02:00Z
$ mnemos query --at 2026-05-01 "What happened with the deployment?"
# returns the pre-rollback world — same store, point-in-time view
Where it fits
Most memory tools optimize for convenience. Mnemos optimizes for trust.
Mnemos is one of several ways to add memory to an AI app. The right choice depends on whether you need a hosted SDK, raw similarity search, a notes app, or a substrate you self-host. Mnemos is the last one — and the only one that ships with contradiction detection and replay-by-run-id built in.
Architecture
Ingest · Extract · Relate · Query.
Events are immutable. Claims are derived. Relationships connect claims. Embeddings rerank. Trust falls out of confidence × corroboration × freshness. No magic.
text · git · slack
prs · markdown · pdfs
immutable log
append-only · run-tagged
derived assertions
fact · hypothesis · decision
claim-to-claim edges
supports · contradicts · causes
answers + evidence
contradictions inline
Trust score · confidence × corroboration × freshness
Per-claim half-life decays freshness over time; mnemos verify ticks it back up. Trust feeds query ranking and contradiction surfacing.
Run it
From install to trust signal in under five minutes.
brew install felixgeelhaar/tap/mnemos
# or: go install github.com/felixgeelhaar/mnemos/cmd/mnemos@latest
mnemos process --text "The deployment succeeded in production.
The deployment did not succeed in production."
mnemos query "What happened with the deployment?"
SQLite ships with the binary. No Docker, no hosted service, no API key. Add a provider when you want grounded answers:
export MNEMOS_LLM_PROVIDER=anthropic
export MNEMOS_LLM_API_KEY=sk-ant-…
mnemos query --llm "What happened with the deployment?"
Inspect the audit chain
mnemos history --kind=claim cl_a # every state change with reason
mnemos verify cl_a # re-check against source events
mnemos export --kind=lesson # YAML-frontmatter markdown for review
Wrap LangGraph, CrewAI, or any MCP-compatible agent
Mnemos doubles as the audit substrate beneath any AI agent. Each
node-or-step posts one event keyed to a single run_id;
the full reasoning chain is one HTTP call away weeks later.
cd examples/refund_triage_langgraph
pip install -r requirements.txt
python agent.py --customer-id CUST-42 --amount 245.00
curl -s "http://localhost:7777/v1/events?run_id=<run-id>" | jq
The example wires raw HTTP, no SDK — four lines per node get you a
defensible audit trail. Source:
examples/refund_triage_langgraph/.
FAQ
Questions teams ask before they replace hosted memory
Do I need an LLM API key to start?
No. Ingest, extraction, contradiction detection, evidence linking, and replay work offline. Add an LLM later for grounded natural-language answers.
Can we keep data fully in our environment?
Yes. Mnemos is self-hosted. You choose backend and network boundaries. Nothing requires vendor cloud by default.
How hard is migration from a hosted memory API?
Most teams start by dual-writing events for one workflow, validate replay/audit quality, then switch reads after confidence checks pass.
What is the operational burden?
Single Go binary, SQLite by default. Move to Postgres/MySQL/libSQL when you need shared infra and stronger operational controls.