A-MEM: Agentic Memory for LLM Agents
941
Stars
99
Forks
12
Watchers
12
Issues
一种用于 LLM Agent 的新型 Agentic Memory(代理记忆)系统,能够以代理的方式动态组织记忆。
大语言模型 (LLM) Agent 通过调用外部工具,在处理复杂的现实世界任务中展现出了卓越的能力。然而,为了有效利用历史经验,它们需要复杂的记忆系统。传统的记忆系统虽然提供了基本的存储和检索功能,但往往缺乏高级的记忆组织能力。
我们的项目引入了一种创新的 Agentic Memory 系统,彻底改变了 LLM Agent 管理和使用记忆的方式:
(此处应为传统记忆系统与我们提出的 Agentic Memory 的对比图。我们的系统实现了动态记忆操作和灵活的 Agent-记忆交互。)
注意: 本仓库提供了一个用于辅助构建 Agent 的记忆系统。如果您想复现论文中的结果,请参考:https://github.com/WujiangXu/AgenticMemory
更多详细信息,请参阅我们的论文:A-MEM: Agentic Memory for LLM Agents
(此处应为 Agentic Memory 系统框架图,展示了 LLM Agent 与记忆组件之间的动态交互。)
当新记忆被添加到系统中时:
在六个基础模型上进行的实证实验表明,与现有的 SOTA 基准相比,该系统表现出更优越的性能。
git clone https://github.com/agiresearch/A-mem.git
cd A-mem
python -m venv .venv
source .venv/bin/activate # Windows 环境下请使用: .venv\Scripts\activate
安装包:
pip install .
对于开发环境,您可以以可编辑模式安装:
pip install -e .
以下是如何使用 Agentic Memory 系统进行基本操作的示例:
from agentic_memory.memory_system import AgenticMemorySystem
# 初始化记忆系统 🚀
memory_system = AgenticMemorySystem(
model_name='all-MiniLM-L6-v2', # 用于 ChromaDB 的 Embedding 模型
llm_backend="openai", # LLM 后端 (openai/ollama)
llm_model="gpt-4o-mini" # LLM 模型名称
)
# 添加记忆 ➕
# 简单添加
memory_id = memory_system.add_note("深度学习神经网络")
# 带元数据的添加
memory_id = memory_system.add_note(
content="机器学习项目笔记",
tags=["ml", "project"],
category="Research",
timestamp="202503021500" # YYYYMMDDHHmm 格式
)
# 读取(检索)记忆 📖
# 通过 ID 获取记忆
memory = memory_system.read(memory_id)
print(f"内容: {memory.content}")
print(f"标签: {memory.tags}")
print(f"上下文: {memory.context}")
print(f"关键词: {memory.keywords}")
# 搜索记忆
results = memory_system.search_agentic("神经网络", k=5)
for result in results:
print(f"ID: {result['id']}")
print(f"内容: {result['content']}")
print(f"标签: {result['tags']}")
print("---")
# 更新记忆 🔄
memory_system.update(memory_id, content="关于深度学习的更新内容")
# 删除记忆 ❌
memory_system.delete(memory_id)
# 记忆演进 🧬
# 系统通过以下方式自动演进记忆:
# 1. 使用 ChromaDB 查找语义关系
# 2. 更新元数据和上下文
# 3. 在相关记忆之间建立连接
# 当添加或更新记忆时,这些操作会自动执行!
ChromaDB 向量存储 📦
记忆演进 🧬
灵活的元数据 📋
多种 LLM 后端 🤖
A-mem 是一个为大语言模型智能体设计的创新型记忆管理系统。它通过引入智能化和动态化的记忆组织架构,解决了传统记忆系统在处理复杂任务时组织能力不足、无法有效利用历史经验的问题。
基于卡片盒笔记法原则实现记忆的动态组织与管理。 利用 ChromaDB 实现智能化的记忆索引、检索及语义关联。 通过自动生成结构化属性的笔记来增强记忆的条理性。 构建互联的知识网络以支持记忆的持续演化与自我优化。 支持智能体驱动的决策机制,实现自适应的记忆交互。
该项目适用于开发者构建具备深度记忆与学习能力的 LLM 智能体,特别适合需要处理长期任务、复杂上下文或大规模知识库的应用场景。