我问大家如何处理智能体记忆。以下是回复中的模式,以及无人真正解决的一个问题。
摘要
关于智能体记忆的社区讨论显示,尽管在记录什么(如纯文本文件、分层记忆、事后总结)方面存在各种补丁方案,但未解决的问题是保留什么——检测失败是可处理的,但决定哪些教训应持续保留仍需要人类判断。
我在社区提了个问题:为什么智能体会记住听起来相关的内容,而不是实际有效的东西。收获了一堆真心实意的回复,这里是我的理解,因为它们的模式比我最初的问题更有趣。几乎没有人维护纯粹的向量搜索。反复出现的挫败感,也是几个人说得特别到位的地方:嵌入擅长“看起来相似的东西”,但智能体真正需要的是“什么有效”和“什么失败了”,而这完全是两种不同的检索问题。有人把缺失的部分称为“负记忆”,智能体从不保留“我们尝试过这条路,但因为 X 失败了”,于是它又乐呵呵地撞上同一堵墙。让我惊讶的是,有多少人已经自己搭了补丁,而且补丁之间差异巨大:有人直接用纯文本文件运行工作记忆,智能体自己决定写什么,旧内容自动滚入向量数据库,没有花哨的平台。他的一句话让我印象深刻:“如果你还要问,那系统就坏了。”另一个人把记忆分成多个层次:稳定可信的事实 vs 可引用的凭证,不允许智能体对任何无法指出来源的东西采取行动。“我找到了一个可能匹配” vs “我知道”。还有一个人让智能体在每次任务后用自己的语言写一篇事后总结(“尝试了X,因为Y失败了,下次 Z”),并在新工作前进行语义搜索。他坦诚的缺点:写了三四十篇后文件变得嘈杂,于是加了一个摘要步骤。另一个人提出了三个记录册(事实、运行状态、决策与失败),并在语义搜索前根据意图进行路由,这样“我们试过这个了吗”会先命中失败日志。我把它们并排一看,问题就跳出来了:每个方案都解决了“写什么”的问题,但没一个真正解决“保留什么”。最精确的说法来自一个在生产环境中运行的人。他的观点:检测到失败发生了,大部分情况下可以自动完成——你能捕获工具错误、失败的测试、超时、被撤销的补丁,甚至是未经验证结束的任务(把缺失验证当作一种失败信号,我觉得这很敏锐,否则你永远只会记录那些大声的崩溃)。但他明确表示不会信任自动化来推断实际的教训。失败意味着什么,以及它是否应该保留,仍然需要人类或强制的明确写入。我想,这个分界线就是全部:检测是可处理的,而整合则不是。系统如何决定什么是真正正确的,而不仅仅是频繁检索到的?以及,写入后什么能存活下来?每个人都在用启发式方法来解决(“证明两次”、时效性、手动规则、摘要步骤),而且每个启发式方法在可预测的边界处都会失效。这就是我为什么在这个领域构建。对于在生产中运行智能体的人:你的系统在什么地方停止信任自动化,开始需要人类介入?这条线对任何人来说在移动吗,还是卡在原地?
相似文章
尝试让智能体记忆跨会话持久化所学的经验
本文反思了AI智能体记忆的复杂性,远超简单的存储问题,强调了诸如判断真实性、优先级变化、区分决策与噪音以及何时恰当地呈现上下文等挑战。
如何管理代理记忆而不让其变成杂物抽屉?
关于管理AI系统中代理记忆的实际挑战的讨论,侧重于避免信息过载导致输出质量下降,并提出使用工作流状态和多代理架构等策略。
Agent Harness 中的记忆现状(12分钟阅读)
一项针对主要AI Agent Harness(Claude Code、Codex、Copilot等)中记忆实现的调查揭示了常见的边界故障,包括有界本地存储、关键词检索、Harness作用域、弱陈旧性处理以及57-71%的跨用户污染率,凸显了Agent记忆基础设施中尚未解决的问题。
能够在会话之间记住你的代理,哪些设置真正做到了这一点?
讨论了个人AI代理在会话之间持久记忆的挑战,比较了Custom GPTs、Mem和Open Campus的共享内存方法等设置,并征求社区关于处理内存冲突的建议。
你认为智能体记忆主要是一个AI问题,还是一个恰好被AI使用的基础设施/数据管理问题?
对智能体记忆主要是一个基础设施/数据管理问题而非AI问题的反思,聚焦于权限、范围、修订历史等实际复杂性。