近期基于大语言模型的编码代理取得显著进展,但在长时序任务中仍面临上下文膨胀问题——每一次观察都会被追加到上下文,导致规模不断增长。常用的历史维护方法通过掩蔽、摘要或裁剪旧观测来限制上下文,但仅依据文本本身,忽视了代码之间的结构关联。编码代理在单个任务中会多次编辑代码,任意一次写入都可能改变其他位置符号的语义,传统维护可能保留已被写入否定的记录,或丢弃仍然有效的记录,进而导致后续编辑缺失必要信息。
为解决上述难题,本文提出 StateTape——一种随代码库变化而重写代理上下文的可扩展框架。核心思想是将代码库抽象为符号层面的代码图,图的依赖关系和语言规则揭示每次写入可能影响的符号集合。基于该图,StateTape 在一条“磁带”上标记每次写入修改的符号,将陈旧性从对文本的推断转化为对写入行为的直接观测。
StateTape 的每次写入流程包括:① 磁带根据代码图列出该写入可能使哪些记录失效;② 一个轻量级管理模型进一步判定磁带无法决定的记录是否仍然有效。作者还给出理论分析,证明在合理假设下该机制能够有效捕获失效记录并恢复必要信息。
为评估方法,本文构建 TraceBench 基准,标注代理实际持有的证据与任务真实需求的对应关系。实验在六种编码代理和三套编辑密集型基准上进行,结果显示 StateTape 能显著清除失效记录、检索所需信息,提升了解决率,并且计算开销极小。
点评