The Fundamental Problem: LLMs Forget Everything
Every conversation with an LLM starts from zero. The model has no memory of the project you discussed last week, the preferences you mentioned last month, or the decision you made yesterday. For demos this is fine. For products that need to feel like a collaborator rather than a search engine, it's a dealbreaker. Supermemory is one of the most thoughtful attempts I've seen to solve this at the infrastructure level.
"Stateless AI is a search engine. Stateful AI is a collaborator. The difference is memory."
What Supermemory Actually Builds
Supermemory is an open-source memory engine that sits between your application and your LLM. It automatically extracts meaningful facts from conversations, maintains a user profile, resolves contradictions over time, and injects the right context into every new conversation — in about 50ms.
Automatic Fact Extraction
Raw conversation history is expensive to store and slow to retrieve. Supermemory doesn't store transcripts — it extracts structured atomic facts that are timestamped and tagged:
// What Supermemory stores instead of raw transcripts
{
"facts": [
{
"content": "User prefers Python over JavaScript",
"confidence": 0.95,
"created_at": "2026-05-01T10:22:00Z",
"expires_at": null
},
{
"content": "User is building a FastAPI backend for a healthcare startup",
"confidence": 0.88,
"created_at": "2026-05-10T14:05:00Z",
"expires_at": "2026-08-10T14:05:00Z"
}
]
}
When facts contradict — user says they switched from PostgreSQL to MongoDB — the system resolves the conflict and updates the profile automatically.
Hybrid RAG with Personalised Memory
Standard RAG retrieves from a knowledge base. Supermemory merges two retrieval streams in a single query — the knowledge base and the personal memory store — ranked by relevance and recency before injection.
import { Supermemory } from "@supermemory/sdk";
const memory = new Supermemory({ apiKey: process.env.SUPERMEMORY_API_KEY });
// One call: retrieves both knowledge base + personal memory
const context = await memory.search({
query: "What database should I use for this project?",
userId: "user_123",
limit: 5,
});
// Inject into your LLM system prompt
const systemPrompt = `You are a helpful assistant.
User context: ${context.results.map(r => r.content).join("\n")}`;
The Architecture Choices That Make It Fast
The 50ms retrieval target is ambitious. Supermemory achieves it through profile pre-computation — the user's memory profile is continuously maintained in a pre-ranked cache, so retrieval at query time is a lookup, not a full search. The stack uses Cloudflare Workers for global edge deployment, Drizzle ORM with PostgreSQL for the fact store, and a vector index for semantic search.
Temporal Awareness and Forgetting
Human memory decays. Supermemory models this intentionally — facts have configurable TTLs, recent activity is weighted higher than old activity, and stale facts are automatically expired. Injecting outdated context is often worse than injecting no context at all.
Benchmark Results That Matter
Supermemory ranks #1 on LongMemEval (81.6%), LoCoMo, and ConvoMem. These benchmarks test the failure modes that make most memory systems feel broken: forgetting facts from earlier in long conversations, failing to update beliefs when corrected, and not generalising from specific facts to related questions.
How This Connects to Production AI Engineering
In the clinical AI platform I work on (AiDerm Cliniq), patient history is effectively a memory problem. The diagnostic engine needs to remember what was discussed in a previous consultation, what symptoms were ruled out, and what treatment was prescribed. We built a custom fact extraction layer similar to what Supermemory formalises — structured extraction from conversation history, conflict resolution, and context injection at inference time. Seeing Supermemory solve this generically validates the architecture and shows where the ecosystem is heading: memory as infrastructure, not an afterthought.
