编码 agent 马具设计的实证研究
来自 arXiv · 期号 2026-09-18
摘要
编码 agent 的「马具」(harness)决定了模型能力能多大程度转化为实际编程表现,但现有研究通常把马具当作一个整体来评估,不清楚每个组件各自贡献了多少。 这篇论文拆开三个组件——规划、动作空间、上下文管理——在 SWE-Bench Verified 和 Terminal-Bench 2.1 上跑了 176 组对照实验。主要发现:上下文管理在窗口预算紧张时价值最大,好处主要来自防止上下文溢出;先做基于规则的裁剪、再做 LLM 摘要,效率最高,而让裁剪内容可恢复的机制模型几乎不用;规划对弱模型是准确度支架,对强模型则变成省钱工具;预定义工具对 bash 能力弱的模型有帮助,但 bash 熟练的模型用纯 bash 接口就能跑出更低成本。 原文给出了完整的实验设置和轨迹级分析,适合想自己调马具组件的人参考。
深读
导读 编码 agent 的「马具」(harness)决定了模型能力能多大程度转化为实际编程表现,但现有研究通常把马具当作一个整体来评估。这篇论文拆开规划、动作空间、上下文管理三个组件,在 176 组对照实验中给出了每个组件的独立贡献,适合想自己调马具组件的人参考。 关键信息 - 实验在 SWE-Bench Verified 和 Terminal-Bench 2.1 上完成,覆盖 4 个模型、176 组对照设置。 - 上下文管理在窗口预算紧张时价值最大,好处主要来自防止上下文溢出(context-overflow)失败。 - 先做基于规则的裁剪(rule-based elision)、再做 LLM 摘要,是效率最高的上下文管理策略;让裁剪内容可恢复的机制模型几乎不用,且不带来精度提升。 - 规划对弱模型是准确度支架,对强模型则变成省钱工具,对准确度影响很小。 - 预定义工具对 bash 能力弱的模型有帮助;bash 熟练的模型用纯 bash 接口就能跑出更低成本,尤其在命令行密集型任务上。 逐节讲解 研究动机与实验设计 现有编码 agent 研究通常把马具当作一个整体来评估,不清楚每个组件各自贡献了多少。论文设计了一个轻量级编码马具,固定执行循环,只变动三个组件:规划、动作空间、上下文管理。实验在 SWE-Bench Verified 和 Terminal-Bench 2.1 上覆盖 4 个模型,共 176 组对照设置,包括 5 种上下文管理策略、4 种上下文窗口预算,以及针对规划和动作空间的消融实验。 上下文管理:窗口预算越紧,价值越大 上下文管理在窗口预算紧张时价值最大,其收益主要来自防止上下文溢出导致的失败。在多种策略中,先做基于规则的裁剪、再做 LLM 摘要,整体效率最高。而让裁剪内容可恢复的机制增加了额外结构,但模型几乎不使用,也没有带来准确度提升。 规划:从弱模型的支架到强模型的省钱工具 规划对弱模型起到准确度支架的作用,帮助它们完成更长的任务链条;对强模型则变成成本节省工具,准确度变化很小。轨迹级分析显示,规划改变的是轨迹在何处停止,而非轨迹本身的行为模式。 动作空间:bash 能力决定最优接口 预定义工具对 bash 能力弱的模型有帮助,能降低它们操作命令行的门槛。但 bash 熟练的模型用纯 bash 接口就能有效运行,且成本显著更低,尤其在命令行密集型任务上。动作空间改变的是代码编写的粒度,预定义工具让每一步操作更粗、更少,纯 bash 接口则让每一步更细、更多。 值得注意 论文只给出了摘要,没有提供完整的实验设置细节(如具体使用了哪 4 个模型、5 种上下文管理策略的具体实现、成本的具体数值等)。结论建立在两个特定 benchmark 上,在更广泛的软件工程场景中是否成立需要进一步验证。