最近用ChatGPT、Codex做真实项目时,我越来越明显地感觉到一个变化:

Agent越来越会做事以后,真正难的问题开始从“怎么做”,变成“做到什么时候算结束”。

以前我们让AI改代码,任务通常很简单。

比如:

修一个Bug。

补一个接口。

改一个函数。

生成一段测试。

完成以后,人一眼就能判断:

做完了。

但现在Agent越来越会自己规划。

它可能会:

先读项目。

拆任务。

改代码。

跑测试。

发现新的问题。

继续补测试。

继续重构。

继续优化。

这时候一个新的问题就出现了:

Agent到底什么时候应该停?

如果任务没有明确的完成条件,它很容易一直做“看起来有道理的事”。

于是Agent能力越强:

Definition of Done——完成条件

反而会变得越来越重要。


一、一个很真实的场景:明明Bug已经修好了,Agent还在继续改

假设你给Codex一个任务:

修复订单接口偶发报错。

Agent开始工作以后:

先定位Bug。

修改逻辑。

跑测试。

测试通过。

按理说,任务应该结束。

但它继续分析以后发现:

测试覆盖率不高。

于是补测试。

补测试时又发现:

代码有重复。

于是开始重构。

重构过程中又发现:

旧接口命名不统一。

于是继续整理。

最后你回来看:

Bug确实修好了。

但它已经顺手改了20多个文件。

问题不是这些修改一定错。

而是:

任务已经逐渐偏离最初目标。

Agent并不是不会做。

恰恰相反。

是因为它越来越会做,所以总能找到下一件“值得继续做”的事情。


二、为什么过去这个问题没有那么突出?

因为以前AI更多是:

一次生成。

一次修改。

一次回答。

人始终掌握任务节奏。

但Agent模式不一样。

它开始具备:

规划。

执行。

验证。

再次规划。

这种循环能力。

所以它不再只是:

执行一个明确指令。

而是在不断判断:

下一步还需要做什么。

这时候如果你只给一个模糊目标:

把这个问题处理好。

Agent很容易不断扩大任务。

因为“处理好”到底到什么程度,并没有标准答案。


三、Agent越会规划,停止边界反而越重要

传统自动化最大的困难通常是:

不会变通。

Agent正好相反。

它最大的优势之一就是:

能够根据现场不断调整计划。

但这也带来一个新的风险:

任务没有天然终点。

比如:

修Bug以后可以补测试。

补完测试可以重构。

重构以后可以清理旧代码。

清理以后可以优化性能。

再往后还能补文档。

每一步都合理。

但如果没有明确停止条件:

任务范围就会一直向外扩张。

所以Agent时代,一个很重要的设计不是:

告诉它还能做什么。

而是:

告诉它做到什么程度就应该停。


四、真正的完成条件,不等于“测试通过”

很多任务里,我们习惯把:

Tests Passed

当成完成标准。

但真实工程里,这往往不够。

比如一个Bug修复任务。

真正的完成条件可能包括:

原问题能够复现。

修改后问题消失。

相关测试通过。

没有引入新的失败。

修改范围在预期内。

关键行为没有变化。

这才是一个完整的Done。

如果只有:

“测试绿了。”

Agent可能会为了让测试通过:

改测试。

扩大改动。

绕过原问题。

最终结果看起来完成了,但任务其实已经偏了。

所以未来Agent真正需要的不是:

一个模糊目标。

而是一组:

可验证的完成条件。


五、为什么“完成条件”会变成新的开发边界?

因为过去边界主要是代码边界。

比如:

只能改这个目录。

不能动数据库。

不能改公共接口。

但以后还有一种更重要的边界:

Stop Boundary——停止边界

它回答的是:

什么时候不能继续扩大任务?

比如:

当前Bug修复成功。

相关测试通过。

不需要顺手重构其他模块。

不需要处理无关Warning。

不需要继续优化性能。

这其实是在告诉Agent:

什么属于当前任务,什么虽然有价值,但应该留给下一个任务。


六、完成条件越模糊,Agent越容易制造“任务膨胀”

假设你给Agent一句:

优化一下这个模块。

它能做的事情非常多。

改结构。

提性能。

补测试。

改命名。

删旧代码。

补文档。

甚至重构调用链。

所以模糊任务本身就会制造:

Scope Expansion。

而Agent越强:

它越容易发现更多优化空间。

因此未来开发者可能需要养成一个新习惯:

不是只写:

“做什么。”

还要写:

“做到哪里停止。”


七、真正成熟的Agent任务,至少要有四件事

一个比较清晰的任务,可以包含:

1. 目标

到底要解决什么问题。

例如:

修复订单重复创建。


2. 成功标准

什么现象说明已经修好。

例如:

相同请求不会生成重复订单。


3. 允许范围

哪些地方可以改。

例如:

