Durable execution
Checkpoint and resume with exactly-once tool dispatch. Suspend for a human, resume hours later on another machine.
A temporal knowledge graph that learns across sessions — plus durable runs, enforced cost ceilings, and evals in CI. The production fundamentals, built in, not bolted on.
import { Agent, AIModel, SqliteStore } from "eidentic";
import { anthropic } from "@ai-sdk/anthropic";
const agent = new Agent({
id: "support",
instructions: "You are a support agent. Remember the user.",
model: new AIModel(anthropic("claude-sonnet-4-5")),
store: new SqliteStore("./eidentic.sqlite"),
});
// Recalls past sessions inside query(), with citations.
for await (const ev of agent.query("What did we decide last week?", {
sessionId: "u-42",
})) {
if (ev.type === "stream.delta") process.stdout.write(ev.delta.text);
}real packages, real APIs — pick a tab
Bring your own model, store, and vector backend
// the signature
Not just vector recall bolted onto a prompt. A four-tier engine where facts have a lifetime, contradictions resolve, and the agent gets sharper the longer you run it.
Bump us to the team plan, and schedule it for my usual timezone.
recalled 3 facts
plan: teamcorroborated ×2session u-91 · 2d agoplan: startersupersededsession u-12 · Mar 4timezone: Europe/BerlinstableprofileSwitching you to team — you were on starter until last week — and scheduling in Europe/Berlin.
facts carry validity — superseded ones are kept, not overwritten
vs 41.0% full-context
retrieval, not stuffing
umbrella + adapters
Node · Bun · Deno
We ship the whole thing in one composable package, native to TypeScript, fully open.
Memory, orchestration, and DX usually ship as separate tools with the production pieces behind an enterprise tier. Eidentic is all of it, Apache-2.0, with no paid tier.
No Python sidecar, no FFI. First-class types end to end, React hooks, a Next.js handler, and a CLI — the stack you already deploy.
Ports and adapters everywhere: swap the store, vector backend, embedder, or model without touching agent code. MCP with OAuth and A2A for interop.
The production machinery usually sold as an enterprise add-on, here in the same open package as the memory engine.
no enterprise tier
The umbrella install is the common case; optional adapters are separate, so you only ship what you import.
Checkpoint and resume with exactly-once tool dispatch. Suspend for a human, resume hours later on another machine.
Set a dollar limit and the loop actually stops there. Per-turn token and cost visibility as it streams.
Deny-by-default permissions, sandboxed code execution, secrets the model never sees, one-call GDPR erasure.
spawn_agent delegation with a shared budget. MCP host and server with OAuth, plus A2A.
SKILL.md prompt skills and test-gated executable skills, ed25519-signed before they ever run.
A built-in eval harness with a CI pass-rate gate, one-call promotion of a production trace into a regression test, and the Studio dashboard for sessions, memory, and traces.
gate 90% · promote any prod trace → regression test
Two public long-term-memory benchmarks, first official runs in June 2026, at opposite ends of the history-size spectrum. The larger the history, the more memory wins; on small ones, full context stays competitive. We show both, full runs, no sampling.
+14.2 pts
overall on LongMemEval. Across ~115k-token histories, memory beats full context on every one of the six question types.
up to 39×
fewer tokens per query: 2,550 vs 99,435 on LongMemEval, 893 vs 19,030 on LoCoMo. Retrieval is the cost story.
-7.8 pts
behind full context on LoCoMo's small haystack, where brute-force recall still wins. We publish the gap, not just the wins.
500 questions, ~50 sessions, ~115k-token haystacks
| Mode | SS·user | SS·asst | SS·pref | Multi-session | Temporal | Knowledge | Overall | Tokens / query |
|---|---|---|---|---|---|---|---|---|
| Full-context baseline | 67.1% | 73.2% | 3.3% | 27.8% | 20.3% | 66.7% | 41.0% | 99,435 |
| Eidentic memory | 84.3% | 92.9% | 26.7% | 42.1% | 34.6% | 70.5% | 55.2% | 2,550 |
Memory wins all six question types, +14.2 points overall (55.2% vs 41.0%), at 2,550 vs 99,435 tokens per query. When ~115k tokens of history are stuffed into the window, the evidence drowns among ~50 sessions of distractors; targeted retrieval surfaces it.
gpt-4o-mini answer + judge, text-embedding-3-small, topK 10, seed 42, full 500-question longmemeval_s split, dataset xiaowu0162/longmemeval @ 2ec2a557.
Prototype on SQLite, deploy on Postgres or Turso: the only line that changes is the store.
You only bundle the adapters you import. A Postgres deployment never ships SQLite; an edge function never ships native addons.
import { Agent, SqliteStore } from "eidentic";
const agent = new Agent({
id: "support",
model,
store: new SqliteStore("./eidentic.sqlite"),
});