ChatGPT、Codex趋势:Agent越来越会自己规划以后,为什么“完成条件”反而会变成新的开发边界?
最近用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会员订阅渠道,有需要可自取。
更多推荐




所有评论(0)