ChatGPT、Codex实战:为什么AI完成任务以后,你还不能直接相信“Done”?
很多开发者开始使用ChatGPT、Codex以后,会发现一个非常明显的变化:
以前:
完成一个任务,需要自己写代码、调试、测试。
现在:
AI可以直接告诉你:
“任务完成。”
甚至附带:
修改说明。
测试结果。
实现总结。
看起来非常完整。
于是很多人开始形成一个习惯:
AI说完成。
测试通过。
直接合并。
但随着AI参与越来越复杂的开发任务,一个新的问题出现:
AI认为完成,不一定等于项目真正完成。
因为软件工程里的“完成”,从来不只是:
代码能运行。
测试能通过。
真正的完成还包括:
需求是否满足。
边界是否覆盖。
长期是否可维护。
风险是否可接受。
所以AI时代,一个新的问题出现:
AI越来越会执行任务,但人越来越需要重新定义什么叫完成。
一、真实场景:AI告诉你Done,但上线以后才发现问题
假设你让Codex完成一个需求:
“给订单系统增加自动重试机制。”
AI执行:
分析代码。
修改服务逻辑。
增加重试策略。
补充测试。
运行测试。
最后输出:
任务完成。
测试全部通过。
你查看结果:
代码结构合理。
没有明显问题。
于是准备上线。
上线以后发现:
某些订单出现重复处理。
为什么?
因为AI完成的是:
“增加重试机制。”
但是项目真正需要的是:
“增加安全的重试机制,同时保证订单操作幂等。”
两个目标看起来接近。
实际上完全不同。
AI完成了它理解的任务。
但没有完成业务真正需要的任务。
这就是:
Task Done ≠ Project Done
二、为什么会发生?因为AI的完成标准和工程完成标准不同
这是AI Coding时代非常关键的问题。
AI判断任务完成,通常基于:
代码是否修改。
测试是否通过。
错误是否消失。
功能是否运行。
但工程里的完成标准更加复杂。
例如:
一个接口修改完成。
不仅要:
返回正确。
还要:
性能符合要求。
兼容旧客户端。
不会破坏其他流程。
未来方便维护。
这些信息很多时候:
不会自动存在代码里。
也不会自动进入AI上下文。
所以AI的Done判断,本质上是:
局部完成。
而工程需要的是:
系统完成。
三、工程机制:AI优化的是Task Completion,不是Goal Alignment
可以把任务分成两个层次。
第一层:
Task Completion
任务完成。
例如:
添加接口。
修改代码。
通过测试。
第二层:
Goal Alignment
目标一致。
也就是:
这个修改是否真的解决了最初的问题。
是否符合业务方向。
是否符合长期设计。
AI通常很擅长第一层。
因为:
代码。
测试。
结构。
这些信息比较明确。
但第二层更加困难。
因为涉及:
上下文。
业务。
经验。
长期判断。
所以出现:
AI完成任务速度越来越快。
但目标一致性仍然需要人工确认。
四、为什么AI越强,“Done”这个词越危险?
以前:
开发者自己写代码。
自己知道:
为什么这么改。
哪些地方可能有问题。
所以完成状态比较清楚。
但AI加入以后:
执行过程越来越自动化。
人参与越来越少。
于是容易出现一种错觉:
“AI已经检查过了。”
“测试已经通过了。”
“应该没问题。”
但问题是:
AI检查的是:
它看到的信息。
不是整个系统。
例如:
AI不知道:
某个客户有特殊流程。
某个旧系统依赖隐藏行为。
某个业务规则没有写进代码。
所以越强的AI,越容易产生一种风险:
高质量地完成错误目标。
五、为什么Agent时代这个问题会更加明显?
因为未来AI任务会越来越长。
现在:
让AI改一个函数。
未来:
让AI完成:
需求分析。
方案设计。
代码修改。
测试。
部署准备。
整个流程。
任务越长:
中间产生的判断越多。
隐藏假设越多。
最终“完成”的定义越复杂。
未来开发者面对的可能不是:
“AI有没有写完代码?”
而是:
“AI有没有完成正确的问题?”
六、自测指标:你的AI任务是不是存在Done错觉?
可以建立一个指标:
Done Gap(完成差距)
定义:
AI认为完成的状态。
和项目真正需要完成的状态之间的差距。
可以观察:
第一:
AI是否经常说完成,但你还需要大量修改?
如果是:
说明Done Gap较大。
第二:
测试通过后,是否仍然出现线上问题?
如果是:
说明验证标准不足。
第三:
你是否经常发现:
“代码没问题,但方向错了。”
如果是:
说明目标定义不足。
第四:
你是否提前定义了完成标准?
如果没有:
AI很容易自己定义Done。
七、如何降低Done Gap?
第一:不要只告诉AI任务,要告诉AI成功标准
不要:
“增加缓存。”
改成:
“降低接口延迟,同时保证数据一致性,不改变业务行为。”
目标越明确:
AI越容易对齐。
第二:提前定义验收条件
例如:
完成必须满足:
接口响应降低多少。
测试覆盖哪些场景。
不能影响哪些模块。
哪些行为必须保持。
让Done从:
感觉完成。
变成:
可验证完成。
第三:要求AI输出“未验证风险”
任务结束以后,不要只问:
“完成了吗?”
改问:
“哪些地方虽然完成,但仍然存在未知风险?”
让AI主动暴露边界。
第四:复杂任务分阶段验收
不要:
AI执行30分钟。
最后一次检查。
应该:
方案确认。
小范围修改。
阶段测试。
继续推进。
每一步确认状态。
八、为什么很多人感觉AI越来越强,但项目效率提升没有想象中大?
因为他们提升的是:
执行速度。
但没有提升:
验收速度。
例如:
AI一天生成过去一周的代码量。
但人还是按照过去方式Review。
结果:
生产速度提升。
验证成为瓶颈。
最终效率没有完全释放。
所以AI时代真正需要升级的是:
整个开发流程。
不是单纯增加一个代码生成工具。
九、为什么这类问题不是升级模型就能解决?
很多人看到:
AI任务跑偏。
AI理解不完整。
第一反应:
模型不够强。
但很多问题来自:
目标定义。
上下文准备。
验收标准。
风险管理。
更强模型可以提高执行能力。
但不能替代:
工程判断。
十、什么时候Plus通常够用?
如果你的使用场景:
写函数。
改Bug。
生成脚本。
补测试。
处理明确需求。
那么:
Plus通常已经够用。
因为任务边界清楚。
完成标准简单。
AI执行效率已经足够。
十一、什么时候Pro才真正匹配?
Pro更适合:
你已经建立成熟AI开发流程。
能够:
定义目标。
拆分任务。
设置验收标准。
Review结果。
控制风险。
但你的工作需要:
大型代码库分析。
复杂Agent任务。
长时间执行。
多个模块修改。
持续迭代。
这时候:
更强AI能力才能真正提高生产力。
判断逻辑:
不是AI能不能完成任务,所以需要Pro。
而是你已经能管理复杂AI任务,需要更强执行能力。
最后:未来开发者最大的能力,是重新定义“完成”
AI时代最大的变化,不是:
AI会不会写代码。
而是:
AI开始大量执行代码工作。
于是人的价值开始转向:
定义目标。
制定标准。
验证结果。
控制风险。
因为真正危险的不是:
AI没有完成任务。
而是:
AI非常认真地完成了一个错误的任务。
未来优秀开发者,不一定是:
让AI最快完成的人。
而是:
最清楚什么才叫真正完成的人。
持续更新Codex、大模型开发相关技术内容。
长期使用各类代码大模型,整理了稳定的AI会员订阅渠道!
葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。
更多推荐
所有评论(0)