ChatGPT、Codex趋势:为什么AI能力越来越强,开发者反而更需要写清楚“什么算完成”?
很多开发者刚开始使用ChatGPT、Codex时,会把注意力放在一个问题上:
怎么把任务说清楚。
比如:
要补哪些背景。
要不要写得更详细。
要不要加限制条件。
这些都重要。
但当AI越来越能独立执行以后,一个新的问题开始变得更关键:
不是“怎么让AI开始做”,而是“怎么让AI知道什么时候算真正做完”。
这听起来像一句很简单的话。
但在真实工程里,它其实决定了很多问题:
为什么AI明明测试通过了,你还是不敢合并?
为什么Agent总喜欢继续优化?
为什么一个任务已经做了很久,最后还是觉得“不够完整”?
很多时候,真正缺少的不是Prompt。
而是:
Done Criteria,也就是明确的完成标准。
一、真实开发场景:AI说“完成了”,你却不知道能不能结束
假设你让Codex处理一个问题:
“修复用户登录后偶发失效的问题。”
AI开始执行。
它读取相关模块。
分析Token。
检查Session。
修改代码。
补测试。
最后告诉你:
任务完成。
你打开结果,测试确实通过了。
但你还是会继续问:
接口行为变了吗?
兼容逻辑有没有影响?
有没有改到不该改的文件?
异常场景验证了吗?
这时候你会发现一个很尴尬的问题:
AI有自己的“完成”。
你心里也有一个“完成”。
但这两个“完成”并不一定一样。
这就是很多长任务不稳定的根源之一。
不是AI不愿意完成。
而是:
“完成”这个词本身没有被工程化定义。
二、为什么任务越复杂,“做完”越容易变得模糊?
简单任务里,完成标准通常天然清晰。
比如:
把一个变量名改掉。
增加一个空值判断。
补一个单元测试。
结果一眼就能判断。
但复杂任务不一样。
比如:
“优化认证系统稳定性。”
这个任务什么时候算结束?
是Bug消失就算?
测试全绿就算?
性能提升就算?
还是还要:
兼容旧客户端。
保持Public API不变。
不改变权限逻辑。
补回归测试。
没有新增高风险依赖。
如果这些没有提前定义,AI就只能自己推断:
“我认为这样差不多完成了。”
问题是:
Agent能力越强,它越有能力继续做。
于是一个模糊任务很容易变成一个没有明确终点的开放任务。
三、背后的机制:Agent需要的不只是Goal,还需要Terminal State
可以把一个Agent任务想成一个状态系统。
它不断经历:
当前状态 → 下一步行动 → 新状态。
但这个系统要真正结束,还需要一个东西:
Terminal State,终止状态。
也就是:
系统满足什么条件以后,就不应该再继续执行。
如果没有这个终止状态,Agent会不断问:
还有什么可以改?
还有什么可以优化?
还有什么风险可以处理?
于是你会看到:
任务本来已经解决。
AI却继续:
重构。
补更多测试。
调整结构。
优化无关逻辑。
从AI视角看,这些动作并不荒唐。
因为它没有被明确告诉:
“到这里就算完成,后面的事情不属于当前任务。”
四、为什么Done Criteria比“详细Prompt”更重要?
详细Prompt解决的是:
开始时的信息质量。
Done Criteria解决的是:
结束时的判断标准。
这两者作用完全不同。
比如同样是:
“修复登录问题。”
如果你只把背景写得非常详细,但没有定义完成条件,AI依然可能在后面继续扩大范围。
反过来,如果你明确:
完成标准是:
登录问题不再复现。
现有接口保持不变。
原有测试通过。
新增一个回归测试。
不进行无关重构。
那AI在执行过程中就有一个稳定的判断框架。
所以复杂任务里,真正稳定的控制结构不应该只有:
Goal。
还应该包括:
Goal + Constraint + Non-goal + Done Criteria。
这四个东西一起,才构成一个完整任务边界。
五、为什么AI越强,Done Criteria反而越重要?
这是一个很反直觉的地方。
弱AI的时候,任务范围有限。
它能做的事情少。
即使目标模糊,也不容易跑太远。
但AI越强以后:
它能读更多代码。
能做更多判断。
能自主调用更多工具。
能持续执行更久。
这意味着它的行动空间越来越大。
行动空间越大,终止条件越重要。
这就像自动驾驶。
能力越强,越需要清晰知道:
什么时候继续。
什么时候减速。
什么时候停车。
Agent也是一样。
真正成熟的Agent不是:
“永远继续做有价值的事。”
而是:
在满足当前任务目标以后,知道这次工作已经结束。
六、为什么未来“完成标准”会越来越成为AI工作流的基础设施?
因为未来AI任务会越来越长。
不再只是:
改一行代码。
而是:
完成一个Feature。
处理一个复杂Bug。
迁移一个模块。
持续运行几十分钟甚至更久。
任务链越长,中间会不断出现新的信息。
这些新信息可能诱导AI改变局部目标。
比如:
原始目标是修复Bug。
中途发现测试结构不好。
又发现模块重复。
再发现日志可以优化。
如果没有Done Criteria,AI很容易把“发现新问题”理解成“应该继续做”。
所以未来稳定的Agent Workflow,很可能会把完成条件变成显式结构,而不是靠人最后凭感觉判断。
七、可以用“完成标准清晰度”判断自己的任务是不是容易失控
这里可以建立一个自测指标:
完成标准清晰度
不需要精确打分,可以问自己几个问题。
第一,这个任务结束时,我能不能明确说出“必须满足的三个结果”?
如果说不出来,标准通常太模糊。
第二,有没有明确写出“哪些事情这次不做”?
如果没有,Agent很容易顺手扩Scope。
第三,结果是不是可以被验证?
比如:
“优化一下代码。”
很难验证。
但:
“接口P95降低到某范围,同时保持现有行为不变。”
就清楚很多。
第四,AI完成以后,我是不是还要临时想:
“还应该检查什么?”
如果经常这样,说明完成标准在任务开始前没有定义完整。
八、Done Criteria不等于把任务写成几十条规则
另一个常见误区是:
为了避免AI跑偏,就把任务写成非常长的清单。
这也不一定好。
完成标准的目标不是:
把所有细节都提前写死。
而是:
把真正决定“是否可以结束”的条件写清楚。
比如一个Bug任务,可能只需要:
问题不再复现。
相关回归测试通过。
公共接口不变。
不做无关重构。
这已经足够。
关键是:
少而明确。
可验证。
不冲突。
九、怎么设计更好的完成标准?
可以用四个层次。
第一层:
结果条件。
要解决什么?
第二层:
约束条件。
哪些东西不能变?
第三层:
验证条件。
用什么证据证明完成?
第四层:
非目标。
哪些发现即使有价值,也不属于本次任务?
比如:
目标:修复Session丢失。
约束:不改变Public API。
验证:原测试通过 + 新增回归测试。
非目标:不重构认证模块。
这样Agent就能明确知道:
“什么叫完成。”
也知道:
“什么叫不该继续。”
十、为什么Done Criteria还能降低Review成本?
因为Review最耗时间的地方,很多时候不是看代码。
而是:
不知道应该按照什么标准判断。
如果任务开始前没有完成标准,Review时你就会临时考虑:
这个改动是否合理?
范围是不是太大?
有没有漏掉什么?
但如果Done Criteria已经清楚,Review会变成一个更直接的问题:
这几个标准满足了吗?
这会明显降低验收成本。
所以Done Criteria不只是控制Agent。
它还在帮助人类更快Review。
十一、完成标准清晰度高:Plus通常已经能完成很多真实任务
如果你的日常AI工作主要是:
普通Bug。
明确Feature。
中小型项目。
而且你已经习惯在任务开始前定义:
Goal。
Constraint。
Done Criteria。
大多数任务都能稳定完成。
那么你的核心需求还是:
提高执行效率。
这种情况下,Plus通常已经能覆盖很多Codex使用场景。
十二、完成标准很模糊,也不要先想到Pro
如果你现在大量任务都出现:
AI不知道什么时候结束。
反复顺手优化。
任务完成后还要大量返工。
第一反应不应该是:
“需要更高能力。”
因为更强的Agent也不会自动替你定义“什么叫完成”。
甚至能力越强,可能越容易在开放任务里继续探索。
这时候应该先优化:
任务目标。
约束。
非目标。
Done Criteria。
如果这些做完以后,稳定性明显提升,说明真正的问题在任务设计。
十三、什么时候Pro才真正匹配?
更接近Pro的状态是:
你的任务设计已经成熟。
复杂任务有明确Done Criteria。
Agent知道什么时候停止。
Review也能快速按照验收标准完成。
但真实工作中仍然持续存在:
大量复杂Codex任务。
高Context项目。
长时间Agent执行。
多个高价值任务并行。
这时候,AI侧的容量和持续执行能力才更可能真正限制工作流。
所以判断逻辑不是:
“任务复杂,所以我要Pro。”
而是:
“我已经把复杂任务设计得足够清楚,现在真实工作量才开始需要更高AI吞吐。”
最后:AI时代真正难的,不是告诉AI“开始做什么”,而是告诉它“做到哪里可以停”
Prompt解决的是启动问题。
Done Criteria解决的是结束问题。
而复杂Agent真正难的地方,往往就在结束。
因为AI越强,越能不断发现:
还有哪里能优化。
还有什么风险能处理。
还有什么代码能重构。
但软件工程真正需要的不是无限改进。
而是:
在正确的时间,以足够好的结果结束当前任务。
如果你的完成标准清晰、任务边界稳定:
Plus通常已经够用。
如果你的工作流已经能稳定管理复杂任务,而AI侧吞吐开始成为真实瓶颈:
Pro才真正开始匹配。
未来真正成熟的AI开发者,不只是会告诉AI:
“做什么。”
还会更清楚地告诉它:
“满足这些条件以后,这次就结束。”
持续更新Codex、大模型开发相关技术内容。
长期使用各类代码大模型,整理了稳定的AI会员订阅渠道,有需要可自取!
葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。
更多推荐

所有评论(0)