Every LLM call starts from a blank slate: the model forgets everything the moment its context window fills up. Letta's bet — carried over from the MemGPT research that originally named it — is that memory shouldn't live in your application code or a vector store bolted on the side, but inside the agent itself, which decides what to keep in context and what to page out.
What Sets It Apart
- Self-editing memory. The agent calls functions to move information between an in-context "core memory" and external storage, much like an OS swaps between RAM and disk. It curates its own context instead of you stuffing the prompt by hand.
- Agents are persistent objects, not chat sessions. They live on a server, survive restarts, and can be resumed, inspected, or shared — state is the default, not something you reconstruct on every request.
- Memory as infrastructure. Identity, learned facts, and history are managed by the runtime, so you stop reinventing summarization and retrieval glue for each new app.
- Model-agnostic. Swap the underlying LLM without touching the memory logic; Python and TypeScript SDKs plus a CLI (Letta Code) drive the same agents.
Who It's For
Great fit if you're building long-running assistants — support bots, personal agents, copilots — that must remember a user across days or weeks, and you'd rather treat memory as a platform than hand-roll it. Look elsewhere if your use case is a single-turn RAG query or a stateless chatbot: standing up a Letta server and reasoning about memory blocks is overhead you won't recoup, and a plain prompt-plus-vector-search stack will be simpler.