NewRelease 0.12.3 is out: Engine v0.12.3, Dashboard 0.5.2, Helm 0.12.3, the four SDKs, CLI 0.8.2 and MCP 0.12.3Release 0.12.3 is outSee what's new →
COMPARE · LETTA

Letta is an agent harness. Dakera is the memory layer under any agent.

Letta Code is a stateful agent harness: the agent rewrites its own memory. Dakera does not run your agent at all. It stores and recalls memories deterministically, on-device, for whichever agent or framework you already use. They solve different problems, and this page shows where the line falls.

Reviewed October 2026

Who edits the memory

In Letta Code, memory lives in git-backed Markdown files (MemFS). The agent reads and edits them with ordinary file tools, and background "dreaming" subagents review recent conversations and consolidate lessons. Each of those steps is a model conversation. In Dakera, your agent calls store and recall, and the server does the rest locally.

Letta Code: the model edits its own memorytokens per memory decision
Agent turncontext holds root memory files
LLM calldecides what is durable and where it goes
File edit + git commitMemFS, with version history
Dreaming subagentsbackground LLM conversations that consolidate
Dakera: deterministic store and recallno LLM in the memory path
Any agent or appdecides when to call
storeembed + extract entities on-device
recallBM25 + vectors, RRF, cross-encoder rerank
Context for the promptranked memories, plus a rerank_report
Your infrastructureThird-party API
Letta details from its Letta Code README and docs. Whether a model call is "worth it" depends on the memory you want: judgement-heavy notes suit an agent that writes its own, high-volume recall suits a service.
Letta CodeDakera
What it isAgent harness: CLI, desktop app, browser and chat channels, skills, subagentsMemory server your agent calls over REST, SDKs or MCP
Memory formMarkdown files in a git repositoryRecords with vectors, entities, importance, TTL and decay
Per-memory costModel tokens whenever the agent or its subagents edit memoryNone; embeddings and extraction run in the process
Where it runsLetta Cloud by default, or locally; you choose a model and keysYour infrastructure; one container
LicenceApache 2.0MIT SDKs, CLI and MCP server; proprietary server binary, no usage fees

One memory, every agent

Because Dakera is a service, agents built in different frameworks can share one store. Point a LangChain agent, a CrewAI crew and Claude (through the MCP server) at the same agent_id, and what one learns the others recall.

One Dakera server, three clients
LangChain agentlangchain-dakera 0.3.0
CrewAI crewcrewai-dakera
Claudedakera-mcp: 14 core tools, 100+ via profiles
Dakeraagent_id "support-bot"
Your infrastructure
LangChain writes
from langchain_dakera import DakeraMemory

memory = DakeraMemory(
    api_url="http://localhost:3000",
    api_key="dk-mykey",
    agent_id="support-bot",
)
memory.save_context(
    {"input": "Prefers email over phone."},
    {"output": "Noted."},
)
CrewAI recalls
from crewai_dakera import DakeraStorage

storage = DakeraStorage(
    api_url="http://localhost:3000",
    api_key="dk-mykey",
    agent_id="support-bot",
)
hits = storage.search("contact preference")
# Claude via dakera-mcp: same agent_id

Class names from the LangChain and CrewAI integration pages. AutoGen, LlamaIndex, Strands, LangChain.js and the Vercel AI SDK are covered on the integrations page.

See why a memory came back

When memory is a service, you can inspect it. The Dakera Dashboard's Recall lab shows why each memory ranked where it did, and every API response carries a rerank_report. Per-request rerank_candidates lets you choose how many candidates the cross-encoder scores.

Dakera Dashboard Recall lab showing score breakdown for ranked memories
Recall lab in the Dakera Dashboard: the signals behind each ranked memory.

What v0.12.0 adds for agent builders

  • Multilingual agents. bge-m3 covers 100+ languages in one space, with a per-request lang.
  • Voice and documents. On-device speech to text (five Whisper models) and visual recall over document pages, both opt-in.
  • Isolation by default. Scoped API keys pin an agent to its namespaces, and graph edges are private to their agent.
  • Safe upgrades. Upgrades from v0.11.108 run in place; dakera downgrade reverses them.
A note on benchmarks. Dakera reports 88.2% Recall@20 on LoCoMo (does retrieval surface the answer). QA-accuracy scores, where an LLM answers and a judge grades, measure something different. Details on the benchmark page.

When to choose each

Choose Letta Code if

  • You want the whole agent: a harness with skills, subagents, scheduling and messaging channels.
  • You like agents that rewrite their own memory, and want it as human-editable files with git history.
  • A coding-agent workflow is the centre of your use case.
  • You want Letta Cloud to hold agent state across machines.

Choose Dakera if

  • You already have an agent framework and need memory it can call.
  • Several agents, languages or frameworks must share one memory.
  • Memory volume is high enough that a model call per decision is the wrong tool.
  • You need a service with namespaces, scoped keys, backups and health probes.

Prefer managed? Dakera Cloud is coming. Join the waitlist.

Frequently asked questions

Is Letta a memory layer or an agent framework?

Today Letta centres on Letta Code, which its README describes as a stateful agent harness. In 2026 the project retired the older Letta server API, moving agent state to git-backed memory and client-side execution.

Can I use Dakera with a Letta agent?

Dakera exposes REST, gRPC for vector operations, SDKs in four languages and an MCP server. Anything that can call one of those can use it as a memory store. We have not tested a specific Letta integration, so check your harness's tool and MCP support.

Does Dakera decide what to remember?

No. Your agent or application decides what to store. Dakera then embeds, extracts entities, ranks, decays and deduplicates deterministically, with no LLM involved.

What does Dakera cost per memory operation?

There is no per-call fee: the server is self-hosted and models run on your hardware. You pay for the machine it runs on.

Self-hosted is free

Run Dakera on your own infrastructure.

One binary with its models baked in and no per-call fees. Start it with one Docker command and see it for yourself.

Prefer managed hosting? Join the Dakera Cloud waitlist →