自适应智能体记忆:按未来有用性取舍,而非相似度

自适应记忆系统用实测未来效用替代相似度检索,但关键环节仍是开放问题。
该文介绍开源研究仓库 adaptive-agent-memory-research,主张智能体记忆的保留决策应基于过去经验的实测未来有用性,而非与当前查询的语义相似度。架构采用仅追加快层与语义/程序性慢层,控制器已运行但「实测未来效用」仍是开放问题。已报告的 71 个实验中 37 个已运行,结果包括:被取代事实与替代者余弦相似度高达 0.816,内容无法区分退休与继任;单时间戳无法回答历史问题,双时间轴可零泄露但仅在会问历史时有用;多语言嵌入器把 recall@10 从 0.156 提到 0.978,却把过期材料侵入率从 0.050 拉到 0.200;关联图反而使检索变差并被作者撤稿。作者强调这是探索性研究,缺少基准表、读者模型和压缩臂,核心比较尚未完成。
相似度检索解决错了问题
智能体的上下文窗口被压缩后,被丢弃的内容就永远消失了。当前主流做法是把所有东西都做嵌入,再按相似度检索——但这回答的是「什么看起来像这个查询」,而不是「这个智能体接下来需要什么」。这两个问题之间存在可测量的差距。
adaptive-agent-memory-research 正是一个围绕这个差距构建的开放研究仓库。它是一个本地优先、模型无关的长期记忆系统,判断「该保留什么」的依据是过去经验的实测未来有用性,而非与当前查询的语义相似度。作者明确表示这是研究引擎而非成品,并已被项目用于日常自我管理。引擎本身无依赖、离线运行、不需要 API 密钥——但仓库的大部分内容其实是围绕它的测量装置。

