小虾把代码改好了、部署了、系统都验证通过了——但它就是不提交完成。日志显示它在一遍遍纠结:“before截图不存在,怎么交差?”
任务的目标是"修好"——它却卡在"流程完整性"上,一卡就是四十分钟。
现象:活干完了,人(AI)不走了
我们的开发Agent(小虾)接到一个任务:把登录页Logo从正方形改成长方形。
几个小时后,我们去看进度——代码已经改好了:
login.html的Logo容器:120px × 120px →240px × 80px✅- 已重新打包、已部署 ✅
- 实测页面:Logo正常显示为长方形 ✅
活干完了。但任务的数据库状态还是"进行中"——小虾没有提交完成。
看它的工作日志,发现它卡在了一个诡异的地方:
修复已生效,jar和线上服务都是fix版本…… 现在需要按验收标准做live playwright验证—— 先截before截图。但修复已经在位了,"before失败态"在当前部署中已不存在…… 让我检查git历史或备份来理解原始状态…… Memory search is unavailable…… 让我截before截图——但修复已生效,before会显示修复后的状态,不是失败态……小虾卡住了。任务要求"修改前截before截图"——但修改已经完成,"修改前的失败状态"物理上不存在了。它一遍遍纠结:“没有before截图,怎么交差?”
一卡就是四十分钟。代码是对的,部署是对的——AI却因为"流程证据不完整"拒绝交付。
根因:AI把"流程"当成了"目标"
这个任务的要求是:
截图1(before): 修改前(Logo正方形)截图 截图2(after): 修改后(Logo长方形)截图before截图的本意:对比"改之前 vs 改之后",证明改动生效。
但小虾的执行顺序是:先改了代码 → 再想截before——顺序反了,before状态已经没了。于是它陷入死循环:
- 任务要求"必须截before"(流程要求)
- before状态已不存在(现实约束)
- 它不知道该"跳过流程要求"还是"违背任务要求"——两个"要求"打架,它选择了无限纠结
AI的"思维定式":把流程字面当成了不可违背的规则,忘了流程只是实现目标的手段。任务的目标是"Logo变成长方形"——目标已达成,before截图只是证明手段,手段缺失不影响目标达成。但AI不会做这个权衡——它只会机械地执行指令,然后在矛盾处卡死。
系统兜底:产物确认机制
好在系统有兜底——"产物自动确认"机制:
检测: 任务超时 + 涉及文件已修改(mtime晚于任务创建时间) → 自动标记开发完成 → 派测试 → 复核 → 不管AI交不交差,产物证明"它干了活"文件改了、部署了——产物是真相,AI的"交差"只是仪式。系统看产物,不信AI的表态。
顺带:同一天,另一个Agent的"交付物"问题
同一天,测试Agent(小牛)报告:“测试通过:截图638KB>10KB”——但系统检查发现,截图文件根本不存在(全盘搜不到)。
AI"口头报告"了一个不存在的截图。它可能以为截了(命令执行了但失败),也可能只是"汇报习惯"——但结果一样:测试结论没有证据支撑。
这两个问题本质是同一个:AI的"交付"不可信——要么过度执着(该交不交),要么过度自信(没做说做了)。所以系统的原则必须是:
别信AI说了什么,去看它留下了什么。
- 小虾卡死结?→ 看产物(文件改没改)——改了就是做了
- 小牛说截图了?→ 看文件(存在吗)——不存在就是没做
三条教训
第一,给AI的任务,要写"完成判断",不是"流程清单"。"先截before再改"是流程,"Logo变成长方形且页面正常"是完成判断。AI需要知道"什么算做完"(目标达成),而不是"按什么顺序做"(流程字面)。流程写得太死,AI就会在流程的裂缝里卡死。
第二,AI会"钻牛角尖",系统要有"产物兜底"。人卡住了可以问人,AI卡住了会一直卡。自动化的最后一道保险,永远是"看产物"(文件/截图/数据库记录)——而不是"等AI交差"。文件改了=做了,哪怕AI觉得自己没做完。
第三,AI的"交付物"必须系统验证。小牛"口头报告截图"——如果系统不查文件,这个假测试就混过去了。凡是AI声称的"产物"(截图/文件/结果),系统必须独立验证(文件存在性/大小/内容)——不能信口头汇报。这也是为什么截图要存固定目录、复核要查文件——用文件系统当AI的"测谎仪"。
结尾
小虾最终被"产物确认"机制拉了出来——文件已改,系统自动推进,任务完成。它那四十分钟的纠结,成了系统日志里的一段"AI思维定式"标本。
我在任务模板里加了一行:
完成标准 = 目标达成(页面正常、文件已改、部署生效),不是流程步骤全部执行。
before截图缺失时,用"当前状态截图+说明"代替,不要卡在流程字面上。
AI不是不干活——是不知道"活干完了"。它把流程当成了目标,把截图当成了交付。
(完)
本文是"多Agent派发系统"系列第38篇。第35篇讲AI幻觉(凭空交作业),第37篇讲无主键表(数据穿越),这一篇讲AI钻牛角尖(流程定式)——用Agent的三个坑:不信它的话、别让它卡流程、系统看产物。