Memory API for LLM apps

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.

The cost of forgetting
81% of your customers react negatively the moment they're forced to repeat themselves.
Sinch · State of Customer Communications (2,500+ decision-makers) — sinch.com

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.

pip install smritea-sdknpm i smritea-sdkMCP serverOpen-source core
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 → Atlas
The problem

Stateless 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:

81%

react negatively the moment they're forced to repeat themselves.

Sinch, State of Customer Communications — sinch.com
11%

walk away the first time a bot makes them repeat themselves; 60% won't repeat twice.

Parloa survey, 1,001 consumers — cfodive.com
72%

expect the assistant to already know who they are and their history.

Salesforce, via Sinch — sinch.com

It is not just the support bots. Every stateless LLM app — agents, assistants, copilots — begins each session with no idea who it's talking to.

The fix

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.

scope

Per-user memory

Every memory belongs to an actor inside your app — search returns only that user's context. No leakage.

deep_search

Graph-linked recall

Entities are extracted and connected automatically; deep_search walks the graph to surface related facts — in ~700ms (measured).

valid_at

Time-aware

Memories carry lifecycle + temporal fields — recall the world as it stood on any date.

See everything in the product →
How it works

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"))
5-minute quickstart →
Where it fits

What Smritea is — and isn't.

What it is

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.

What it's not

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