为什么记忆会话转录文本无法提升 AI 编程智能体 (AI Coding Agents) 的性能
为什么记忆会话转录文本无法提升 AI 编程智能体 (AI Coding Agents) 的性能
会话转录文本无法为 SWE 智能体带来性能增益
当智能体已经能够访问其他形式的上下文时,为 AI 智能体提供对以往会话转录文本的搜索权限,对于软件工程 (SWE) 任务不会产生任何性能收益。除非有人类参与其中来筛选信息,否则自动抓取这些转录文本以改进上下文通常是无效的。
虽然直觉上认为转录文本包含有关用户意图、被舍弃的方法以及代码背后的“为什么”等有价值的数据,但实证测试表明,这种额外的记忆层往往会使模型的表现变差。这主要是因为会话中最有价值的信息应该被提炼为永久性的产物 (artifacts)——例如文档、commit messages 和 PR descriptions——而不是作为原始对话保留下来。
意图漂移与记忆园艺 (Memory Gardening) 的问题
AI 智能体在“意图漂移”方面表现挣扎,即模型将上下文窗口中的每个 token 都视为当前意图的表达,而不管该 token 是否是之前未经过审查的会话中做出的随机决策。
缺乏记忆园艺
智能体目前无法对其自身的记忆进行“园艺”处理。它们无法有效地移除过时或错误的上下文,因为它们缺乏状态,并且必须假设所有输入上下文都是事实。这导致了几个关键问题:
- Token 膨胀: 智能体在阅读“伪无意义的草稿纸”以及它们已经从提炼后的文档中获知的信息时,浪费了宝贵的 token。
- 上下文损坏: 由于模型在基准测试中会因为假设输入数据是错误的而受到惩罚,因此它们会将过时或假设性的信息视为事实。
- 可持续性: 自动更新智能体技能集在很大程度上是不可持续的;一项内部测试显示,80% 基于公司活动提出的自动更新建议都被人类拒绝了,因为这些更新会降低模型的性能。
智能体记忆的替代方案
与其对原始转录文本进行索引,高性能的智能体工作流强调创建持久的编码产物 (artifacts)。
提炼为产物
与其依赖过去对话的数据库,智能体应该被指示将有价值的见解存储在:
- 全面的文档: 技术指南和 READMEs。
- 详细的 Commit Messages: 解释变更背后的逻辑。
- PR Metadata: 为审查者和未来的智能体提供变更的上下文。
使用转录文本进行验证
虽然转录文本可能无法帮助智能体 编写 代码,但它们对于人类验证非常有价值。会话日志可以揭示智能体采取的手动验证步骤——例如使用 Playwright 驱动应用或检查生产环境配置——这些步骤是 CI 测试或最终代码中没有捕捉到的。
社区观点与反论点
从业者们对基于会话的记忆的效用存在分歧,一些人报告了显著的负面副作用,而另一些人则发现了小众的价值。
反对使用会话记忆的论点
许多用户报告,“被记忆”的上下文会渗透到无关的项目中,导致幻觉。一位用户指出:
"I’ve had so much weird output because context is 'memorized' and bleeding into completely unrelated projects and conversations."
其他人认为,目前的记忆实现是一种推理时特征,模型并未针对其进行训练,从而导致了“现在正在发生什么”与“过去发生了什么”之间的混淆。
支持使用会话记忆的论点
一些开发者发现会话日志对于跨越不连续的工作会话跟踪状态是必不可少的。一位从业者使用了一种提示词系统,其中每个会话都必须生成一个日志或计划,允许他们询问智能体:"What's the status of my work on Renovate?" 或 "Did we fix the issue with backups?"
此外,一些人发现记忆可以唤起相关的环境约束(例如,运维团队的规模),而用户可能已经忘记在像 CLAUDE.md 这样的项目特定配置文件的中记录下来。