任务会失败。大多数故障属于配置或规格说明问题,并非什么神秘原因,且通常可归为少数几类。
首先,查看任务停止的位置。
运行日志会显示哪个阶段出错。这一信息比任何其他内容都能更精准地定位故障原因:
| 出错的阶段为 | 几乎总是意味着 |
|---|---|
| 在编写任何代码之前 | 针对干净工作区的构建或安装命令有误。 |
| 在进行修改的过程中 | 属于真正的复杂工作,或是缺少依赖项。 |
| 运行测试时 | 测试命令有误,或是测试套件需要依赖特定服务。 |
| 验证环节 | 属于阻塞性关卡;请查看相关发现结果。 |
| 审核 | 无法自动修复的发现结果 |
在编写修改内容之前的故障属于配置问题。请参阅构建与测试配置.
任务并未卡住,只是处于排队状态。
一个处于PENDING状态的任务并未卡住,它正在等待空闲的代理插槽。请检查容量这是最常见的误报情况,需优先排查此点。
它正在向您征求决策。
NEEDS_HUMAN_REVIEW意味着该任务遇到了只有您才能做出的决策。这并非故障。回答相关问题后,任务便会从暂停处继续运行。
请准确作答。模糊的回答会导致再次猜测,进而再次暂停。
运行时间远超预期
通常有两个原因:
**测试套件运行缓慢或发生挂起。**Coroid负责运行您的测试套件;若其在干净工作区中挂起,任务便会等待。可通过在全新克隆的代码库上运行该测试套件来复现此问题。
**规格说明过于宽泛,导致代理不断发现更多待完成的工作。**明显的迹象是文件列表不断增长。此时应取消任务,通过明确标注排除范围来缩小范围,随后重新运行。请参阅规格说明.
选择处理方式
按成本从低到高排列:
- 回答——适用于
NEEDS_HUMAN_REVIEW。成本最低,且能保留所有上下文信息。 - 返工——工作成果符合要求但不够完整。任务会退回给开发代理,同时保留您的发现结果及其上下文信息。
- 暂停——您需要先确认某些事项。此举会释放插槽,且任务可恢复运行。
- 重试——仅适用于真正的瞬时性故障。若因配置或范围问题导致故障,重试只会再次重现相同问题。
- 取消并重新指定规格说明——说明采用的方法或范围有误。成本最高,但往往是最正确的选择。
跨多个任务重复的故障
无关任务在同一阶段出现相同故障,属于项目配置问题,而非任务本身的问题。请勿反复运行任务,应先修复配置。