Persistent memory for AI apps
Store any text, search it in natural language, and feed the results back into your prompts — so your users never repeat themselves.
Your LLM forgets everything between sessions — so your users do the repeating, and churn. Smritea is the persistent memory layer that remembers for them: store any text, recall it in plain language, feed it back into your prompt.
client.add("Alice is vegetarian, works on Atlas") →
✓ 2 facts stored · entities linked
Alice ──works_on──▶ Atlas
— days later, a brand-new session —
client.search("Who works on Atlas?") → ~700ms
0.94 "Alice works on the Atlas project"
matched via graph: Alice → AtlasStateless AI has a memory problem — and your users feel it.
Every session starts from zero: users re-explain themselves, agents lose the thread, assistants forget what they were told yesterday. What that costs you, measured:
react negatively the moment they're forced to repeat themselves.
Sinch, State of Customer Communications — sinch.comwalk away the first time a bot makes them repeat themselves; 60% won't repeat twice.
Parloa survey, 1,001 consumers — cfodive.comexpect the assistant to already know who they are and their history.
Salesforce, via Sinch — sinch.comIt is not just the support bots. Every stateless LLM app — agents, assistants, copilots — begins each session with no idea who it's talking to.
A memory layer your app queries in plain language.
One add() to remember, one search() to recall — with per-user scope, a knowledge graph, and time-aware retrieval underneath.
Per-user memory
Every memory belongs to an actor inside your app — search returns only that user's context. No leakage.
Graph-linked recall
Entities are extracted and connected automatically; deep_search walks the graph to surface related facts — in ~700ms (measured).
Time-aware
Memories carry lifecycle + temporal fields — recall the world as it stood on any date.
It's two calls.
Install the SDK, add a memory, search it back. Full walkthrough on the examples page.
# pip install smritea-sdk
client.add("User prefers dark mode",
scope=MemoryScope(actor_id="user-123", actor_type="user"))
hits = client.search("What UI does the user prefer?",
scope=MemoryScope(actor_id="user-123", actor_type="user"))What Smritea is — and isn't.
The memory layer for your LLM app — store any text, retrieve it by meaning, and hand the right context back to your model, per user, across sessions.
Not a vector database
You never manage indexes or collections — just add() and search(). Qdrant & ArangoDB run underneath.
Not a RAG framework
It's the memory layer you plug into your RAG pipeline — it stores and retrieves context, it doesn't run your LLM.
Not an LLM orchestrator
No chains, no prompt templates. It gives your orchestrator (LangChain, LlamaIndex, your own code) a memory backend.
Give your app a memory.
Free tier included. Create an account and store your first memory in minutes.
Get your API key