[Paper] 将上下文作为工具:长时程 SWE-Agents 的上下文管理
发布: (2025年12月27日 GMT+8 01:15)
8 min read
原文: arXiv
Source: arXiv - 2512.22087v1
概览
大型语言模型(LLM)代理正日益被用于自动化软件工程(SWE)任务,这类任务往往跨越多个步骤并需要在庞大的代码库中进行导航。现有的代理通常会将每一次新的交互不断追加到日益增长的“提示”(append‑only)中,或依赖临时的、被动的压缩技巧,这很快会导致上下文溢出、重要语义丢失以及推理质量下降。论文 “Context as a Tool: Context Management for Long‑Horizon SWE‑Agents” 引入了 CAT,一种将上下文处理视为显式、可调用工具的新范式,代理可以在需要对记忆进行摘要、裁剪或重组时随时调用它。通过这种方式,CAT 能在严格的 token 预算下保持代理的推理聚焦、可扩展且稳健。
关键贡献
- CAT framework – 形式化了一个三层的上下文工作区(稳定的任务语义、压缩的长期记忆、高保真短期交互),并提供了一个上下文管理工具,代理可以按需调用。
- Trajectory‑level supervision – 轨迹级监督——一个数据生成管道(CAT‑GENERATOR),将真实的上下文管理操作注入完整的交互轨迹,从而实现上下文感知代理的监督训练。
- SWE‑Compressor model – SWE‑Compressor 模型——一种使用 CAT‑GENERATOR 数据训练的专用大语言模型,学习何时以及如何将历史轨迹压缩为简洁、可执行的摘要。
- Empirical validation – 实证验证——在具有挑战性的 SWE‑Bench‑Verified 基准上,SWE‑Compressor 达到 57.6 % 的解题率,在保持固定 token 预算的前提下,超越了 ReAct 风格的代理和静态压缩基线。
- Demonstrated stability – 展示的稳定性——该方法在长时会话中保持一致的推理质量,减轻了语义漂移和上下文爆炸。
方法论
结构化上下文工作区
- Stable Task Semantics:不可变的高级目标描述(例如,“重构身份验证模块”)。
- Condensed Long‑Term Memory:对之前步骤的定期摘要,以紧凑形式存储。
- Short‑Term Interactions:最近的对话和代码片段原样保留,用于细粒度推理。
上下文管理作为可调用工具
- 代理可以在任何时候发出
compress_context()调用。 - 该工具接收当前工作区,决定要摘要的内容,并返回更新后的、更小的表示。
CAT‑GENERATOR 流程
- Offline trajectory collection:从现有 SWE 代理中收集完整交互日志。
- Annotation of compression points:在逻辑里程碑(例如,模块已完全探索后)自动插入 “compress” 动作。
- Supervised training data:每个标注步骤将压缩前的上下文与期望的压缩后摘要配对。
训练 SWE‑Compressor
- 在 CAT‑GENERATOR 数据集上微调基础 LLM(例如 Llama‑2‑13B)。
- 模型学习在三层工作区的条件下预测 何时 压缩以及生成 何种 摘要。
评估协议
- 在 SWE‑Bench‑Verified 任务上部署代理,设置严格的 token 限制(例如 8 k tokens)。
- 将成功率、token 使用量和推理稳定性与 ReAct 代理(依赖响应式工具调用)以及静态压缩启发式方法(如截断、固定间隔摘要)进行比较。
结果与发现
| 指标 | CAT‑enabled SWE‑Compressor | 基于 ReAct 的代理 | 静态压缩 |
|---|---|---|---|
| 解题率 (✓) | 57.6 % | 42.3 % | 38.9 % |
| 平均使用的 Token | 7.2 k (within budget) | 9.1 k (overrun) | 8.5 k |
| 推理一致性(下降率) | < 2 % | 12 % | 9 % |
| 压缩开销(每次调用时间) | 0.12 s | N/A | N/A |
- 更高成功率:通过仅在需要时主动摘要,代理保留了最相关的信息,使相较于 ReAct 基线提升了 15 分。
- Token 效率:工作空间保持在预设预算内,防止了通常迫使代理截断有用历史的“上下文爆炸”。
- 稳定性:长时间跨度下的准确性下降显著降低,证实主动压缩可缓解语义漂移。
Practical Implications
- 可扩展的代码助手:开发者可以在 IDE 插件或 CI 流水线中嵌入支持 CAT 的代理,确信即使在大型代码库中进行数十次来回编辑,助手仍能保持响应。
- 成本效益的 LLM 使用:通过在不牺牲性能的前提下降低 token 数量,团队可以降低商业 LLM API(如 OpenAI、Anthropic)的推理成本。
- 更好的工具集成:由于上下文管理是一级工具,它可以与其他代理功能(如测试生成、错误定位)在统一的决策循环中组合使用。
- 可定制的摘要:组织可以通过在特定领域轨迹上微调 SWE‑Compressor 来调整压缩策略(例如,对安全关键代码采用更激进的压缩)。
- 降低幻觉:保持简洁且高保真度的短期缓冲帮助模型扎根于实际代码,降低生成错误补丁的风险。
限制与未来工作
- Domain Generalization: 当前的训练数据聚焦于开源的 Python/JavaScript 项目;在其他语言或高度专有的代码库上的表现尚未经过测试。
- Compression Granularity: 模型决定 何时 压缩,但未向用户提供细粒度的控制(例如,“保留所有函数签名”)。
- Offline Supervision Dependency: CAT‑GENERATOR 需要大量标注轨迹语料库,这在特定领域可能成本高昂。
未来方向
- 将 CAT 扩展到多代理协作场景,使多个代理共享公共上下文工作区。
- 探索基于强化学习的策略,动态平衡压缩激进程度与任务成功率。
- 集成静态分析工具,以语义图丰富压缩后的长期记忆,进一步提升推理的忠实度。
作者
- Shukai Liu
- Jian Yang
- Bo Jiang
- Yizhi Li
- Jinyang Guo
- Xianglong Liu
- Bryan Dai
论文信息
- arXiv ID: 2512.22087v1
- 类别: cs.CL
- 发表时间: 2025年12月26日
- PDF: Download PDF