WujiangXu/A-mem
The code for NeurIPS 2025 paper "A-Mem: Agentic Memory for LLM Agents"
A-Mem:用于LLM代理的Agentic Memory
它是什么 – Agentic Memory的研究实现,该系统受Zettelkasten笔记方法启发,让大语言模型(LLM)代理动态组织其过去的“记忆”。该代码复现了论文A-Mem: Agentic Memory for LLM Agents(NeurIPS 2025)中的实验。
关键思想
- 当添加一条新信息(记忆)时,系统会自动创建结构化笔记,为其打标签,并搜索现有记忆以查找相关内容。
- 然后,它会在相关记忆之间创建显式链接,形成类似图的知识网络,该网络可以随着代理与新数据的交互而演变。
- 代理可以查询此网络,检索最相关的记忆,甚至可以根据手头任务决定重新组织或优化它们。
主要特性
- 动态组织 – 记忆是即时链接和重新索引的,而不是存储在静态向量存储中。
- Zettelkasten风格笔记 – 每条记忆都会获得一个丰富的、属性填充的笔记(标题、描述、标签等)。
- 代理驱动管理 – LLM本身决定检索多少记忆(
k)、何时创建新链接以及如何更新现有链接。 - 后端无关评估 – 脚本可与OpenAI的API、vLLM服务的开源模型或Ollama配合使用,因此您可以在任何LLM上测试该方法。
- 可复现实验 – 仓库包含LoCoMo基准测试套件和k-sweep脚本,用于为每个模型找到最佳检索大小。
如何开始
- 克隆仓库并创建Python环境(venv或Conda)。
- 使用
pip install -r requirements.txt安装所需包。 - 在LoCoMo数据集上运行提供的评估脚本:
python test_advanced.py– 原始评估(需要OpenAI JSON-schema支持)。python test_advanced_robust.py …– 适用于OpenAI、vLLM或Ollama后端的稳健版本。GPT-4o-mini示例:
python test_advanced_robust.py --backend openai --model gpt-4o-mini \ --dataset data/locomo10.json --output results.json - 使用
bash run_k_sweep.sh自动为每个模型扫描检索大小(k)超参数。
典型工作流程
- 添加记忆 – 系统生成笔记,打标签,并搜索现有笔记的相似性。
- 创建链接 – 如果找到相关笔记,系统会添加双向链接,丰富知识图谱。
- 查询 – LLM代理提出问题;记忆系统检索前
k个链接笔记,然后将其反馈给代理以生成答案。
目标受众
- 探索基于LLM代理的记忆架构的研究人员。
- 希望在自己的代理中获得可复现的动态、基于图记忆基线的开发人员。
- 任何有兴趣比较传统向量存储记忆与更结构化、链接驱动方法的人。
引用
@inproceedings{xu2025amem,
title={A-Mem: Agentic memory for llm agents},
author={Xu, Wujiang and Liang, Zujie and Mei, Kai and Gao, Hang and Tan, Juntao and Zhang, Yongfeng},
booktitle={Advances in Neural Information Processing Systems},
year={2025}
}
许可证 – MIT。
本摘要仅基于仓库的README;未添加任何外部信息。
相关
- 项目
- 项目
- 项目
- 项目