关于 a-mem-mcp
A-MEM 是面向编码 Agent 的自演化记忆系统,将知识自动组织为 Zettelkasten 风格的图结构,并随时间动态更新关联。它目前在 Claude Code 中测试,其他 MCP 兼容 Agent 的支持尚在规划中。
主要功能
- 01记忆自动生成关键词、上下文与标签
- 02基于向量相似度发现相关记忆
- 03语义搜索结合图遍历
- 04先轻量检索再按需读取完整内容
- 05按时间范围搜索记忆
适用场景
- 01让编码 Agent 在多次会话中保留项目知识
- 02检索认证流程等代码相关说明
- 03在不同项目之间共享全局记忆
MCP 相关
该项目是 MCP 服务,向编码 Agent 暴露 8 个工具,包括 add_memory_note、search_memories 和 read_memory_note,用于存储与检索记忆。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx a-memLLM_BACKENDLLM backend to use (openai, ollama, sglang, or openrouter)LLM_MODELLLM model name (e.g., gpt-4o-mini, llama2, etc.)OPENAI_API_KEY密钥OpenAI API key (required if LLM_BACKEND=openai)EMBEDDING_MODELSentence transformer model for embeddingsCHROMA_DB_PATHChromaDB storage directory path本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
A-MEM:编码 Agent 的自进化记忆
mcp-name: io.github.DiaaAj/a-mem-mcp
A-MEM 是一个面向编码 Agent 的自进化记忆系统。与简单的向量存储不同,A-MEM 会自动将知识整理成具有动态关系的 Zettelkasten 风格图谱。记忆不仅会被存储,还会随着时间推移不断演进并建立连接。
目前已通过 Claude Code 测试。计划支持其他兼容 MCP 的 Agent。
快速开始
安装
pip install a-mem
添加到 Claude Code
claude mcp add a-mem -s user -- a-mem-mcp \
-e LLM_BACKEND=openai \
-e LLM_MODEL=gpt-4o-mini \
-e OPENAI_API_KEY=sk-...
就是这样!会自动安装一个会话启动钩子,提醒 Claude 使用记忆。
注意: 记忆按项目存储在
./chroma_db中。要在所有项目间共享全局记忆,请参阅记忆范围。
卸载
a-mem-uninstall-hook # Remove hooks first
pip uninstall a-mem
工作原理
t=0 t=1 t=2
◉───◉ ◉───◉
◉ │ ╱ │ ╲
◉ ◉──┼──◉
│
◉
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▶
self-evolving memory
- 添加记忆 → A-MEM 通过 LLM 提取关键词、上下文和标签
- 查找邻居 → 搜索语义相似的现有记忆
- 演进 → 决定是建立关联、加强连接,还是更新相关记忆
- 存储 → 将完整的元数据和关系持久化到 ChromaDB
结果是:知识图谱会随着时间推移变得更加智能,而不只是不断变大。
功能
自进化记忆 记忆并非一成不变。添加新知识时,A-MEM 会自动查找相关记忆、加强连接、更新上下文并演进标签。
语义 + 结构化搜索 结合向量相似度与图遍历。按含义查找记忆,再探索其关联。
先概览,再深入
先通过广度优先搜索,使用轻量级元数据(id、上下文、关键词、标签)捕获相关记忆。然后使用 read_memory_note 对特定记忆进行深度优先检索,获取完整内容。这样既能最大限度地减少 token 用量,又能最大限度地提高召回率。
MCP 工具
A-MEM 向你的编码 Agent 提供 8 个工具:
| 工具 | 描述 |
|---|---|
add_memory_note | 存储新知识(异步,立即返回) |
search_memories | 在所有记忆中进行语义搜索 |
search_memories_agentic | 搜索并沿图关系继续探索 |
search_memories_by_time | 在指定时间范围内搜索 |
read_memory_note | 获取完整详情(支持批量读取) |
update_memory_note | 修改现有记忆 |
delete_memory_note | 删除记忆 |
check_task_status | 检查异步任务是否完成 |
使用示例
# The agent calls these automatically, but here's what happens:
# Store a memory (returns task_id immediately)
add_memory_note(content="Auth uses JWT in httpOnly cookies, validated by AuthMiddleware")
# Search later
search_memories(query="authentication flow", k=5)
# Deep search with connections
search_memories_agentic(query="security", k=5)
高级配置
JSON 配置
如需更多控制,请编辑 ~/.claude/settings.json(全局)或 .claude/settings.local.json(项目):
{
"mcpServers": {
"a-mem": {
"command": "a-mem-mcp",
"env": {
"LLM_BACKEND": "openai",
"LLM_MODEL": "gpt-4o-mini",
"OPENAI_API_KEY": "sk-..."
}
}
}
}
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
LLM_BACKEND | openai、ollama、sglang、openrouter | openai |
LLM_MODEL | 模型名称 | gpt-4o-mini |
OPENAI_API_KEY | OpenAI API 密钥 | — |
EMBEDDING_MODEL | 句子转换器模型 | all-MiniLM-L6-v2 |
CHROMA_DB_PATH | 存储目录 | ./chroma_db |
EVO_THRESHOLD | 触发演进的阈值 | 100 |
记忆范围
- 项目专属(默认):每个项目的记忆都独立存储在
./chroma_db中 - 全局:设置
CHROMA_DB_PATH=~/.local/share/a-mem/chroma_db,即可在项目间共享
替代后端
Ollama(本地、免费)
claude mcp add a-mem -s user -- a-mem-mcp \
-e LLM_BACKEND=ollama \
-e LLM_MODEL=llama2
OpenRouter(100 多种模型)
claude mcp add a-mem -s user -- a-mem-mcp \
-e LLM_BACKEND=openrouter \
-e LLM_MODEL=anthropic/claude-3.5-sonnet \
-e OPENROUTER_API_KEY=sk-or-...
钩子管理(Claude Code)
会话启动钩子会提醒 Claude 使用记忆工具。它会随 Claude Code 自动安装,但你也可以手动管理:
a-mem-install-hook # Install/reinstall hook
a-mem-uninstall-hook # Remove hook completely
Python API
直接在 Python 中使用 A-MEM(适用于任何 Agent 或应用):
from agentic_memory.memory_system import AgenticMemorySystem
memory = AgenticMemorySystem(
llm_backend="openai",
llm_model="gpt-4o-mini"
)
# Add (auto-generates keywords, tags, context)
memory_id = memory.add_note("FastAPI app uses dependency injection for DB sessions")
# Search
results = memory.search("database patterns", k=5)
# Read full details
note = memory.read(memory_id)
print(note.keywords, note.tags, note.links)
研究
A-MEM 实现了以下论文中的概念:
A-MEM:面向 LLM Agent 的 Agentic Memory Xu 等,2025 年 arXiv:2502.12110
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。