现在的ChatGPT、Codex,有一个变化越来越明显:

它们给出的方案越来越“像一个完整方案”。

以前让AI分析一个开发问题,它可能只告诉你:

问题在哪里。

应该怎么改。

现在你让它处理一个复杂任务,它可能直接给你:

问题分析。

实现方案。

代码修改。

异常处理。

测试策略。

兼容性说明。

风险列表。

甚至连后续优化方向都一起给出来。

整个回答结构非常完整。

有时候你看完以后,会产生一种很自然的感觉:

“它应该已经考虑得比较全面了。”

但真正危险的地方,恰恰可能从这里开始。

因为:

一个方案看起来很完整,不代表真正重要的风险已经被覆盖。

AI越来越擅长把“已经想到的东西”组织得非常完整。

但它仍然可能:

非常完整地漏掉一个关键前提。


一、真实开发场景:方案几乎无可挑剔,最后却输在一个没被讨论的问题上

假设你让Codex设计一个订单接口的重试机制。

它很快给出完整方案:

增加重试次数配置。

采用指数退避。

处理超时异常。

增加日志。

增加监控。

补充单元测试。

增加失败告警。

甚至还考虑了:

最大重试次数。

网络抖动。

服务降级。

从文档来看:

非常专业。

你开始实现。

测试也通过。

上线以后却出现一个严重问题:

某些订单被重复处理。

为什么?

因为真正关键的问题不是:

“怎么重试?”

而是:

这个操作到底是不是幂等的?

AI把“重试机制”内部考虑得非常完整。

但整个方案建立在一个没有被充分验证的前提上:

重试是安全的。

一旦这个前提不成立,后面再完整的重试策略,都可能建立在错误基础上。

这就是AI方案越来越完整以后,一个非常值得警惕的问题:

Completeness Illusion——完整性错觉。


二、什么是“完整性错觉”?

可以把一个方案拆成两层。

第一层是:

方案内部完整性。

比如一个缓存方案里,AI考虑了:

缓存Key。

TTL。

失效机制。

异常处理。

监控。

测试。

这些内容彼此完整。

第二层是:

问题空间覆盖度。

也就是:

AI有没有找到真正决定这个方案是否成立的关键问题?

这两个不是一回事。

AI可能在第一层做得非常漂亮。

但第二层漏掉一个关键条件。

于是你看到的是:

一个内部非常完整,但建立在错误前提上的方案。

这就是为什么:

“回答很全面”

不能自动推导出:

“风险已经充分覆盖”。


三、为什么人特别容易被“完整答案”影响判断?

因为我们判断一个方案是否可靠时,会自然使用很多视觉和结构信号。

比如:

逻辑清晰。

章节完整。

术语专业。

有风险分析。

有测试方案。

有边界情况。

当这些东西同时出现时,大脑很容易产生一个判断:

这个方案考虑得很周全。

但这里存在一个问题。

这些信号证明的是:

表达完整。

而不是:

事实完整。

尤其是AI非常擅长结构化表达以后,这两件事越来越容易被混在一起。

一个方案可以:

标题漂亮。

逻辑完整。

步骤详细。

风险列了8条。

但真正导致系统失败的第9条风险,可能根本没有进入问题模型。


四、背后的机制:AI只能深入它已经“看见”的问题空间

假设一个问题真实存在10个关键变量。

AI根据当前Prompt、Context和代码识别出了其中8个。

那么它完全可以围绕这8个变量,生成一个非常完整的方案。

它可以:

分析它们之间的关系。

给出代码。

补测试。

列风险。

制定验证方案。

于是从表面看:

完成度非常高。

但真正的问题在于:

另外两个变量从一开始就没有进入推理空间。

后面回答再长,也不会自动解决这个问题。

这就是一个非常关键的区别:

Reasoning Depth,不等于 Problem Coverage。

推理得很深。

和问题看得够不够全。

是两种不同能力。


五、为什么复杂项目里这个问题尤其危险?

因为复杂系统真正容易出问题的地方,往往不是主路径。

而是:

隐藏依赖。

历史兼容。

