【免费下载链接】Agent_Memory_Techniques
Agent memory for LLMs: 30 runnable Jupyter notebooks covering conversation buffers, vector stores, knowledge graphs, episodic and semantic memory, MemGPT, Mem0, Letta, Zep, Graphiti, LoCoMo benchmarks, and production patterns.
想让 Agent 记住你,光靠"感觉"可不行。本文带你走进 Agent Memory Techniques 仓库的第 29 种记忆技术:用LoCoMo与LongMemEval两大长对话记忆基准,量化测试你的 Agent 记忆能否扛住跨多会话的超长对话——从数据集结构、五类问题、BLEU / ROUGE / F1 与 LLM 裁判评分,到分维度诊断短板和无记忆基线对比,一篇讲透。
为什么"感觉记得"不算数?Agent 记忆基准测试的必要性
想象你给新入职的助理出了一张试卷:一部分题目考他是否记得你的咖啡口味(直接回忆),一部分考他能否把两次谈话联系起来安排日程(多跳推理),还有一部分考他知不知道你在上周三从茶改成了咖啡(时间感知)。
总分有用,但分科目分数才能真正告诉你该补什么。
LoCoMo 和 LongMemEval 对 Agent 记忆系统做的就是这件事:它们提供跨多会话的对话 + 标准答案问题,每个问题都针对一种特定的记忆能力。跑一遍基准,"记忆质量好不好"就从一句模糊的宣称,变成了可以追踪、可以对比的具体数字。
没有基准测试,你无法回答这些问题:
- 它还记得 50 条消息前提到的那个偏好吗?
- 它能跨两次会话把两个事实连起来吗?
- 面对"用户上周三换了工作",它知道哪个说法是最新的吗?
LoCoMo 数据集:35 轮会话、2000 道题的长对话记忆测试集
LoCoMo(Long-Context Conversational Memory)是 2024 年提出的标准化基准,结构非常直白:
| 项目 | 内容 |
|---|---|
| 对话数量 | 10 段多会话对话(两位朋友跨最多 35 个会话闲聊) |
| 题目规模 | 约 2,000 组问答(QA pairs) |
| 问题分类 | 5 类,每道题都有已验证的标准答案 |
| 附加信息 | 每题带证据指针,指回对话中具体的轮次 |
它的 5 类问题各测一种记忆能力,这也是基准最有价值的部分——分数能直接定位短板:
| 类别 | 考察能力 | 示例问题 |
|---|---|---|
| 1️⃣ single-hop(单跳) | 直接事实回忆 | "Caroline 最喜欢的颜色是什么?" |
| 2️⃣ temporal(时间) | 时间顺序与变化 | "用户转行之前是做什么的?" |
| 3️⃣ multi-hop(多跳) | 跨会话关联事实 | "Caroline 的哪位同事也参加了她提到的那场会议?" |
| 4️⃣ open-ended(开放式) | 综合散落事实作答 | 需要连贯、完整的合成式回答 |
| 5️⃣ adversarial(对抗) | 识破陷阱 | 问题引用了从未发生过的事,好系统应拒绝回答 |
数据集托管在 HuggingFace 上,仓库的 memory_benchmarks_locomo.ipynb 里用一行就能加载:
from datasets import load_dataset locomo_dataset = load_dataset("snap-stanford/LoCoMo", split="train")每个样本里包含conversation(带会话编号和时间戳的对话 JSON)与qa(带分类、标准答案和证据指针的问题列表),结构在 29 号 README 中有完整说明。
LongMemEval:覆盖 40 到 500 轮会话的补充基准
如果 LoCoMo 像"朋友闲聊",LongMemEval就是"用户和助手的长期聊天史"。它包含500 个实例,每段历史横跨40 到 500 个会话,比 LoCoMo 跨度更长,用 7 种题型覆盖 5 项核心记忆能力:
| 题型 | 记忆能力 | 测什么 |
|---|---|---|
| single-session-user / assistant | 信息抽取 | 从单个会话的用户/助手消息中回忆事实 |
| single-session-preference | 信息抽取 | 从一次会话中推断隐性偏好 |
| multi-session | 多会话推理 | 跨多个会话连接事实 |
| knowledge-update | 知识更新 | 识别随时间变化的信息(旧的被新的取代) |
| temporal-reasoning | 时间推理 | 基于时间戳做时序推断 |
| abstention 变体 | 拒绝回答 | 信息从未提及时,正确说"不知道"而不是瞎猜 |
注意最后一项"abstention(拒绝回答)":一个诚实的记忆系统,在信息不存在时应该承认不知道。这正是很多 Agent 最容易翻车的地方。
怎么打分?BLEU、ROUGE-L、Token F1 与 LLM 裁判四件套
预测出答案后,仓库里的评分流水线用 4 个互补指标打分:
| 指标 | 原理 | 特点 |
|---|---|---|
| BLEU-1 | 预测与参考答案的 n-gram 重叠 | 偏重精确率:你说的话对不对 |
| ROUGE-L | 最长公共子序列 | 偏重召回率:答案要点覆盖全不全 |
| Token F1 | 词级别的精确率/召回率调和平均 | 两者平衡 |
| LLM 裁判 | 让强模型判断"语义上是否正确" | 处理措辞不同但意思对的情况 |
前三项是纯文本重叠指标,速度快、零成本,但会冤枉"换种说法的正确答案"——"New York City" 和 "NYC" 词面重叠很低,意思却完全一致。这时 LLM 裁判(notebook 中用gpt-4o-mini)出手,只回答CORRECT或INCORRECT,给出 0/1 的语义判定。
💡 实践建议:把 LLM 裁判分数当作主指标跟踪,把 BLEU/ROUGE/F1 当作免费的健康指标日常监控。
分维度看分数:定位记忆系统短板
基准真正的威力在按类别聚合分数。跑完后你会得到一张类似这样的成绩单(含无记忆基线对比):
Category Memory Judge No-Memory Judge Delta ---------------------------------------------------- single-hop 0.93 0.03 +0.90 temporal 0.71 0.11 +0.60 multi-hop 0.55 0.03 +0.52 open-ended 0.42 0.05 +0.37这张表直接回答两个关键问题:
- 哪个能力最弱?比如 multi-hop 分数明显偏低,说明跨会话关联检索要优先优化;
- 记忆到底值多少分?把同一批问题交给"什么都不给"的模型(no-memory baseline),两者的差值(Delta)就是记忆系统带来的真实增益。如果某类题上你的系统只比基线高一点点,说明检索对这类题根本没帮上忙。
这正是 Memory Evaluation 与 Memory Benchmarks 的分工:前者帮你自建领域评测集,后者提供公开标准题,两者结合就是完整评测套件。
手把手跑基准:从克隆仓库到第一张成绩单
完整流程封装在 29 号 notebook 中,难度标记为 Advanced,约 60 分钟。核心步骤:
- 克隆仓库并安装 29 号技术依赖:
git clone https://gitcode.com/gh_mirrors/ag/Agent_Memory_Techniques cd Agent_Memory_Techniques pip install -r requirements.txt pip install openai python-dotenv datasets rouge-score nltk- 配置密钥:准备一个
.env文件并写入OPENAI_API_KEY(notebook 默认用gpt-4o-mini作为答题模型和裁判模型)。 - 加载 LoCoMo,把结构化对话转成带会话标记和时间戳的纯文本上下文(模拟记忆系统能存取的形式)。
- 逐题预测:notebook 默认抽样 30 题(按类别分层抽样)控制成本,全量运行约 $5-15(GPT-4o-mini)。
- 四项指标打分,按 5 类问题聚合,输出分类成绩单。
- 跑无记忆基线,对比 Delta,确认记忆系统的真实增益。
- 切换你的检索机制:notebook 里"整段上下文"只是基线做法,生产系统中把它替换成你自己的向量检索/图谱检索,基准不变,只换"选上下文"这一步——这就是可复现对比的来源。
仓库还附带小样本对话数据 data/sample_conversation.json 和 30 种技术横向对比表 docs/comparison.md,方便你规划先测哪种架构。
基准测试的 4 个局限:分数高不代表生产可用
- 🎯分布不匹配:LoCoMo 是朋友日常闲聊,如果你的系统处理的是技术支持工单或企业流程,分数未必反映真实表现。对话风格越接近你的业务,分数参考价值越高。
- 💰全量评测有成本:约 2,000 题全跑一遍 LLM 裁判,预算约 $5-15 每次(GPT-4o-mini)。日常迭代用分层抽样,发版前再全量跑。
- ⚖️指标天花板:BLEU/ROUGE/F1 会惩罚措辞不同的正确答案,LLM 裁判也不完美。记得人工抽查一批被判"错误"的预测。
- 📸静态快照:固定题目集覆盖不了生产环境的所有边界情况。把基准分数当作地板而不是天花板,配合自建领域评测一起看。
下一步:把基准接入你的完整评测体系
- 想先自建领域评测集?从 28 Memory Evaluation 入手,测检索精确率、召回率和信息过时检测;
- 跨会话回忆是这两个基准共同考察的核心能力,可配合 21 Cross-Session Memory 与 09 Episodic Memory 一起优化;
- 分数满意之后,用 30 Production Memory Patterns 把记忆系统安全地搬上生产。
一句话总结:记忆好坏不能靠感觉,用 LoCoMo 与 LongMemEval 把"记忆质量"变成数字,分数上涨就是改进,分数下跌就是回归。
【免费下载链接】Agent_Memory_Techniques
Agent memory for LLMs: 30 runnable Jupyter notebooks covering conversation buffers, vector stores, knowledge graphs, episodic and semantic memory, MemGPT, Mem0, Letta, Zep, Graphiti, LoCoMo benchmarks, and production patterns.
相关推荐
deepagentsjs记忆系统指南:memory与AGENTS.md如何让Agent跨会话记住偏好
deepagentsjs记忆系统指南:memory与AGENTS.md如何让Agent跨会话记住偏好 deepagentsjs 记忆系统 是这款"开箱即用"Ag
Agent Memory Techniques:如何让AI Agent第一次真正记住对话?Conversation Buffer Memory 实战教程
Agent Memory Techniques:如何让AI Agent第一次真正记住对话?Conversation Buffer Memory 实战教程 Age
Claude Managed Agents 如何记住用户偏好:memory store 跨会话记忆实践
Claude Managed Agents 如何记住用户偏好:memory store 跨会话记忆实践 Claude Managed Agents(CMA)里的
示例工程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考