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脚本,用于为每个模型找到最佳检索大小。

如何开始

  1. 克隆仓库并创建Python环境(venv或Conda)。
  2. 使用pip install -r requirements.txt安装所需包。
  3. 在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
    
  4. 使用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;未添加任何外部信息。

相关

  • 项目
  • 项目
  • 项目
  • 项目