Persistent memory, recall, knowledge graphs, and context tools for AI agents.
36 projects · Upstream documentation checked 2026-09-30. Curated by agentlist.io.
Help your agent pick up where you left off.
Start with what your agent keeps forgetting. Resuming a conversation, remembering project decisions, learning personal preferences, and sharing knowledge across a team are different jobs. Choose a memory tool for the information you need to preserve and the place you need to recall it.
Tools with an explicit agent-memory or persistent-context interface. General databases and document search engines are excluded unless the linked project supplies an agent-facing memory layer.
- How to choose
- Decision table
- Memory services and frameworks
- Graph, file, and local recall
- Agent-integrated memory
- Retrieval adapters
- Unmaintained references
- Related awesome lists
- More from Agentlist
- Contributing
- Works with: Is there a documented integration for your agent, or will you need to build one using an SDK, API, or MCP server?
- Runs where: Where are memories stored and processed? Can you operate the storage and retrieval service yourself?
- Needs access to: Does it ingest selected notes, conversations, repository files, or every tool interaction? Can you control what is captured?
- Keeps what: Does it preserve transcripts, facts, relationships, preferences, or procedures? Can you inspect, correct, export, and delete them?
- Human involvement: Who decides what becomes a memory, when it is recalled, and when outdated information is removed?
- Main limitation: How will you detect irrelevant recall, conflicting memories, or information leaking between projects and users?
Use these questions with the decision table. Every entry summarizes its linked documentation. These lists were not install-tested, so entries do not repeat that. A capability the linked page does not state is unknown.
Start with your requirement. These examples highlight documented differences; they are not rankings.
| When you need | Documented fit | Key distinction | Unresolved | Source |
|---|---|---|---|---|
| Hosted memory API, or files you can open in a repo? | Memori's README quickstart is a hosted API key. Basic Memory stores Markdown you and the agent edit. MemPalace keeps a local index rather than those notes. | Memori persists through its API unless you use the separate BYODB connection, which can be a SQLite file. Basic Memory's notes are Markdown on disk, with optional hosted sync of the same files. | Unknown whether Memori Cloud memories export as files you open beside a repo. The BYODB page shows SQLite, not a Markdown tree. | Memori, Basic Memory, MemPalace, Memori BYODB |
| A graph engine you run, or a hosted context-graph product? | Graphiti is the library you run against your own graph database. Zep is the hosted context service and documents a VPC deployment. | You bring Neo4j, FalkorDB, Neptune, or deprecated Kuzu for Graphiti, and Zep is the managed product on a proprietary engine. Zep's homepage offers managed cloud, your own keys, or your VPC. | Unknown how much of a Zep graph is the Graphiti library versus the proprietary engine named on Graphiti's README. | Graphiti, Zep |
| A coding-agent harness, or a general memory service? | Letta Code is the agent harness. Memori is a memory SDK and hosted API that plugins and an MCP endpoint call. | Letta Code agents rewrite their own memory blocks and can use Letta Cloud or a local backend. Memori wraps an LLM client and stores memories for the entity and process you attribute. | Unknown whether a Letta Code agent can use Memori as its store. The pages describe separate products. | Letta Code, Memori |
| A vector search adapter, or a memory store with its own record? | Qdrant MCP Server stores and finds text in Qdrant. Memobase turns chat blobs into a profile and an event timeline. | The Qdrant server exposes qdrant-store and qdrant-find and does not document a profile or a review step. Memobase flushes blobs into profile and event records and removes processed blobs unless storage config keeps them. | Unknown whether Qdrant MCP Server can delete or export a memory. The README shows store and find, and read-only mode only disables store. | Qdrant MCP Server, Memobase |
| Who decides what is written into memory? | Memori writes from attributed LLM calls in the background. Letta Code agents rewrite their own memory. Memobase extracts a profile from blobs you insert. | Without attribution Memori cannot make memories, and conversations persist automatically. Memobase builds the profile on flush. Letta Code agents rewrite memory blocks themselves. | Unknown whether Memori or Memobase show a person a proposed write before it lands. Neither README documents an approval queue. | Memori, Letta Code, Memobase |
| Can you export or delete what was stored? | Letta Code keeps memory import and export and transcript export. Motorhead deletes a session. Memobase can delete a user or a blob. | Letta Code removed AgentFile export and import, while memory import and export and conversation transcript export remain. Motorhead's delete route removes a session's messages. Memobase removes processed blobs unless config keeps them. | Unknown the file format of Letta Code memory import and export. Its README names the operations and does not show a schema. | Letta Code, Motorhead, Memobase |
| Is Motorhead still a supported memory server? | Motorhead is the deprecated session server. Mem0 and Memori are separate entries in this list and are not described as deprecated. | Motorhead still documents get, post, and delete for a session window, incremental summarization, and optional Redisearch that defaults off. Support is no longer maintained, so those routes are not a support commitment. | Unknown whether the published image still runs. The README keeps the commands and does not name a successor. | Motorhead, Mem0, Memori |
| Where does Memori store memories? | Memori's quickstart uses a hosted API key. Its BYODB docs also show SQLite and other databases you connect. | The README quickstart sets MEMORI_API_KEY from app.memorilabs.ai and does not open a local file. The BYODB example connects sqlite3 to memori.db and also lists Postgres, MySQL, and other engines. | Unknown whether the hosted quickstart also writes a local file. The README mentions VPC only in a customer case study, not as setup steps. | Memori, Memori BYODB |
| Does TeleMem's quickstart stay on a local model and index? | TeleMem's slogan says local Qwen and FAISS. The quickstart uses an OpenAI key and Mem0 provider defaults. | The slogan is fully local by default on Qwen and FAISS, but the printed quickstart exports OPENAI_API_KEY and calls Memory(). Local Qwen endpoints and a FAISS path are config/config.yaml, loaded only if you pass that file. | Unknown which store Memory() uses when no config is passed. The FAISS directory in the storage section is not what that quickstart selects. | TeleMem, Mem0 |
| Does Letta Code store memory in Letta Cloud or locally? | Letta Code defaults to Letta Cloud and also documents a local backend. The older letta-ai/letta repository points at this harness and is not a second store. | Letta Cloud is the default and stores memory, identity, and conversations. First launch can proceed locally, and letta backend local or --backend local selects the local backend. | Unknown where the local backend writes its files. The README names the local backend and does not give a path. | Letta Code, letta-ai/letta |
| Which MemPalace websites are official? | MemPalace limits official sources to its GitHub repository, the PyPI package, and mempalaceofficial.com. | There are no other official websites, and other domains, including .tech, .net, or other .com names, may be impostors. Nothing leaves the machine unless you opt in. | Unknown whether every page on mempalaceofficial.com matches this repository. No license is stated from these pages. | MemPalace |
| Does Memobase keep the original chat after processing? | Memobase removes processed blobs unless storage config keeps them. The profile and event timeline are the durable record. | Blobs are removed once processed, so data other than the relevant memory is not stored, unless you change the storage config. The quickstart also shows deleting a user. | Unknown how long kept blobs stay, and whether the profile has an export format besides the API. | Memobase |
- Cognee - Python library that turns documents, conversations, and code into a knowledge graph with dataset-scoped remember, recall, improve, and forget. Local extraction and embedding use small models when no LLM key is set. Claude Code and Codex plugins, MCP, and Cognee Cloud are documented. Forget removes an item or a dataset, and no export format is described apart from that graph. Python library.
- Hindsight - Memory server whose clients call retain, recall, and reflect on world facts, experiences, observations, and mental models. You run Docker with embedded Postgres or an external database, or use Hindsight Cloud. Python, TypeScript, an LLM wrapper, and a per-bank MCP endpoint are documented. Retain uses an LLM to extract facts, with no human approval before that write. Memory server.
- LangMem - Python tools an agent calls to save and search long-term memory, plus a background manager that extracts and consolidates onto a LangGraph store. The in-process store disappears on restart. A database-backed store such as AsyncPostgresStore keeps memories. On the hot path the agent decides what to record. You supply the LLM key, and LangMem is not a hosted service. Python library.
- Mem0 - Memory layer as a Python library, a self-hosted server, and a managed platform, with add and search scoped by user, session, or agent. Newer extraction keeps agent-confirmed facts and does not overwrite or delete during extraction, so memories accumulate until something else removes them. Self-hosted auth is on by default. Skills teach integration rather than replacing the SDK or API. SDK and managed service.
- Memobase - User-profile backend that buffers chat blobs and flushes them into a structured profile and an event timeline. Processed blobs are removed unless storage config keeps them, so the durable record is the profile and events rather than the original transcript. The license is Apache-2.0. MCP clients use Memobase-MCP under src/mcp. The quickstart also shows deleting a user. Memory backend.
- Redis Agent Memory - Managed memory layer on Redis Cloud, called through a Python SDK, a TypeScript SDK, or REST. Session memory holds the live conversation with a configurable TTL, and a background job promotes extracted facts into long-term text and vector embeddings. The V0 tree is earlier open-source research, not the supported service. No person is documented reviewing each promoted fact. Managed memory service.
- Supermemory - Memory API that extracts facts and user profiles from conversations and searches them with uploaded documents. Plugins and a hosted MCP server cover Claude Code, Muse Code, Cursor, Codex, OpenCode, OpenClaw, and Hermes. A local binary serves the same API, and Ollama can stay offline. Container tags separate projects. Extraction is also automatic, and no review queue is documented. Memory platform.
- Memori - Python and TypeScript wrapper that registers an LLM client, attributes each call to an entity and a process, and persists and recalls in the background. The quickstart is a hosted MEMORI_API_KEY from app.memorilabs.ai. Without attribution it cannot make memories. BYODB is separate, including a database you connect and a local SQLite file. Plugins and an HTTP MCP endpoint are documented. Memory SDK.
- memU - Personal memory stored as Markdown skills. A per-agent sidecar slices session logs and asks that agent to distill them. MemoryService only stores, embeds, and retrieves that Markdown, and calls no LLM. It uses a hosted API key or a self-hosted store. ChatGPT chat mode and Claude chat and Cowork are excluded. Uninstall keeps the store unless you explicitly erase it. Memory sidecar.
- EverOS - Local-first Python runtime that writes conversations, files, and agent trajectories to Markdown and indexes them with SQLite and LanceDB. A local HTTP API adds, flushes, and searches memories. Plugins cover DeepSeek Harness, Hermes, OpenClaw, and Dify, and EverOS is built into Raven. The demo can run without a key, but init expects an OpenRouter key. Flush makes a fact durable. Local memory runtime.
- MemOS - Memory service with one API to add, search, edit, and delete an inspectable graph of text, images, and tool traces. Memory cubes separate users, projects, and agents, and natural-language feedback can correct an entry. You can call a cloud API or run the service with Docker. Local plugins cover OpenClaw, Hermes, and DeepSeek Harness, with a cloud plugin also documented. Memory service.
- Honcho - Service that stores messages and events, updates peer representations, and returns search or a natural-language answer. Use a managed API, a local honcho start stack, or a self-hosted FastAPI server, with Python and TypeScript clients. Plugins and MCP cover Claude Code, Codex, OpenCode, and Hermes. You choose which messages to store. No approval precedes a background change to a peer. Memory service.
- ReMe - Memory kit that keeps durable memory as Markdown with frontmatter and wikilinks, so people and agents edit the same files. A local service is reachable by CLI, HTTP, MCP, or in-process Python API for QwenPaw, DeepSeek Harness, Hermes, and OpenClaw. BM25 search works without embeddings, but automatic memory jobs require them. The files are what you move or back up. Markdown memory kit.
- MemMachine - Memory server that splits episodic conversation into a graph database, long-term user facts into SQL, and the current session into working memory. Python, REST, TypeScript, and MCP talk to a server you run or the hosted platform. Integrations include LangChain, LangGraph, CrewAI, LlamaIndex, and Dify. The caller sets user, agent, and session ids. No human review is documented before add. Memory server.
- Caura - Governed memory service, formerly MemClaw, where agents write text and the server stores and searches it for one agent or a fleet. REST and MCP are documented. A Docker stack bypasses auth for a local trial, and shared deployments use agent-scoped credentials. Trust tiers and visibility scopes limit cross-agent reads, writes, and deletes. No separate file export is documented. Memory service.
- TencentDB Agent Memory - Self-hosted hub for conversations, documents, and code: chat memory, skills, a wiki, and a code graph, served through a proxy used as the model base URL. The proxy needs no plugin and covers Claude Code, CodeBuddy, and DeepSeek Harness. People review and equip assets in Memory Hub. Personal skills stay private until shared. Skill export is later work, not current. Team memory hub.
- OpenViking - Open-source context database, not only a memory store. Documents, code, user memories, and skills live on one viking:// filesystem an agent can list and read. Committing a session archives the conversation and writes extracted memories as Markdown you can edit. Integrations, MCP, a macOS and Windows console, and optional ACLs are documented. Configure authentication before exposing the server beyond localhost. Context database.
- LongMemory - Local TypeScript engine for ingest and recall, exposed as a library, CLI, HTTP service, MCP server, and dashboard, with SQLite as the durable file. The Python package is only an HTTP client for that server, not a second engine. Strict and associative recall are documented, and stored content is treated as immutable. In-memory mode needs no database and ends when the process closes. TypeScript library.
- Memorix - Local memory for coding agents, kept in SQLite under the Git project and opened through MCP, hooks, CLI, and SDK. Setup covers Claude Code, Codex, Cursor, and other MCP agents. Hooks capture only where that agent exposes the events. Knowledge pages are review-gated, so a proposal does not replace a reviewed page. Optional sync still treats local SQLite as canonical. Local memory service.
- TeleMem - Python memory layer with a Mem0-compatible add and search API and a separate profile per character. The slogan is fully local Qwen and FAISS, but Memory() follows Mem0 provider defaults unless you pass the config file. The quickstart sets an OpenAI API key. Local Qwen and FAISS load only if you pass that file. An MCP server exposes the tools. Python library.
- Zep - Hosted context service that builds graphs from business data, documents, and conversations and returns a slice for a task. The site documents a managed cloud, a cloud option with customer-managed keys, and a VPC deployment. Graphiti is the open-source graph library and is listed separately. The getzep/zep GitHub repository is examples, not this service. Hosted memory service.
- Basic Memory - MCP server that stores a knowledge base as Markdown on disk, with observations and wikilinks a person and the agent can both edit. It installs locally for Claude, Codex, Cursor, ChatGPT, and other MCP clients, with optional hosted sync of the same files. Search can be keyword or semantic. Cloud notes stay Markdown and export back to local files. MCP server.
- Graphiti - Python framework for a temporal knowledge graph of entities, facts with validity windows, and episodes that keep the raw ingested text. You run it and bring your own graph database; an included MCP server is documented with Neo4j, retrieval mixes embeddings, keywords, and graph traversal, and custom types use Pydantic models. Zep's hosted context service is listed separately and is not operated by this library. Graph library.
- Memvid - Library that stores documents, embeddings, and metadata in one append-only .mv2 file. Python, Node, Rust, and a CLI are included. Each frame is immutable, so search can still read an earlier state. Put and search run from application code, with local or API embeddings. No MCP server or turn-selection rule is documented, and the older QR format is deprecated. File memory library.
- GBrain - Local memory of explicit facts with sources, including correction and withdrawal, shared with agents you already run. The memory-only path covers Grok Bot, Muse, Codex, and Claude Code, including MCP on a tailnet, starting from keyword search before optional embeddings or synthesis. Markdown export is not a full database backup. Local files and shared credentials sit outside remote grant filters. Local memory service.
- MemPalace - Local tool that stores conversation text verbatim and searches it semantically, scoped by person and project. ChromaDB is the default index. Agents use the CLI or an MCP server. Nothing leaves the machine unless you opt in. Official sources are only this GitHub repository, the PyPI package mempalace, and mempalaceofficial.com. Other domains may be impostors. Local memory tool.
- MCP Memory Service - Self-hosted service with REST, MCP, a CLI, and a dashboard for memories and a knowledge graph of typed links such as causes and fixes. On-machine ONNX embeddings and an agent id header scope retrieval. Clients include LangGraph, CrewAI, AutoGen, Claude, and others. Consolidation can compress older memories. A person is not required to approve each store. Memory server.
- projectmem - Local record of coding work stored as typed issues, attempts, fixes, and decisions in a .projectmem directory in the project. One MCP server, with no project root argument, serves every registered project for Claude Code, Cursor, Antigravity, and Codex. It makes no network calls unless you enable an update check. Git holds the diff, and no cloud copy is documented. MCP server.
- Engram - Go binary, not the DeepSeek Engram paper, that keeps curated project memory in one local SQLite file. CLI, HTTP, MCP, and a TUI serve Claude Code, OpenCode, Codex, Cursor, and other MCP agents. Save decisions, fixes, and a session handoff on purpose, not every tool transcript. The local database stays authoritative if you use Git sync or the optional cloud. Local memory binary.
- claude-mem - Plugin that records tool-use observations through hooks, summarizes them, and injects a slice later. A global npm install does not register hooks or the worker. It covers Claude Code, OpenCode, Codex, Gemini, Hermes, Copilot, OpenClaw, a Grok Bot log watcher, and MCP search. Capture is automatic unless a span is private. Pick a hosted observer or your own model key. Agent plugin.
- Letta Code - Harness whose agents rewrite memory blocks, skills, and prompts. Letta Cloud stores memory, identity, and conversations by default, and a local backend is available. Permission modes set what is auto-approved. AgentFile export was removed; memory and transcript export remain. The older letta-ai/letta repository now points at this source and is not a second product. Agent harness.
- agentmemory - Local memory server with MCP, hooks, and REST for Claude Code, Cursor, Codex, Gemini CLI, Hermes, OpenClaw, and OpenCode. It captures agent activity, compresses it, and injects it later. State stays outside the repository unless you set a data directory. Keyless mode uses keyword search. Semantic search needs an embedding provider. Native Windows does not auto-install the pinned engine binary. Coding-agent memory.
- MemoraX Code - Plugin that attaches repository knowledge, procedures, and preferences to Codex, Claude Code, Cursor, OpenCode, Trae, and other coding CLIs the installer detects. Setup keeps an API key locally, while search and writeback need network access. On Linux, guest credentials need secret-tool. A background subagent can build repo memory. Cursor may still request ordinary tool approvals. No offline store is documented. Coding-agent plugin.
- mem9 - Shared memory server whose plugins call store, search, get, update, and delete on a hosted API or a server you run. Clients include OpenClaw, Hermes, Claude Code, OpenCode, Codex, and Dify. Storage, search, and policy stay on the server. Self-hosting uses TiDB, Postgres, or db9 behind the API key. A dashboard is included. No single-file local mode is documented. Memory server.
- Qdrant MCP Server - Official MCP server for Qdrant vector search: store and find, not a knowledge graph or a profile. You operate Qdrant with a server URL or a local path, through qdrant-store and qdrant-find. Embeddings default to local FastEmbed. Read-only mode disables storing. There is no documented file workspace, write policy, or review step before a write. MCP server.
- Motorhead - Deprecated session memory server for LLM chats. Support is no longer maintained. Clients get, post, and delete a session window that is summarized as it grows. Optional long-term search uses Redisearch and defaults to off. The documented server expects a Redis URL. Those routes remain documented, but they are not a support commitment. Memory server.
Independent collections for deeper discovery. These are references, not affiliations or endorsements.
- Anandesh-Sharma/awesome-agentic-memory - Short map of agent-memory frameworks and papers. Use it for leads; it is not a current product survey.
- TeleAI-UAGI/Awesome-Agent-Memory - Large collection of memory systems, benchmarks, and papers. Most links are research rather than installable tools.
- Shichun-Liu/Agent-Memory-Paper-List - Paper list for a survey of agent memory. Not a product directory.
- topoteretes/awesome-ai-memory - Product-oriented memory list maintained by the Cognee project. Overlaps with Cognee are the maintainer's own work.
- IAAR-Shanghai/Awesome-AI-Memory - Research and systems map of LLM and agent memory, heavier on papers than on tools you can run.
- Awesome Agent List
- Awesome Personal Assistants
- Awesome Agent Clients
- Awesome Agent Sandboxes
- Awesome Agent Orchestration
- Awesome Agent Observability
Browse agents · Compare agents · GitHub organization
Missing something useful? Read the contribution guide and open an issue or pull request with an official source.
The machine-readable list.json includes a primary-source link and a documentation-check date for every entry. Descriptions are short editorial summaries of that linked documentation. Inclusion does not mean the project was installed, run, security-tested, or endorsed. Hosted services and source code may have different terms.
To update the list, edit list.json, run bun run build, then bun run check. The README is generated; avoid editing it directly.
CC0 applies to this list’s text and data. Linked projects retain their own licenses.
