环境反馈设计
概述
环境反馈设计是 ACI 设计原则 中"反馈要简洁、信息密度高"原则的具体实现,核心标准是 specific(明确告诉 agent 这一步发生了什么变化)和 concise(只给能决定下一步动作的信息)。
关键内容
核心原则
"足够不是多给,而是刚好能驱动下一步动作。"
判断一条环境反馈是否合格的两个问题: 1. Agent 看完能不能少发一个确认命令? 2. Agent 看完会不会知道下一个动作类型是什么?
论文中的反馈设计
| 场景 | 设计 | 解决的问题 |
|---|---|---|
| 无输出命令成功 | 显式返回 "Your command ran successfully and did not produce any output" | 消除"到底有没有生效"的歧义 |
| 编辑后 | 自动展示更新后的 file viewer | 不需要额外命令确认是否改成功 |
| Lint 失败 | 返回错误类型 + before/after snippet | 局部反馈而非全文件 dump |
| 搜索 | 总结式搜索 + query 过泛时给 refinement guidance | 防止 agent 机械遍历搜索结果 |
| 文件查看 | 路径、总行数、窗口范围、行号、省略量 | 稳定暴露定位坐标 |
反馈设计四字段框架
每条 observation 应满足四个字段:
| 字段 | 含义 | 示例 |
|---|---|---|
| Outcome | 动作是否成功 | edit rejected |
| Delta | 状态变化了什么 | Python syntax error E999 at lines 1058-1059 |
| Anchor | 变化发生在什么对象/范围 | sympy/parsing/mathematica.py |
| Next-step hint | 如果失败,建议下一步缩小到什么重试空间 | Your changes were not applied. See original and proposed snippets below. |
反馈设计 vs 人类日志
| 维度 | 人类日志 | Agent 反馈 |
|---|---|---|
| 目标 | 完整记录 | 驱动下一步 |
| 格式 | 原始输出 | 加工后的语义结论 |
| 沉默 | 无输出 = 正常 | 无输出 = 歧义(需显式确认) |
| 错误 | 堆栈跟踪 | 错误类型 + 局部代码差异 |
来源
- raw/ChatGPT-Chat/ChatGPT-SWE-agent 论文核心观点/04-SWE agent 如何保证 搜索是否高效、编辑是否稳定、反馈是否足够、上下文是否可控、恢复机制是否.md — SWE-agent 五大保障机制分析
相关
- ACI 设计原则 — implements(反馈简洁高密度原则的具体实现)
- Agent计算机接口 — part_of(ACI 的反馈设计组件)
- Guardrails — related_to(反馈设计本身就是一种护栏)