架构:两个存储层与一个开放问题
设计采用双存储结构:
- 快层:仅追加的情节日志(append-only log),保留不可变证据,从单次经验中学习
- 慢层:语义/程序性存储,整合反复出现的内容
两者之间的迁移由测量出的未来效用决定,而非相似度或检索频率。
experience → append-only log → memory controller →
[episodic | semantic | procedural | failure] →
measured future use → retrieval → agent
README 明确指出:仅追加日志、控制器和检索已经构建并运行,而图中标注「真正属于研究的部分」——即实测未来效用那一步——仍是开放问题。控制器下方的四个存储层被描述为一种设计假设,而非经过验证的分解方案。
已测量到的关键发现
仓库注册了 71 个实验,37 个已运行,20 个因缺少语料而受阻。全部为探索性质,无一经过独立评审。以下是已报告的结果:
被取代的事实与替代者高度相似
旧事实与其替代者之间的平均余弦相似度为 0.816,而语料基线为 0.372,其中一对达到 1.000。移除元数据过滤后,过期版本在 9 个案例中有 6 个成为最近邻,中位排名为 1。结论:内容本身无法区分退休事实与继任者,只有簿记可以。
双时间轴(bitemporal)模型:文章提到的「有效时间」指事实在现实世界中为真的时间段,例如「某公司的CEO是A」只在A任职期间有效;「事务时间」指系统何时记录/相信该事实,反映当时的认知状态。单一时间戳只能承载其中之一,因此无法回答「当时我们认为什么」这类回溯查询——系统只能给出当前认知,或错误地用现在知道的信息覆盖过去。分离两条时间轴后,系统可以独立查询「在T1时我们相信的有效事实是什么」和「今天回看,T1时真正有效的事实是什么」,从而支持审计、追责和时序推理。代价是每个事实需要两个区间、查询条件更复杂,且在只关心「现在」的场景中并不带来收益。
单一时间戳无法回答「当时我们认为什么」
单一时间戳在该问题上得分 0.00,并在 18 次查询中 6 次泄露未来信息。将有效时间与事务时间分离后得分 0.944,零泄露。但需注意:所有设计在「现在什么是真的」上都得 1.00,所以除非确实会问历史问题,第二个时间轴并不带来收益。
多语言嵌入器提升召回但引入安全隐患
一个 220 MB 的本地多语言嵌入模型将波兰语查询的 recall@10 从 0.156 提升至 0.978,但同时拉入了四倍的过期材料(禁止侵入率 0.200,词法搜索仅 0.050)。召回问题解决了,安全性尚未测量。
禁止侵入率(intrusion rate):这里指检索结果中混入了本不应出现的过期、失效或冲突材料的比例。它衡量的是「检索污染」——系统为了提升召回而被诱导带出已被取代或禁止访问的内容。与 recall 关注「有没有找到该找的」,侵入率关注「有没有带回不该带的」。两者常呈反向关系:更强的语义匹配会同时拉近目标片段和形近但过期的片段。因此仅报告召回提升不足以判断系统是否安全,需要成对报告召回与侵入率,并在检索后加一层元数据/时间过滤或冲突检测,而不能默认「召回高=效果好」。
关联图让检索变差(作者自行撤稿)
一个基于记忆的关联图使检索效果下降。早先的有利版本已被作者撤回:其泄露控制需要移除 4.5 条边却只移除了 1 条,导致金标准生成组通过两跳重新聚合。这是对自身工作的诚实撤回。
完美召回不等于正确回答
在新语料上,投毒指令族得分 1.000 recall@10,却在 25% 的探测中将投毒行排在真实规则之上。作者将其框定为单一合成语料上的单一词法实验,是关于「召回掩盖了什么」的证据,而非一般性结论。
独立性阶梯的某一层无法实例化
项目自身独立性阶梯的 Tier I3 目前无法实例化:同一模型的两个角色在 120 次查询中零次伪造证据标识符,因此错误相关性是未定义的而非零。测试框架如实报告为未定义,因为报告 0.0 等于宣称一种无人测量过的独立性。
独立性阶梯(independence ladder):指用分级方式刻画系统不同组件之间「独立作答/独立验证」程度的评估框架。层级越高,组件之间共享模型、提示或训练数据的程度越低,错误相关性也越弱。Tier I3 属于其中某一级,要求两个角色在证据标识符上互不复制、互不依赖。当在 120 次查询中零次伪造标识符时,「错误相关性」这一指标没有可观测的分子与分母,数学上是未定义的,而非 0。把它记作 0.0 会把「未测量」误报为「已测量且为零」,从而虚假抬高系统的独立性评级。正确做法是标注为 undefined 或 N/A,并说明需要更强的对抗性任务或不同模型组合才能实例化该层级。
缺失的部分
没有头条基准表。项目想要做的比较——在固定上下文预算下、跨越长历史的条件下,将自适应记忆与原生压缩和向量检索对比——需要语料和读者模型。
语料现已存在:corpus H1,538 个事件、30 个模拟天、84 个延迟探测,横跨七类失败族,确定性生成,无需模型或 API 密钥。首次运行发现了语料本身的缺陷:文档长度在三个族的 12 个实例中全部预测了答案。损坏版和修复版的测量结果均已发布。
仍缺的是读者模型(评判某条臂能否从其保留的内容中作答),以及压缩臂本身。这项工作追踪在 issue #41,README 称之为最高杠杆的开放任务。
状态与局限
这是早期阶段的开放研究。仓库采用 CC BY 4.0 许可,无依赖,不需要 API 密钥。README 说明存在 bug 和粗糙边缘,欢迎报告(安装问题见 issue #36),并承诺无论结果如何都会发布。
如果你想要的是一个保留证据、可被检查的智能体记忆系统,MCP 配置只需两条命令。如果你想要的是一个关于该设计是否优于相似度检索的确定答案,仓库自身的立场是:答案尚未被测量。
相关推荐

前端转AI Agent开发:一线架构师解析职业路径与红利
一线AI架构师解析前端转AI Agent开发的行业变化与落地路径:纯前端岗位为何消失、Agent+全栈为何成为招聘主流,以及Agent开发工程师、FDE、远程接单三条转型路线和对应学习策略。

AI Agent开发课程怎么选?五条避坑指南
机械转行开发者踩坑两年总结的AI Agent开发课程筛选清单:完整交付链路、可写进简历的项目、真实开发视角、更新频率、陪跑反馈五个维度,附具体判断方法和避坑要点。

扣子(Coze)智能体搭建入门:零代码开发AI Agent实战指南
扣子(Coze)是字节跳动推出的一站式AI应用开发平台,支持零代码拖拽搭建AI智能体。本文基于B站教程梳理扣子的核心概念、三大优势、国内版与国际版差异,以及智能体与应用的区别,帮助初学者快速入门AI Agent开发。