Agentic Memory(代理记忆)

让 agent 在数月、数百个 session 间持续积累并复用上下文的记忆系统。Perplexity 的定义:好的记忆系统应当 structured(结构化)、traceable(可追溯)、adaptable(可演化)——按任务选择搜索的广度与深度,且每个决策落在最新信息上。Colin Francis 补上第四个维度:可遗忘——“A memory system is only as good as its ability to forget”,否则事实源演化后旧记忆变 stale,引发 memory drift / poisoning,系统逐渐退化。

设计空间(Perplexity Brain 的取舍)

  • 静态记忆文件全塞 context → 精确率/召回率两难:塞多了淹没窗口,塞少了缺上下文。
  • 按需查外部库(向量库 = 碎片、图库 = 要会查询)→ 导航负担转嫁给 agent。
  • Brain 的中间路线:结构化知识 wiki(LLM Wiki)做导航层,底层保留完整证据;引用把断言连回来源,相关信息横向相连。
  • 接口上:记忆 = 文件系统,复用 agent 已有的 cat/grep/git 工具,不造新机制。
  • 架构上:前台 agent 探索记忆,后台 Dream 代理离线维护记忆;Memory Agent 子代理做语义检索并把文件物化到本地(远程 FS 的 grep 慢约 400–500×)。

关键机制

  • 两类边:[[wikilink]] 上下文边 vs [cite:N] 证据边——“还该知道什么” vs “凭什么信”。
  • 索引预置于首条消息(比让 agent 自己发现索引效果更好,不满率 −6.9%)。
  • 后台维护四阶段:Orient → Summarize sessions → Attach facts → Update wiki;staged 输出 + 确定性/语义双重验证后同步。

遗忘与自纠正(OpenWiki claims runtime)

记忆检索只解决一半问题;另一半是察觉并纠正过时记忆。OpenWiki 0.4.0 的方案(详见 Colin Francis - Memory Has a Forgetting Problem):

  • claim + 证据版本化:写 wiki 页时同时提取事实断言及其支撑代码,runtime 持久化证据版本——信念与源逐条相连,而非把 wiki 当一堆文本。
  • 确定性 staleness 检测:每次更新前比对证据版本与当前源版本,无模型调用,成本随源变化量而非 claim 总数扩展。stale ≠ 错误,而是”不能再安全假设为真”,且不确定性持久保留直到复核。
  • 自纠正回路:agent 读页时 stale claims 随内容呈现,顺手复核或修正;未解决的保持 stale 不静默丢弃。git 回放评估:stale 80→9、hallucinated 15→0。
  • 遗忘的重新定义:不是删除,而是知道某信念何时不再可信。另一思路(@nechmads 评论):给记忆声明 lifespan(仅在日期 X–Y 间有效)。

姊妹机制:skills(程序性知识)

Anthropic/Warp 给出 memory 与 skills 的分界(详见 自改进 Agent 回路):memory 是陈述性知识,agent 推理时自动写、永不停歇地变化;skills 是程序性知识(“how to do X”),run 无关、稳定、只在回路中刻意修改。两者互补——memory 回答”知道什么”,skill 回答”怎么做”;把反馈转成经审核的 skill 更新(双 skill 自改进回路),程序性知识也能跨 run 复利。

效果

线上配对评估(30 天):正确率 +9.3、现时性 +8.0、召回 +8.9,token −15%、成本 −10%、延迟 −10%。离线消融显示增益最大的是偏好、时间推理、跨 session 细节提取。详见 Brain - Agentic Memory as a Knowledge Wiki

来源与相关页面