业务例外。

跨模块约束。

生产环境差异。

未写进文档的规则。

比如AI看代码以后认为:

这个字段可以改。

从类型、调用链、测试来看都没有问题。

但真实业务里可能存在一个外部系统,默认这个字段永远保持某种格式。

代码仓库里没有明确写。

测试里也没有覆盖。

Context里也没提供。

那么AI可以非常合理地得出一个错误结论。

而且最危险的是:

整个推理过程可能没有明显漏洞。

它只是缺少了一个关键事实。


六、为什么AI越强,“完整性错觉”反而可能更明显?

因为强模型更擅长:

组织。

解释。

补全。

推理。

生成结构化方案。

以前一个弱回答可能很明显:

“这里考虑得不够。”

你会自然保持警惕。

现在一个强回答可能已经包含:

架构图思路。

Implementation Plan。

测试策略。

Rollback方案。

风险分析。

你反而更容易降低警惕。

所以AI能力提高以后,会出现一个非常反直觉的变化:

明显错误可能减少,但“看起来非常合理的遗漏”会变得更值得关注。

未来真正困难的Review,不一定是抓低级错误。

而是:

发现AI根本没有讨论的那个问题。


七、这和Automation Bias有什么关系?

这里还涉及一个经典的人机协作问题:

Automation Bias——自动化偏误。

简单来说:

当自动化系统表现长期不错以后,人会逐渐倾向于相信它的判断。

AI Coding也可能出现类似现象。

第一次你会认真检查每一行。

后来发现Codex连续很多次都做得不错。

慢慢开始:

测试通过就合并。

方案完整就接受。

风险列表看起来充分就认为风险已覆盖。

这时候人的角色可能从:

主动验证者

慢慢变成:

结果确认者。

这两者差别很大。

主动验证者会问:

“它可能错在哪里?”

结果确认者更容易问:

“看起来是不是没问题?”

后一个问题天然更容易产生确认偏差。


八、真正成熟的Review应该从“确认”变成“反证”

这可能是AI时代非常重要的一个变化。

传统Review经常在确认:

实现是否合理?

代码是否规范?

测试是否通过?

AI大量参与以后,还应该增加一种Review:

Falsification Review——反证式Review。

不要只问:

“这个方案为什么可行?”

还要主动问:

“什么情况下,这个方案会失败?”

例如AI给出一个缓存方案。

不要只看缓存怎么实现。

要问:

如果数据一致性要求比我们想象得高,会怎样?

如果缓存失效顺序异常,会怎样?

如果多个实例同时更新,会怎样?

如果真实流量模式和测试环境不同,会怎样?

这时候Review目标就从:

验证AI说得对。

变成:

主动寻找能够证明AI方案不成立的条件。


九、可以用“反证次数”自测自己是不是太容易相信AI

这里可以建立一个很简单的自测指标:

反证次数

一个复杂AI方案出来以后,你主动做过多少次:

试图证明它是错的?

不是让AI继续解释为什么自己正确。

而是主动挑战它。

比如至少问:

这个方案依赖哪些关键假设?

其中哪个假设最可能不成立?

有没有一种情况,测试全部通过但生产仍然失败?

如果我要否定这个方案,最应该检查什么?

有哪些信息当前Context里根本没有?

如果一个复杂方案从生成到合并:

反证次数 = 0。

你只是:

阅读 → 测试通过 → 合并。

那么即使AI表现很好,长期风险也可能越来越高。


十、第二个方法:让AI区分“事实、推断、假设”

这是一个非常实用的方法。

复杂任务完成分析以后,不要只让AI给结论。

让它把依据分成三类:

已确认事实

代码、日志、测试或文档能够直接证明。

推断

根据现有证据推导出的高概率判断。

假设

当前方案成立所依赖,但还没有验证的条件。

真正需要人重点Review的,往往不是第一类。

而是第三类。

因为很多严重问题,不是推理链本身错了。

而是:

一个未经验证的假设,被悄悄当成了事实。


十一、第三个方法:专门寻找“方案外风险”

