0031 少等人:每种中断都有自动的下一步
- 状态:已采纳(1.12.0-beta.1)
背景
目标是需求方只在三处介入:确认需求、确认方案(只有界面改动时)、验收合并。核对代码、默认配置和 /req 手册后,现在要人的地方共 16 处,其中只有这 3 处是必要的决定;其余多数来自两类:
- 中断等人继续:步骤超时、agent 报错、结果文件无效直接中断;限流重试用完只按固定间隔自动继续两次;后台进程意外退出的定时检查默认关闭。
- 可以有默认值的选择题:是否新建工作区、档位、执行方式、现在开始还是预约;装好后要运行配置向导选模型;方案审核提出的问题不加筛选地交给需求方。
另外,过去没有记录每次停下等人的原因,无法用数据判断先改哪里。
决定
- 先记录:状态文件和使用记录加上
stopKind(停下等人的原因代码)和recoveries(自己处理掉的问题),req stats新增"人工介入"一节。用两周的真实数据复核后续的优先级。 - 自愈(
selfHeal,默认开):- 超时:agent 还在做就再等同样长的时间,不打断它;仍未完成才中断(1.11 已保证继续时不会另起一个 agent)。
- agent 报错、结果文件无效:新开一个 agent 重做一次。只重做一次,避免一个确实做不了的步骤反复消耗额度。
- 备用模型(
agents.fallback,可选):报错重做、限流重试用完时换它做一次。只用一次、只在这一步,下一步仍用主模型。 - 按额度恢复时间预约:限流中断时,读 Paseo 报告的额度恢复时间,预约在恢复后 5 分钟自动继续;读不到时仍按
autoResumeMinutes。 - 后台进程退出后续跑:个人机器的定时检查默认打开(60 分钟);接单器每次检查时发现"运行中但进程已不在"的流水线,请它的对话检查并继续,每个进程只提醒一次。
- 方案审核的问题先自答(
answerQuestionsFirst,默认开):审核结论为"需要需求方决定"时,先让 builder 在方案修订中从代码、文档和需求说明里找答案;只把真正的业务取舍连同推荐答案交给需求方,都能回答时不停下。 - 装好就能用:安装时
req configure --auto不提问,按推荐选好已登录的 agent(两个不同厂商分别做 builder、reviewer,再选一个做备用,都用免确认模式)。插件新增"模型"设置页,列出 Paseo 中已登录的 agent,选择后写回本机配置,与req configure用同一套逻辑。 - 默认值代替选择题:
/req不再问是否新建工作区、档位、执行方式、现在开始还是预约,按推荐值直接走,在确认摘要的最后一行写明,想改再说;确认需求说明就是同意开始。 - 卡片回复更宽松:回复区写"好的""没问题""按你说的来"也算同意;只写了这样一句、没有别的内容时,按正在等待的确认(需求说明或方案)处理。卡片已经写清需求时,需求会话不为提问而提问。
影响
- 新配置:
selfHeal、answerQuestionsFirst、agents.fallback;watchdogMinutes默认从 0 改为 60。想保持以前行为的,把它们设为false/0。 - 方案修订的结果文件可以带
business_questions。 - 新命令:
req configure --auto、req api models、req api set-agents。 - 自动处理会多用一些额度(多等一轮、重做一次);每次都写进进度日志和使用记录,可以查到。
补充(1.12.0-beta.3):接单机器的运维和插件中的处理
- 接单器自检:每次检查前确认 Paseo、agent 登录、额度和需求管理系统的命令。不正常就整次跳过(不接新单、不转达),因为这时接下来的需求也跑不起来;告警走外部通知的新事件
alert,按"问题的内容"去重,只在出现、变化和恢复时各发一次,避免刷屏。 - 草稿合并请求:和对接配置一样,命令写在配置里、参数用占位符,req-kit 不内置 GitLab 接口、不保存令牌;只建草稿、每个仓库只建一次,合并仍由人做。
- 自动确认:只对快速档、没有待答问题的卡片,默认关闭;需求方写了任何内容就不自动确认,每次摘要更新重新计时。确认仍然发生在需求会话里,req-kit 只是在到时转达"按自动确认处理"。
- 按人通知:事件带上
people(发给需求方还是群、需求方的账号),账号来自本机或团队配置的people,内部 IM 的适配器拿到接口后只需要读它。 - 插件"等你处理"和配置页:回答和方案意见用
req reply转给需求的对话,由对话按原来的做法更新需求说明并继续,插件不直接改需求文件或状态;配置页只读,展示req api config的结果,密钥和个人账号不显示。
本页由仓库中的 docs/adr/0031-fewer-interventions.md 生成。在 GitHub 上编辑