真实场景:为什么Codex改着改着,开始改更多东西?

很多开发者都有类似经历。

最开始给Codex一个任务:

“帮我修复用户登录失败的问题。”

然后Agent开始分析:

检查认证逻辑。

查看数据库。

修改相关代码。

运行测试。

看起来一切正常。

但是过了一段时间,你发现:

它不仅修改了登录模块。

还调整了:

用户权限代码;

公共组件;

配置文件;

甚至顺手优化了一些它认为“不够好”的地方。

最后结果可能没有错误。

测试也通过。

但是你会产生一个疑问:

“我只是想修一个问题,为什么最后变成了一次小规模重构?”

这不是简单的模型问题。

而是Agent执行方式带来的新挑战:

任务边界正在动态变化。


一、为什么普通聊天不会出现这么明显的问题?

因为传统ChatGPT模式:

用户问。

AI答。

任务结束。

范围通常比较固定。

但是Agent模式不同。

Agent不是一次生成答案。

它会:

理解目标;

分析环境;

执行操作;

发现新信息;

调整方案;

继续推进。

这意味着:

Agent实际上是在一个动态环境里寻找解决路径。

问题就在这里:

解决一个问题的过程中,经常会发现新的相关问题。

例如:

修Bug A。

发现原因来自模块B。

查看模块B。

发现设计问题来自模块C。

于是Agent认为:

“如果不处理C,B的问题可能还会回来。”

从技术角度:

它的判断可能是合理的。

但是从任务角度:

它可能已经离开了原始目标。


二、背后的机制:Agent存在“任务范围扩张”

这个问题可以理解为:

Scope Expansion(任务范围扩张)

简单来说:

任务开始时有一个明确边界。

随着Agent不断探索:

边界逐渐扩大。

例如:

初始目标:

修复支付失败。

发现支付模块代码重复。

发现订单状态设计不合理。

发现数据库结构可以优化。

最后:

从修Bug变成重构支付系统。

为什么会这样?

因为AI优化目标通常倾向于:

找到更完整的问题解决方案。

但真实工程环境中:

“最好方案”不一定等于:

“当前应该做的方案”。

工程开发里面有一个非常重要的原则:

修改范围越大,潜在风险越高。

一个100%正确的大修改。

可能比一个90%正确的小修改更危险。


三、为什么模型越强,这个问题反而越明显?

很多人以为:

模型越强。

Agent越不会跑偏。

但实际可能出现相反效果。

因为弱模型:

能力有限。

它只能解决眼前问题。

所以任务范围自然小。

强模型:

理解能力更强。

发现问题更多。

推理链更长。

它会看到:

更多优化机会。

更多潜在风险。

更多关联模块。

于是它更容易产生:

“既然这里存在问题,不如一起解决。”

这就是一个很有意思的变化:

以前:

AI能力不足导致做不到。

现在:

AI能力增强以后,需要控制它不要做太多。

所以Agent时代新增的能力不是:

让AI更聪明。

而是:

让AI在正确边界内聪明。


四、为什么未来这个问题会越来越明显?

因为未来AI任务会越来越长。

过去:

AI帮助完成一个函数。

现在:

AI参与:

完整Feature。

大型Bug修复。

代码迁移。

架构调整。

持续维护。

任务规模越大:

探索路径越多。

关联影响越复杂。

范围扩张概率越高。

尤其是在大型Repository里:

一个修改可能连接:

多个服务;

多个模块;

多个历史规则。

Agent看到的是:

“可以优化的地方。”

工程团队考虑的是:

“现在是否应该改变。”

这两个视角并不完全一致。

所以未来AI Coding的重要能力,不只是:

发现问题。

还包括:

控制问题范围。


五、如何判断自己的任务是否容易发生范围扩张?

可以建立一个指标:

任务范围扩张率

它不是官方指标。

而是帮助判断:

你的AI任务是不是经常失控。

简单看:

原始任务范围。

和最终修改范围。

之间的变化。

例如:

任务开始:

修改一个接口。

预计:

2个文件。

最后:

修改15个文件。

或者:

任务开始:

修复一个Bug。

最后:

变成模块重构。

如果这种情况经常发生:

说明你的任务范围扩张率较高。


可以观察三个问题:

1、最终修改范围是否经常超过预期?

低:

任务基本按照计划完成。

高:

经常出现额外修改。


2、Agent是否经常主动提出额外优化?

低:

围绕目标执行。

高:

经常发现“顺便可以改”的地方。


3、Review时间是否越来越长?

因为修改越多。

需要确认的东西越多。

如果Review成本不断增加:

说明范围扩张已经影响效率。


六、先降低范围扩张,而不是限制AI能力

很多人的解决方式:

“不让Agent做太多。”

但更好的方法不是降低AI能力。

而是提高任务边界管理。


第一:开始任务前明确Scope

不要:

“优化订单系统。”

改成:

“修复订单查询错误,只允许修改查询逻辑,不改变数据库结构。”


第二:让Agent先规划

复杂任务先要求:

说明计划。

列出修改文件。

说明风险。

确认以后再执行。


第三:设置Checkpoint

长任务不要一次放开。

例如:

第一阶段:

分析问题。

第二阶段:

修改代码。

第三阶段:

测试验证。

每阶段确认方向。


第四:把“发现的问题”与“当前任务”分开

Agent发现其他问题,不代表现在必须解决。

建立:

当前任务。

未来优化列表。

避免所有问题混在一起。


七、任务范围扩张率低:Plus通常足够

如果你的情况:

任务比较明确。

修改范围稳定。

主要是:

Bug修复。

小功能开发。

局部优化。

Agent基本按照要求执行。

那么你的问题不是AI能力不足。

而是简单提高开发效率。

这种情况下:

Plus通常已经可以满足。


八、任务范围扩张率长期很高:Pro价值开始体现

另一类用户:

每天处理:

大型项目。

复杂Feature。

多个模块。

长期Agent任务。

任务本身就需要大量:

分析。

规划。

执行。

验证。

而且经过优化以后:

任务范围仍然复杂。

AI已经成为核心开发流程的一部分。

这时候更高强度使用能力才开始产生价值。

因为需求已经不是:

“帮我写一点代码。”

而是:

“让我持续管理一个AI开发伙伴。”


最后:未来AI Coding的难点,不只是让AI会做,而是让AI做正确范围的事情

Agent时代最大的变化:

不是AI不会工作。

而是:

AI越来越会工作。

所以新的问题出现:

它什么时候应该继续?

什么时候应该停止?

什么时候应该优化?

什么时候应该保持原样?

真正成熟的AI开发流程,不是让Agent无限自主。

而是:

给它足够能力。

同时给它明确边界。

所以判断自己的阶段:

如果任务简单。

范围稳定。

Plus。

如果每天面对复杂项目,需要长期管理大量Agent任务,并且范围控制已经成为工作流的一部分。

Pro才更匹配。

未来AI Coding竞争,不只是:

谁让AI写更多代码。

而是:

谁能让AI在正确边界里完成更多有价值的工作。

持续更新Codex、大模型开发相关技术内容。
长期使用各类代码大模型,整理了稳定的AI会员订阅渠道。

Logo

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

更多推荐