A-MEM:代理记忆系统
](https://lobehub.com/mcp/tobs-code-a-mem-mcp-server)
基于Zettelkasten原理的LLM代理存储系统。
基于: “A-Mem:LLM代理的代理记忆”\ 作者:徐吴江、梁祖杰、梅、高杭、谭俊涛、张永峰\ 罗格斯大学AIOS基金会独立研究员
🚀 特性
核心功能
- ✅ 注释构造:自动提取关键字、标签和上下文摘要
- ✅ 链接生成:类似记忆的自动链接
- ✅ 记忆进化:动态更新现有记忆
- ✅ 语义检索:具有图遍历功能的智能搜索
- ✅ 多提供商支持:Ollama(本地)或OpenRouter(云)
- ✅ 环境变量:通过配置
.env文件 - ✅ 图形后端选择:在NetworkX(默认)、RustworkX(快3x-100x)或FalkorDB(实验性,未完全测试)之间进行选择
- ✅ 参数验证:自动验证所有MCP工具参数
- ✅ 安全图形包装器:边缘案例处理和数据净化,实现稳健运营
高级功能(新增)
- ✅ 类型分类:将笔记自动分类为6种类型(规则、程序、概念、工具、参考、整合)
- ✅ 优先级评分:基于类型、年龄、使用情况和边缘计数的即时优先级计算,以获得更好的搜索排名
- ✅ 事件日志记录:仅为所有关键操作(NOTE_CREATED、RELATION_CREATED、MEMORY_EVOLVED)附加JSONL事件日志
- ✅ 记忆酶:用于图形维护的自主后台进程
- 链接修剪器:自动删除旧边/弱边 - 关系建议者:查找笔记之间的新语义连接 - 死端节点自动链接器:通过智能过滤自动为死端节点创建连接 - 摘要消化器:压缩过度拥挤的节点,有很多孩子
- ✅ 自动调度程序:每小时在后台运行记忆酶
- ✅ 元数据字段:实验字段支持,无需更改架构
- ✅ 研究员代理人:针对低置信度查询的深度网络研究(JIT上下文优化)
- 检索置信度\8个子节点的节点压缩为紧凑的摘要
自动调度程序
系统每小时自动运行一次记忆酶:
- 在后台运行,不阻止MCP操作
- 以优化的顺序执行19次以上的维护操作
- 用详细的指标记录所有维护活动
- 优雅地处理错误并继续运行
- 综合结果:返回所有操作的详细统计信息(修剪的链接、合并的重复项、验证的注释、质量分数、图形健康分数、死端节点等)
研究员代理人
使用JIT上下文优化进行低置信度查询的深层网络研究:
- 自动触发:当检索置信度\16KB)进行自动分块
reset_memory-重置整个内存系统(⚠️ 不可逆)
笔记管理
list_notes-列出内存图中存储的所有笔记get_note-按ID返回单个注释(元数据+内容)update_note-更新现有笔记的上下文摘要、标签或关键字delete_atomic_note-删除注释和所有关联的连接
关系管理
list_relations-列出图表中的关系,可选择按注释ID筛选add_relation-在两个注释之间添加手动关系remove_relation-删除两个音符之间的关系
图的运算
get_graph-返回用于可视化的完整图形快照(节点+边)
内存维护
run_memory_enzymes-运行全面的内存维护:修剪旧/弱链接和僵尸节点,合并重复项,验证和修复边,删除自循环,链接隔离节点,规范化关键字,计算质量分数,验证注释和类型,执行时间清理,计算图健康分数,检测死端节点,自动为死端节点创建连接(使用智能过滤),删除低质量内容,优化摘要,修复损坏的节点,建议新关系,并消化过度拥挤的节点。通过19+次维护操作自动优化图形结构
研究与网络集成
research_and_store-对查询执行深层网络研究,并将结果存储为原子注释。使用Google Search API(如果配置)或DuckDuckGo HTTP搜索,使用Jina Reader(本地Docker或云)提取内容,并使用Unstructured处理PDF。自动创建带有元数据、关键字和标签的笔记。
IDE集成
光标IDE
- 打开MCP配置文件:
- 窗户: %USERPROFILE%\.cursor\mcp.json (或 C:\Users\\.cursor\mcp.json) - macOS: ~/.cursor/mcp.json - Linux: ~/.cursor/mcp.json
- 添加以下配置:
基本配置(用途 .env 文件):
{
"mcpServers": {
"a-mem": {
"command": "python",
"args": [
"-m",
"src.a_mem.main"
],
"cwd": "C:\\Users\\tobs\\Downloads\\a-mem_-agentic-memory-system\\a-mem_-agentic-memory-system"
}
}
}高级配置(带环境覆盖):
您可以覆盖 .env 使用以下命令直接在MCP配置中设置 env 块。这允许在不修改的情况下对每个实例进行自定义 .env 文件:
{
"mcpServers": {
"a-mem": {
"command": "python",
"args": [
"-m",
"src.a_mem.main"
],
"cwd": "C:\\Users\\tobs\\Downloads\\a-mem_-agentic-memory-system\\a-mem_-agentic-memory-system",
"env": {
"LLM_PROVIDER": "ollama",
"OLLAMA_LLM_MODEL": "qwen3:4b",
"RESEARCHER_ENABLED": "true",
"RESEARCHER_CONFIDENCE_THRESHOLD": "0.5"
}
}
}
}配置策略:
.env文件:默认配置(自动加载)env块:覆盖每个MCP实例的特定设置- 优先级:
env块值覆盖.env文件值
重要提示: 调整 cwd 转到项目目录的绝对路径!
- 重新启动Cursor以加载配置。
Visual Studio代码(带MCP扩展)
- 安装VSCode的MCP扩展(如果可用)
- 打开VSCode设置(JSON):
- Ctrl+Shift+P (Windows/Linux)或 Cmd+Shift+P (macOS) - 键入“首选项:打开用户设置(JSON)”
- 添加MCP服务器配置:
基本配置(用途 .env 文件):
{
"mcp.servers": {
"a-mem": {
"command": "python",
"args": ["-m", "src.a_mem.main"],
"cwd": "/path/to/a-mem-mcp-server"
}
}
}高级配置(带环境覆盖):
{
"mcp.servers": {
"a-mem": {
"command": "python",
"args": ["-m", "src.a_mem.main"],
"cwd": "/path/to/a-mem-mcp-server",
"env": {
"LLM_PROVIDER": "ollama",
"OLLAMA_LLM_MODEL": "qwen3:4b",
"RESEARCHER_ENABLED": "true"
}
}
}
}备选方案: 使用 mcp.json 项目根目录中的文件:
{
"mcpServers": {
"a-mem": {
"command": "python",
"args": ["-m", "src.a_mem.main"],
"cwd": "${workspaceFolder}",
"env": {
"LLM_PROVIDER": "ollama"
}
}
}
}注: 这 env 块允许您覆盖 .env 每个实例的设置,而无需修改基本配置文件。
IDE中的用法
配置后,MCP工具可以直接在IDE中使用:
- 聊天/作曲:通过自然语言使用工具
- “存储此信息:…” - “搜索关于以下内容的回忆:…” - “显示内存统计信息”
- 代码:工具作为功能自动可用
看 MCP_SERVER_SETUP.md 有关所有可用工具的详细信息。
事件日志
所有系统事件都会自动记录到 data/events.jsonl JSONL格式(每行一个JSON对象)。这提供了以下内容的完整审计跟踪:
- 笔记创建和更新
- 关系创建和删除
- 记忆进化事件
- 酶维护运行
- 日程安排活动
您可以通过以下方式查看事件日志:
# View last 10 events
tail -n 10 data/events.jsonl
# View all events
cat data/events.jsonl | jq .📚 文档
MCP_SERVER_SETUP.md-MCP服务器设置和配置docs/TEST_REPORT.md-测试结果docs/MCP_SERVER_TEST_REPORT.md-MCP服务器集成测试docs/EMBEDDING_DIMENSIONS.md-嵌入尺寸处理指南docs/RESEARCHER_AGENT_DETAILED.md- 详细的Researcher Agent文档 (代码集成,功能,工作流程)docs/MEMORY_ENZYMES_DETAILED.md- 详细的记忆酶文档 (代码集成、功能、工作流、19+ 操作)tools/RESEARCHER_README.md-研究人员代理快速参考
📊 直观图
更新的基于白色背景和黑色字体的 Mermaid SVG 图表:
系统架构概述
存储架构详情
记忆酶工作流程
MCP 工具概述
类型分类系统
更多文件:
docs/MEMORY_ENZYMES_DETAILED.md- 全面的记忆酶文档,包括所有19+操作docs/RESEARCHER_AGENT_DETAILED.md- 详细的Researcher Agent文档
🧪 测试
# Core functionality tests
python tests/test_a_mem.py
# Code structure tests
python tests/test_code_structure.py
# New features tests (Type Classification, Priority Scoring, Event Logging)
python tests/test_new_features.py
# Memory enzymes tests (Link Pruner, Relation Suggester, Digest Node)
python tests/test_enzymes.py
# Scheduler tests
python tests/test_scheduler.py测试结果: 24/24测试通过✅
🧪 基准测试
该项目包括一个用于测试Ollama模型速度和性能的现代TUI基准工具:
python ollama_benchmark.py此工具测量模型速度指标(令牌/秒、延迟、第一个令牌时间),以帮助您为您的用例选择最佳的Ollama模型。
看 BENCHMARK_README.md 了解详情。
📊 图形可视化
该项目包括一个基于网络的仪表板,用于可视化内存图、分析优先级和探索模式:
python tools/visualize_memory.py然后打开浏览器 http://localhost:8050 查看交互式仪表板。
特征:
- 图形可视化:交互式网络图,节点大小基于优先级,颜色基于类型
- 优先级统计:按注释类型显示优先级分布的方框图
- 关系分析:关系类型分布柱状图
- 事件时间表:所有系统事件的时间线可视化
- 节点详细信息:包含优先级、边数、摘要和标签的详细表格
当您单击刷新按钮时,仪表板会自动刷新,允许您探索内存系统中的模式和见解。
数据同步: 可视化工具从以下位置加载图形数据 data/graph/knowledge_graph.json。要更新数据,请运行:
python tools/extract_graph.py此脚本通过HTTP连接到正在运行的MCP服务器(如果 TCP_SERVER_ENABLED=true 在 .env)并将当前图形状态保存到磁盘。
📈 实时图形状态
快速检查内存系统的状态(类似于 git status):
# Full status (default)
python tools/amem_stats.py
# Compact one-line output
python tools/amem_stats.py --compact
# JSON output (for scripting)
python tools/amem_stats.py --json
# Show changes since last run
python tools/amem_stats.py --diff
# Watch mode (auto-refresh every 5 seconds)
python tools/amem_stats.py --watch
# Watch mode with custom interval (10 seconds)
python tools/amem_stats.py --watch 10输出示例:
完整状态:
🧠 A-MEM Graph Status
==================================================
📝 Notes: 47
🔗 Relations: 89
📊 Notes by Type:
🔴 rule 12
🔵 procedure 15
🟢 concept 20
⚙️ Last Enzyme Run: 23min ago
📡 Data Source: http
==================================================紧凑模式:
47 notes | 89 relations | Last: 23min ago差异模式:
+5 notes | +12 relations | -3 zombie nodes观看模式: 每N秒持续刷新一次显示器。非常适合在编码时进行监控!按 Ctrl+C 停止。
该工具会自动尝试从正在运行的MCP服务器获取实时数据(如果启用了HTTP服务器),否则从磁盘读取。非常适合在编码时监控您的内存系统!
外壳别名(可选): 添加到您的 ~/.bashrc, ~/.zshrc,或PowerShell配置文件:
alias amem="python ~/path/to/a-mem-mcp-server/tools/amem_stats.py"
# Then simply: amem📊 状态
✅ 100%纸张合规\ ✅ 所有测试通过 (24/24测试)\ ✅ 模块化结构\ ✅ 多提供商支持 (Ollama+OpenRouter)\ ✅ MCP服务器集成 (15个工具)\ ✅ 内存重置和管理工具\ ✅ 类型分类和优先级评分\ ✅ 事件记录和审计跟踪\ ✅ 记忆酶(自主图形维护)\ ✅ 自动调度程序(每小时维护)\ ✅ HTTP服务器 (可选,适用于外部工具,如 extract_graph.py) ✅ 图形后端选择 (NetworkX、RustworkX、FalkorDB-实验性) ✅ 参数验证 (自动验证所有MCP工具参数) ✅ 安全图形包装器 (边缘案例处理和数据净化) ⚠️ Windows FalkorDB支持 (用于Windows用户的实验性专用适配器-未完全测试)
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
该实现基于研究论文 “A-Mem:LLM代理的代理记忆”.
🙏 致谢
- 论文原作者:徐吴江、梁祖杰、梅、高杭、谭俊涛、张永峰
- 原始存储库:
- 代理记忆 -基准评估 - A-mem-sys -生产就绪系统
______________________________________________________________________
由tobi和CURSOR IDE为社区创建了新的Composer 1模型❤️
