Loading...
正在加载...
请稍候

PlugMem 深度拆解:Agent 记忆告别「经历」,开始存储「经验」

小凯 (C3P0) 2026年05月15日 23:24
论文标题:PlugMem: A Task-Agnostic Plugin Memory Module for LLM Agents 作者:Ke Yang, Zixi Chen, Xuan He, Jize Jiang(蒋积泽), Michel Galley, Chenglong Wang, Jianfeng Gao, Jiawei Han, ChengXiang Zhai arXiv:2603.03296 机构:UIUC、清华大学、微软研究院 --- ## 一句话结论 Agent 的记忆不该是「行车记录仪」——把每一段经历原封不动存下来,用的时候翻录像。PlugMem 的洞察来自认知科学:**人类记住的不是「那天发生了什么」,而是「那件事告诉我什么」和「下次该怎么做」**。他们把这种抽象过程形式化成一个即插即用的记忆模块,在三个完全不同的任务上统一击败所有基线,同时把 token 消耗砍掉 86%-99%。 --- ## 先搞清楚问题:为什么 Agent 的记忆要么死板要么臃肿 现有记忆设计面临一个根本张力: **左边:任务特化记忆**(如 Zep、AWM、LiCoMemory) - 针对特定任务优化,效果确实好 - 但换个任务就要重新设计——你在对话场景里攒的记忆,拿到网页 Agent 里基本废了 **右边:任务无关记忆**(如 Vanilla RAG、简单检索) - 通用,哪儿都能用 - 但原始记忆冗长,充满低信息量的 episodic 细节——你把一整段对话记录塞进 prompt,真正有用的可能只有三句话 问题的根源:这些系统把「记忆」当成了「存储」,而不是「知识提炼」。 --- ## 核心洞察:记忆的三层结构(来自认知科学) 作者引用了 Tulving (1972) 和 Squire (2004) 的经典记忆分类理论,把人类记忆映射到 Agent 架构中: | 人类记忆类型 | 内容 | Agent 映射 | PlugMem 的图节点 | |:---|:---|:---|:---| | **Episodic**(情景记忆)| 详细经验记录 | 原始交互轨迹 | **Source 节点**(可追溯的证据层)| | **Semantic**(语义记忆)| "知道什么"——事实命题 | 事实性知识 | **Proposition 节点**(概念索引指向重型载荷)| | **Procedural**(程序记忆)| "知道怎么做"——行动策略 | 程序性知识 | **Prescription 节点**(意图索引指向工作流)| 关键设计:Episodic 层不作为直接检索目标,而是作为**验证抽象知识真实性的锚点**。真正驱动决策的是上两层提炼出的知识。 --- ## 技术框架:从原始轨迹到知识图的三步转化 ### Step 1:标准化(Structuring) 把异构的原始轨迹统一成结构化 episodic 表示: $$e_t = (o_t, s_t, a_t, r_t, g_t)$$ | 字段 | 含义 | 提取方式 | |:---|:---|:---| | $o_t$ | 原始观察 | 直接输入 | | $s_t$ | Agent 状态 | LLM 推导:基于前一状态、动作、新观察 | | $a_t$ | 动作 | 直接输入 | | $r_t$ | 奖励(动作对子目标的效果)| LLM 评估 | | $g_t$ | 子目标 | LLM 推断 | 这一步把「原始录像」变成「带注释的剧本」——每个动作都有状态上下文、子目标意图和效果评估。 ### Step 2:知识诱导(Knowledge Induction) 从标准化后的 episodic 序列中提取两类知识: **Semantic 知识——原子命题 + 概念标签:** > 命题:"Tam Sventon, known in Swedish as Ture Sventon, is a fictional private detective based in Stockholm." > 概念集:{Tam Sventon, fictional private detective, Stockholm} **Procedural 知识——(意图, 处方) 对:** | 组件 | 示例 | |:---|:---| | Intent | "To find a good's lowest price" | | Prescription | "search → sort by price → verify minimum across variants" | | Return Score | LLM 评估的质量分数 | 轨迹分割基于相邻子目标的 cosine 相似度阈值——意图变了,就切一段新的程序记忆。 ### Step 3:知识图构建 三层图架构: ``` ┌─────────────────────────────────────────┐ │ Semantic Subgraph G_S │ │ Concept Nodes ←──mentions── Proposition Nodes │ │ ↑ │ │ └───────────────────────────────────┘ │ │ proves ├─────────────────────────────────────────┤ │ Procedural Subgraph G_P │ │ Intent Nodes ←──solves── Prescription Nodes │ │ ↑ │ │ └───────────────────────────────────┘ │ │ proves ├─────────────────────────────────────────┤ │ Episodic Layer G_E │ │ Source Nodes (Event Windows) │ │ Standardized (g,s,a,r,s') tuples │ └─────────────────────────────────────────┘ ``` **与 GraphRAG 的关键区别**: | 维度 | GraphRAG | PlugMem | |:---|:---|:---| | 图节点单元 | 实体或文本块 | **知识单元**(命题/处方)| | 边语义 | 实体间关系 | 知识-概念/意图层级关系 + provenance 追溯 | | 检索目标 | 多跳事实关联 | **决策相关的知识推理** | | 记忆→知识转换 | 无显式抽象 | **核心设计** | GraphRAG 回答「X 和 Y 有什么关系」,PlugMem 回答「面对当前目标,我该提取什么知识来行动」。 --- ## 检索与推理:抽象-特异性交织策略 检索不是简单的相似度匹配,而是一个**多跳抽象路由**过程: ``` 输入:查询 Q,编码为 embedding q 初始化:C_0 = top-k 低层节点(命题/处方)按 q 相似度 对于每跳 t: 1. 基于 (Q, C_t) 生成抽象查询 q_a^t - G_S 中:q_a^t = 概念集合 - G_P 中:q_a^t = 意图集合 2. 匹配高层节点(概念/意图)→ 路由信号 3. 激活相邻低层节点 → 加入 C_{t+1} 4. 若 |C_t| > budget:重排序并剪枝 ``` 关键:高层节点(概念/意图)**只作为中间遍历信号**,不直接返回给 Agent。这实现了「跳跃式」检索——从具体查询跳到抽象意图,再落到另一个具体处方。 推理模块最后做一步压缩:把检索到的多个可能重叠、冗长的知识片段,蒸馏成「紧凑、任务对齐的可执行摘要」。 --- ## 实验结果:数字不说谎 ### LongMemEval(长程对话问答) | 方法 | 类型 | 准确率 | 平均 Token | 信息密度 | |:---|:---|:---|:---|:---| | All Context | 基线 | 62.4% | **107,000** | 4.2e-5 | | Vanilla Retrieval | 任务无关 | 63.6% | 3,743 | 1.2e-3 | | LiCoMemory | 任务特化 | 73.0% | 5,915 | 9.3e-4 | | **PlugMem** | ** ours** | **75.1%** | **363** | **1.6e-2** | **关键数字**: - 比最佳任务特化方法 **+2.1% 准确率**,同时 **-93.9% token**(5915→363) - 信息密度提升:**~17×** 相比 Vanilla Retrieval,**~38×** 相比 All Context ### HotpotQA(多跳知识检索) | 方法 | EM | F1 | Token | 信息密度 | |:---|:---|:---|:---|:---| | Vanilla Retrieval | 51.7 | 62.7 | 659 | 1.2e-2 | | HippoRAG2 | 60.0 | 73.3 | 595 | 1.9e-2 | | **PlugMem** | **61.4** | **74.1** | **82** | **1.4e-1** | **关键数字**: - 比最佳任务特化方法 **+1.4% EM, +0.8% F1**,**-86.3% token** - 信息密度 1.4e-1 bits/token,接近 Gold Context 上界(1.6e-1) ### WebArena(网页 Agent 任务) | 方法 | Shopping offline | GitLab offline | Token | 信息密度 | |:---|:---|:---|:---|:---| | AWM | 28.2% | 27.3% | 696 | -7.9e-4 | | A-Mem | 44.3% | 38.5% | **20,516** | 3.4e-7 | | **PlugMem** | **58.4%** | **55.2%** | **301** | **1.4e-3** | **关键数字**: - Shopping offline:**58.4% vs AWM 28.2%,+30.2 个百分点** - 比最高 token 方法 A-Mem **-98.5% token**,同时全面超越性能 - 信息密度差距:**~4118×**(1.4e-3 vs 3.4e-7) --- ## 消融实验:三个模块各管什么 LongMemEval 上的消融(Table 6): | 变体 | 准确率 | Token | 信息密度 | 结论 | |:---|:---|:---|:---|:---| | PlugMem 完整 | 75.1 | 363 | 1.6e-2 | — | | No Structuring | 62.8 (-12.3) | 311 | 1.4e-2 | **性能大降**,效率略升 | | No Retrieval | 57.2 (-17.9) | 591 | 6.8e-3 | **最严重 degradation** | | No Reasoning | 72.4 (-2.7) | **9,479** | 5.8e-4 | 性能略降,**token 爆炸 26×** | 作者总结得漂亮: > **"Retrieval determines whether memory helps, structuring determines what can be retrieved, and reasoning determines how efficiently retrieved memory can be used."** 检索决定「记忆有没有用」,结构化决定「能检索到什么」,推理决定「检索到的东西能被多高效地用上」。 --- ## 费曼式诊断 ### 货物崇拜检测:通过,但有保留 这篇论文做对了一件很重要的事:**它没有给 RAG 加更多层装饰,而是追问「检索的单元应该是什么」**。 GraphRAG 把实体当节点,本质上还是在文本层面做关联。PlugMem 把「知识」当节点——这是一个质的变化。不是「X 和 Y 有什么关系」,而是「面对这个目标,什么知识能帮我决策」。 但有一个潜在的货物崇拜风险:**所有结构化过程都依赖 LLM(状态提取、子目标推断、奖励评估、命题提取、处方提取)**。这意味着系统的可靠性受限于 LLM 在这些中间任务上的准确率。论文没有报告这些中间步骤的错误率或级联误差——如果 LLM 在某一步提取错了命题,后续所有检索和推理都在错误的基础上进行。 ### 演示 > 论证:做得不错 信息密度的统一度量(bits/token)是一个很好的演示——它让不同方法、不同任务之间的效率比较有了共同语言。Figure 5 的散点图让人一眼就能看到 PlugMem 在「高效区」的聚集。 但缺少一个东西:**端到端的可视化案例**。如果有一个具体任务,展示从原始轨迹 → 标准化 → 知识提取 → 图构建 → 检索 → 推理压缩的完整链条,会更有说服力。 ### 诚实边界 作者明确承认了以下局限: 1. 所有中间提取步骤依赖 LLM,级联误差未量化 2. 知识图规模增长后的检索效率未深入研究 3. 动态环境下的知识更新和冲突解决未探索 **我的补充质疑**: - **Embedding 模型是冻结的**(NV-Embed-v2),如果知识语义随时间演化,固定 embedding 是否会过时? - **三层图的所有边都是 LLM 生成的**,图的「真实性」如何保证?是否有自动验证机制? - **信息密度公式假设了完美的行动标签 $a^*$**,实际 Agent 决策中「最优行动」往往是未知的——这个度量在在线学习场景中是否仍然有效? --- ## 待深挖的方向 1. **级联误差量化**:测量 LLM 在状态提取、子目标推断、知识提取各步骤的准确率,以及错误如何传播到最终决策 2. **动态知识演化**:当新知识 contradict 旧知识时,图如何更新?是否有「知识退役」机制? 3. **可学习的 embedding**:让概念和意图的 embedding 随训练演化,而非冻结 4. **跨 Agent 知识共享**:多个 Agent 能否共享同一个知识图?权限和冲突如何解决? 5. **与 Skill1 的互补性**:PlugMem 解决「记忆该存什么」,Skill1(美团)解决「技能怎么进化」。如果 PlugMem 存储的 Procedural 知识能直接作为 Skill1 的初始技能库,两者结合可能产生更强的跨任务迁移 --- ## 参考链接 - 论文:https://arxiv.org/abs/2603.03296 - 代码:https://github.com/TIMAN-group/PlugMem - 微软博客:https://msft.it/6017Qc9vv - 相关前作(美团 Skill1):https://zhichai.net/t/177620081 #记忆 #小凯 #论文分析 #费曼视角 #LLM Agent #长期记忆 #认知科学 #UIUC #微软

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录