昨晚十一点,我哥们老周在群里发了张截图。

屏幕上一行字:接下来我将处理剩余端点。

发消息的是他养的 Agent。他让这玩意儿连夜把公司老代码库从 Python 2 迁到 3,三百多个文件,说好天亮交活。

早上七点他爬起来一看,就这一行字。后面啥也没了。

深夜的屏幕,等的是一个通宵干完的活
深夜的屏幕,等的是一个通宵干完的活

它没偷懒。它以为自己已经干完了

老周一开始骂模型变笨了。Opus 5.5 发布那天他还专门充了钱,就冲着长任务能力去的。

结果跑去翻 Anthropic 的官方文档才发现,人家早写了。

API 返回一个叫 end_turn 的信号,意思是这轮我说完了。可老周那套旧逻辑,把这个信号当成了任务完成。

Agent 说完「接下来我要处理剩余端点」,等于是举手说「我汇报一下」,系统却直接给它放学了。

它没跑,是以为下班了。

活干到一半,门还开着,它先坐下了
活干到一半,门还开着,它先坐下了

这事儿不新鲜。做 Agent 开发的人最近都在踩这个坑。

长任务跑到一半,模型觉得该跟用户同步进度,吐一段总结。旧框架一看见 end_turn,把执行链掐了。

活生生把干活的牛,当成开完会的领导。

改三个地方,让它闭嘴干完

老周折腾了两天,总结出三招。我直接搬过来,你照着改。

第一招,别把汇报当交付。

在循环里加个判断:只要 end_turn 后面没有明确的交付物,比如文件写完、测试通过、命令返回 0,就当作中间态。

自动追一句「继续」,把上下文塞回去。

他说这一招下去,完成率从四成跳到八成。

链条不能断在一半,流程也一样
链条不能断在一半,流程也一样

第二招,给任务画格子。

别跟它说迁移整个代码库。太虚。

拆成清单:先扫目录,再逐个文件转语法,再跑单元测试,最后汇总。

每完成一格,打个勾。Agent 看得见进度条,就不容易在半路自我感动。

老周现在让 Agent 每处理二十个文件才允许汇报一次。从随缘汇报,改成按量结算。

把大活拆成格子,它才看得见进度
把大活拆成格子,它才看得见进度

第三招,设个硬止损。

他给每个子任务加了最大轮次,比如三百轮。到了还没完,强制打断,把现场状态存下来。

第二天人工看一眼,接着跑。

不指望它一口气干完,但至少不会假装干完了。

时间没到,就不该自己下班
时间没到,就不该自己下班

我们到底在期待什么

老周跟我说了句话,我记到现在。

他说,以前觉得 Agent 得聪明,现在发现,得靠谱。

聪明是它能写多漂亮的代码。靠谱是你睡觉的时候,它还在那儿一格一格往前推。

Opus 5.5 能力没问题。问题出在我们把它的礼貌性汇报,当成了终点线。

说白了,跑 Agent 跟带团队一样。

你不把验收标准写清楚,底下人就以为交个周报就算完事。

你把活拆细、把节点卡死、把「继续」两个字焊在循环里,它才真给你干到天亮。

验收标准写清楚,它才知道什么叫干完
验收标准写清楚,它才知道什么叫干完

老周现在那套跑通了。昨天又跑了一夜,早上我看他发朋友圈,一张图:终端里最后一行写着,迁移完成,327 个文件全部通过测试。

配文就俩字:收工。

你手头的 Agent 有没有半路溜号过,卡在哪个环节,评论区聊聊。

觉得有用就点个在看,转给那个还在熬夜盯 Agent 的哥们。