AI给出一个方案以后,可以做一次独立检查:

先不要优化当前方案,只寻找当前方案没有覆盖的问题。

这和让AI:

“再检查一下有没有问题”

完全不同。

后者很容易继续围绕原方案进行自我验证。

前者要求它重新打开问题空间。

例如:

当前方案没有考虑哪些模块?

哪些业务规则可能不在代码里?

哪些外部依赖无法从Repository确认?

哪些风险只能在生产环境出现?

这样更容易发现:

Missing Variable——缺失变量。


十二、第四个方法:关键决策不要只让同一条推理链自证

如果AI刚刚设计了一套架构。

然后你继续问它:

“检查一下这个架构有没有问题。”

它很容易继续沿着刚才建立的问题模型检查。

更好的方式是:

重新建立一个Review视角。

例如明确要求:

“不要维护当前方案,站在反对这个方案的Reviewer角度,寻找三个足以让我拒绝合并的理由。”

重点不是让AI“人格分裂”。

而是:

改变任务目标。

从:

完善方案。

切换成:

攻击方案。

这样更容易暴露原始推理没有覆盖的区域。


十三、为什么未来这个问题会越来越重要?

因为AI生成代码的成本正在快速下降。

以前一个复杂方案需要开发者自己花几个小时设计。

人天然会经历大量思考过程。

未来AI可能几分钟就给出:

方案。

代码。

测试。

文档。

风险说明。

于是“生成”越来越便宜。

但验证一个方案是否建立在正确前提上,并不会同步变得完全免费。

所以未来软件工程的瓶颈可能进一步从:

Production

转向:

Verification。

不是:

谁能最快产生方案。

而是:

谁能最快发现一个漂亮方案里隐藏的错误假设。


十四、反证机制很弱:Plus通常已经足够你先优化

如果你现在使用AI的方式还是:

AI给方案。

看起来不错。

测试通过。

直接接受。

那么真正应该先提升的,不是AI容量。

而是验证方式。

先建立:

假设检查。

反证Review。

边界测试。

风险验证。

这些事情使用Plus就可以完成很多。

因为当前瓶颈不是AI生成得不够多。

而是:

你还没有充分验证已经生成出来的东西。


十五、什么时候Pro才真正开始匹配?

更接近Pro的状态是:

你已经有成熟的AI Review机制。

复杂方案会主动反证。

事实、推断、假设能够分开。

关键风险有独立验证。

高风险修改不会因为“AI说得很完整”就直接接受。

但你的真实工作里仍然持续存在:

大量复杂Codex任务。

大型Repository。

高Context分析。

多任务并行。

长时间Agent执行。

大量需要独立分析和Review的高价值任务。

这时候更高的AI吞吐才更可能真正转化成生产力。

判断逻辑不是:

“AI方案很复杂,所以我要Pro。”

而是:

“我已经能够可靠验证AI生成的大量结果,现在验证和执行规模继续扩大,AI侧容量才成为限制。”


最后:AI越会给出“完整答案”,人越要学会寻找“答案里没有什么”

过去我们判断AI能力,经常看:

它回答了多少。

它考虑了多少。

它写得多完整。

但Agent越来越强以后,一个更重要的问题可能是:

它没有考虑什么?

因为一个真正危险的AI方案,不一定看起来粗糙。

它甚至可能:

结构完整。

代码漂亮。

测试全绿。

风险列表详细。

每一步都有理由。

最后却因为一个没有进入问题空间的关键变量,整个方案失效。

所以未来真正成熟的AI使用方式,不是怀疑所有AI结果。

也不是相信所有漂亮结果。

而是建立一种稳定习惯:

AI负责把方案做完整,人和AI一起负责证明这个方案可能是错的。

如果你的反证机制还没有建立:

Plus通常已经足够你先把Workflow补起来。

如果你已经能稳定验证复杂AI结果,而大量高价值任务继续受AI侧吞吐限制:

Pro才真正开始匹配。

AI越强以后,真正值钱的能力可能不再只是:

看懂它说了什么。

而是:

发现它没有说什么。

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

Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。

更多推荐