来源笔记
Delivery, Not Storage: Cue-Anchored Working Memory as a Harness Property for Coding Agents
摘要
论文认为,可靠的长期运行编码代理记忆,必须由 harness 在特定情境线索出现时交付,而不能依赖代理主动从文档或工具中检索。其线索锚定工作记忆设计以确定性方式注入有范围的记忆,并显示出跨越上下文压缩边界的可靠交付能力,而代理主动使用记忆的情况几乎不存在。
问题
- 编码代理主要使用文档和可选的记忆工具,这要求模型决定保存和检索哪些内容;这种方式无法复现长期任务中由线索触发的操作性记忆。
- 上下文压缩可能移除仍然相关的事实,迫使代理重新探索,或未经授权地搜索会话产物。
- 这很重要,因为缺失情境知识可能增加工具调用、上下文浪费,以及在长期软件工作中丢失任务关键约束的风险。
方法
- 将每条记忆建模为内容、种类、范围、衰减属性,以及基于路径、符号、语义相似度、事件和时间的可组合触发器。
- 在会话开始、提交提示、访问文件和压缩后等事件发生时,由 harness 确定性地评估触发器,而不是依赖模型主动执行。
- 使用带预算、带溯源信息的注入机制,并配合去重、压缩边界重置、审计日志和过时检查。
- 在 Vectr 中实现该机制,并通过原生生命周期钩子和 API 代理两种方式将其连接到 Claude Code。
- 在一个固定版本的、约含 169,000 个代码块的代码库上评估 Apache Camel 的流模式 Resequencer 的 reverse-option 功能,并使用十条合成事实进行重复压缩探测。
结果
- 在最严格的主动使用对照组中,尽管代理拥有四条与任务相关的预置笔记、已连接的工具和明确指导,它在 114 轮中进行了 0 次记忆调用。
- 原生交付在两次运行中都于首次访问相关文件时注入了线索锚定的注意事项;在 40 次和 35 次带审计日志的触发器评估中,均有 0 次误报注入。代理处理了 241 次注入决策,其中注入 5 次,正确跳过 236 次。
- 全部 12 次评分编码运行均通过未修改的验收测试和包含 42 个测试的 Resequencer 回归测试套件;论文报告称,注入没有造成正确性损害。
- 在九份试点记录中,61 次会话内重新读取有 24 次,即 39%,重复读取了压缩边界之前已经遇到的内容;这些重新读取合计再次消耗约 78,000 个结果 token,最差的一次运行约再次消耗 31,600 个 token。
- 在重复压缩探测中,仅存在于对话中的事实在 108 次摘要中有 106 次缺失,而 harness 注入在 139 个审计点交付了全部十条事实,包括启动阶段和全部 138 次压缩后恢复;注入组在不依赖最终摘要的情况下,以 10/10 的结果完成了终点测试。
- 报告中的效率方向是积极的,但结论尚不充分:配备工具的运行平均调用工具 79.8 次,而 vanilla 运行平均为 137.3 次;成本分别为 5.08 美元和 7.20 美元。不过,记忆对比仅包含两次原生运行、一次主动使用运行和一个任务,因此无法证明显著的速度或成本收益。