西安人的城墙下,是西安人的生活
不积跬步无以至千里,不积小流无以成江海

Memory 记忆设计讨论:Agent Memory 到底应该是什么?

全球AI热点

Memory 记忆设计讨论:Agent Memory 到底应该是什么?

Memory 记忆设计讨论:Agent Memory 到底应该是什么? – 杜文龙 – 博客园

第一篇不急着讨论某个框架,也不急着选择数据库。先把一个更基础的问题说清楚: Agent Memory 到底应该是什么?

Agent Memory 的数据模型:Event、Evidence、Candidate 与 Memory Fact

我以前也容易把 Agent Memory 理解成两件事:保存聊天记录,或者接入一个向量数据库。

Agent 在下一次工作时,能不能找回正确的信息,知道这些信息是否仍然有效,并且能够继续完成任务。

这句话看起来很简单,但 Agent 至少需要知道:上次计划去哪,出行日期有没有变化,预算是多少,同行人是谁,已经看过哪些方案,哪些偏好是长期的,哪些只是这一次的临时要求,以及上次任务究竟做到哪一步。

Agent Memory 是一套把历史事件、事实、偏好、任务状态和证据来源组织成可信上下文的能力,让 Agent 在正确范围内记住正确的信息,并在需要时找回来。

聊天记录当然有价值,它是最重要的原始材料之一。但原始材料和可继续使用的记忆不是一回事。

如果系统把所有句子放在一个“聊天记录”里,下一次只能重新让模型阅读和猜测。如果系统把它们整理成带有范围、时间和来源的结构化信息,Agent 才能更可靠地继续工作。

因此,Memory 不是把聊天记录复制到另一个表里,而是对历史信息进行整理、筛选、标注和治理。

没有来源、范围和版本的摘要,可能比原始对话更危险,因为它看起来更像一个确定事实。

一个可信的 Memory 不只保存“内容”,还要保存内容的上下文:谁说的、什么时候说的、适用于什么事情、是否已经被更新、是否需要用户确认。

这些信息描述的是任务当前做到哪一步。它们应该由任务运行状态来管理,而不是藏在一条语义记忆里。

Memory 可以告诉 Agent 用户通常偏好可取消的酒店;任务状态则要明确告诉 Agent 当前这个任务是否已经选定酒店、是否等待用户确认。

这两个概念混在一起,就容易出现两类错误:把一次任务的临时状态误认为长期偏好,或者把长期偏好误当成当前任务已经完成的步骤。

Memory 提供历史依据和连续性,Task Runtime 负责当前任务怎么继续,权限和回执负责动作是否有资格执行、是否真的成功。

系统先接收发生过的事情,比如用户说了一句话、修改了预算、查看了某个方案,或者外部系统返回了结果。

这一步的重点不是“尽量多收集”,而是明确数据来源和用户授权。系统不能默认读取所有设备、文件和应用。

比如从多次选择中发现“用户通常优先直飞”,或者从当前对话中发现“这次不要安排晚于晚上九点的航班”。

这里的结果只能叫 Candidate,也就是候选记忆。模型认为某件事可能成立,不代表它已经是系统可以长期相信的事实。

系统需要判断候选的来源、作用范围、有效时间、敏感程度,以及它是否和已有内容冲突。

如果用户以前说过“预算不超过 8000 元”,现在又说“这次预算可以到 10000 元”,系统不能简单地让两条记忆同时生效。

原始事件、证据、长期事实、偏好和任务状态应该分开保存。它们的生命周期和读取方式不同。

当用户再次提出请求时,系统先确认用户、任务和范围,再读取当前有效的任务状态和事实,最后用关键词、向量和时间等方式补充相关内容。

记忆不是写入之后永远不变。用户可以修改、暂停或删除它,新的证据也可能替代旧版本。

Evidence 记录这条信息来自哪里,可以是某次对话、某个文档、一个表单或外部系统的返回结果。

Candidate 是模型或规则提取出的可能记忆。它还没有通过治理,不能直接当成正式事实。

Memory Fact 是经过判断后,系统允许后续使用的事实或偏好。它需要带来源、作用域、版本和有效时间。

最容易犯的错误,就是把 Candidate 直接写成 Memory Fact。模型说“用户可能喜欢早班机”,不等于系统就应该永久相信这件事。

这条链路说明,Memory 并不是一个孤立组件。它需要和任务运行、权限控制、动作执行以及结果回执配合起来。

先让系统能够跨会话找回事实、证据和任务状态,重点验证来源、作用域、跨任务隔离和用户纠错。

最后让任务能够跨时间、跨设备和跨应用继续,但关键动作仍然需要当前授权,并以外部系统的真实回执作为完成依据。

这三步不适合颠倒。没有稳定的来源和任务状态,个性化只会放大错误;没有准确的事实和版本,跨设备执行就不可靠。

在正确范围内记住正确的信息,在需要时把它找回来,并且允许用户理解、纠正和控制它。

后面的三篇文章会继续把这个判断拆开:为什么向量数据库不等于 Memory,这些数据对象如何设计,以及权限、删除、版本和回执应该放在哪些控制点上。

posted @ 2026-09-07 20:05 杜文龙 阅读( 3830 ) 评论( 9 ) 收藏 举报

浙公网安备 33010602011771号 浙ICP备2021040463号-3

出处:https://www.cnblogs.com/duwenlong/p/22879534(Hacker News 热度榜第 6 名 · 热度 94 · 讨论 0)

原创文章如转载,请注明本文链接:西秦记 » Memory 记忆设计讨论:Agent Memory 到底应该是什么?
分享到: 更多 (0)

IT信息化解决方案设计咨询

联系我们