恢复机制
概述
恢复机制是 Agent 系统中使 agent 能够从错误中恢复而不污染后续轨迹的策略集合。SWE-agent 的恢复机制是"早恢复、局部恢复、自动恢复",在每个高风险动作点建立局部回退与重试机制,把长轨迹错误限制在局部。
关键内容
三层恢复机制
| 层级 | 机制 | 作用 |
|---|---|---|
| 第一层:编辑失败不提交 | 坏修改直接丢弃 | 防止错误状态落盘 |
| 第二层:失败原因回显 | 返回 lint 错误类别和局部代码差异 | 让 agent 知道哪里错了 |
| 第三层:格式错误重试 + 历史去噪 | 固定错误模板要求重试,恢复后移除 malformed 历史 | 防止错误Context Window Pollution</td>
</tr>
</tbody>
</table>
<h3 id="_5">实验数据</h3>
<p>在已解决轨迹中:
- 出现过至少 1 次 failed edit 的情况并不少见
- 在 <strong>135 次</strong>出现 1+ failed edit 的情形里,agent 成功恢复了 <strong>104 次</strong>(恢复率 ~77%)</p>
<p>这说明恢复不是补充逻辑,而是<strong>主流程的一部分</strong>。</p>
<h3 id="_6">恢复机制的设计哲学</h3>
<blockquote>
<p>"在每个高风险动作点建立局部回退与重试机制,把长轨迹错误限制在局部。"</p>
</blockquote>
<p>与传统 rollback system 的区别:
- 不是全局回滚到某个检查点
- 而是在每个动作点就地处理
- 错误被限制在局部,不扩散到整个轨迹</p>
<h3 id="guardrails">隐式 Guardrails 作为恢复机制</h3>
<table>
<thead>
<tr>
<th>机制</th>
<th>恢复作用</th>
</tr>
</thead>
<tbody>
<tr>
<td>小动作空间</td>
<td>通过 interface restriction 降低错误率</td>
</tr>
<tr>
<td>100-line viewer</td>
<td>限制模型看到的窗口,防止上下文失控</td>
</tr>
<tr>
<td>Summarized search</td>
<td>限制 agent 不要在 next/prev 结果里机械穷举</td>
</tr>
</tbody>
</table>
<h3 id="_7">终止条件</h3>
<ul>
<li>连续 3 次 malformed response → 提前终止</li>
<li>这是一种"快速失败"策略,避免在不可恢复的轨迹上浪费资源</li>
</ul>
<h2 id="_8">来源</h2>
<ul>
<li>[[raw/ChatGPT-Chat/ChatGPT-SWE-agent 论文核心观点/04-SWE agent 如何保证 搜索是否高效、编辑是否稳定、反馈是否足够、上下文是否可控、恢复机制是否.md — SWE-agent 五大保障机制分析
相关
|