跳转到内容

关口与卡点

agent 只在到达目标、碰到四个关口之一或遇到卡点时停下,其余时候一直推进。关口是计划内的停点,一切顺利也要停;卡点是 agent 自己解决不了的问题。

关口 什么时候 你说什么
01 发布 新增或改变已批准的工作:发布计划;改任务的 Goal、Scope、Acceptance 或 Merge,或研究的 Arms(各组)、Controlled(受控)、Adaptable(可调整);改受保护路径 “发布”,或批准这处改动
02 合并 PR 待合并时,除非任务写了 Merge: agent “合并”,或“合并 #13”
03 预算 下一步会超出预算:token、时间或 GPU 小时 “继续”,也可以给个新预算
04 下结论 研究的子 issue 全部关闭,进入待分析 你的结论,例如“#10 下结论:……”

任务写了 Merge: agent 时,agent 在 PR 待合并后自己用 python .github/scripts/merge.py <PR> 合并;碰了受保护路径、或当前 head 没有审查通过的,merge.py 会拒绝。其他情况,或 merge.py 拒绝时,待合并的 PR 本身就是请求:agent 不打 label,也不贴卡点评论,等你说“合并”。见合并。

对运行任务来说,已用 GPU 小时 = 本 issue 所有 run(失败的也算)的墙钟时间 × GPU 数,逐个相加。启动某个 run 会让总数超出 Budget 时,agent 先汇报已用小时数、剩余部分的估计和还没启动的 run,然后等你。

遇到以下情况,agent 也会停下:

  • 同一个失败连续 3 次;
  • 审查连续 3 次给出 changes;
  • 目标有歧义,而且会影响交付物;
  • 研究的某个 Controlled 设置不改变对比就满足不了。

最后一种的写法是 Blocked: 这个对比按规格做不了,因为 <X>,给三个选项:改实现、放宽规格(这属于关口 01),或放弃这个对比。

同一个卡点只问一次,带上证据、最多 3 个选项和推荐。

  • 你在会话里:当场问。
  • 你不在:给 issue 打上 needs-decision,贴一条四行的卡点评论,然后转去做别的就绪任务。你答复后,它去掉这个 label。
Blocked: <一行>
Evidence: <链接>
Options: <最多 3 个>
Recommend: <选项>

下面这些不算卡点,agent 不来问:

  • 测试或 CI 失败、合并冲突、infra 失败重试;
  • 任务 Scope 内的 bug;
  • 审查给出 changes:修掉它指出的问题,再请新会话审查新的 head;
  • 在规则内调整 Adaptable 设置,并在结果评论里写明。

Scope 外的 bug 另开一个 issue;agent 照常推进,修复不塞进当前 PR。