只修改订单服务和相关测试。


4. 停止条件

什么情况下不要继续扩张。

例如:

无关代码重构、命名优化、文档整理不属于当前任务。

这四个东西加起来:

Agent才真正知道:

什么时候任务完成了。


八、完成条件不清楚,还会增加人工Review成本

如果Agent只改3个相关文件:

人很容易Review。

但如果任务过程中一路扩张:

最后改了20多个文件。

Review成本就会迅速上升。

更麻烦的是:

你很难判断哪些修改是:

必要的。

顺手做的。

无关的。

所以完成条件不只是限制Agent。

它还直接影响:

人类接管和Review的成本。

任务越清晰:

最终Diff越容易理解。


九、可以自己测一个指标:完成条件清晰率

这篇我建议只看一个指标:

Definition of Done Clarity Rate——完成条件清晰率

统计最近20个Agent任务。

看有多少在开始前,就明确写清:

目标。

成功标准。

允许范围。

停止条件。

比如20个任务里只有8个明确写清楚。

那么:

完成条件清晰率 = 40%。

这个指标能很直接反映:

Agent到底是在按边界执行,还是一边做一边猜什么时候结束。


十、清晰率低于40%,说明Agent大量任务仍然在“猜终点”

这个阶段最常见的问题是:

任务越做越大。

修改越来越多。

Review越来越困难。

最后虽然完成了很多事,但最初目标反而不够突出。

这时候真正应该优化的不是模型能力。

而是:

任务定义。


十一、40%—70%,重点优化高频任务模板

这个阶段已经有一定任务边界。

最适合做的是:

把高频任务标准化。

比如Bug修复模板:

问题。

复现方式。

成功标准。

允许改动范围。

停止条件。

以后Agent拿到任务以后:

起点就会稳定很多。


十二、长期超过70%,Agent自治能力才真正容易放大

如果大部分Agent任务在开始前已经清楚定义:

做什么。

怎么验证。

能改哪里。

什么时候停止。

那么Agent就更容易:

自己规划。

自己执行。

自己验证。

最后主动结束。

这时候自治能力才真正从:

“会做很多事”

变成:

“能稳定完成一个完整任务”。


十三、怎么提高完成条件清晰率?

其实不用写很复杂。

一个Agent任务开始前,可以固定补四行:

**目标:**解决什么问题。

**成功标准:**什么结果算完成。

**允许范围:**可以修改哪些区域。

**停止条件:**哪些事情不要继续做。

比如:

目标:修复订单重复创建。

成功标准:相同请求只生成一条订单记录。

允许范围:订单服务、数据库约束、相关测试。

停止条件:不重构无关模块,不调整其他接口。

这几行往往比再写一大段Prompt更有价值。


十四、为什么这会成为Agent时代的新基本功?

因为Agent越强:

它能发现的问题越多。

能做的事情也越多。

这时候真正稀缺的能力反而变成:

把一个开放问题定义成一个可以结束的任务。

过去开发者更多是在告诉AI:

怎么做。

以后可能更重要的是:

告诉Agent:

什么时候已经做够了。


十五、Plus和Pro怎么判断?

如果你的完成条件清晰率还很低:

Agent任务经常出现:

范围膨胀。

顺手重构。

无关修改。

Review困难。

那么当前真正限制效率的不是AI容量。

而是:

任务本身没有清晰边界。

这种阶段Plus通常已经足够。

更值得先优化:

Definition of Done。

任务模板。

允许范围。

停止条件。

否则增加更多AI容量:

只会让Agent更快地做更多“本来不需要做”的事情。


如果你的完成条件清晰率已经很高:

大部分任务都能够:

明确开始。

稳定执行。

自动验证。

按时停止。

同时又长期存在:

大量成熟Agent任务排队。

AI执行容量真正成为瓶颈。

这时候Pro才更容易转化成真实效率。

因为增加的容量是在:

清晰、有边界、能结束的任务体系里工作。


最后

ChatGPT、Codex越来越会自己规划以后,我们很容易把注意力放在:

Agent会不会拆任务。

会不会调用工具。

会不会自己修问题。

但真正决定它能不能长期稳定工作的,可能还有一个更基础的问题:

它知不知道什么时候应该停。

如果没有清晰的完成条件:

Agent越强。

越容易找到更多“还可以继续做”的事情。

最终任务会不断膨胀。

而真正成熟的Agent Workflow应该做到:

开始之前就定义清楚:

目标是什么。

成功长什么样。

允许做到哪里。

什么时候必须结束。

当这些边界足够清楚以后:

Agent才不只是会持续执行。

而是开始真正具备:

独立完成任务的能力。

持续分享 Codex、大模型开发与 AI 编程实战内容。
长期深度使用各类代码大模型,也整理了
稳定的Plus/Pro会员订阅渠道,有需要可自取。

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