← 返回资讯
赵一鸣
产品评测编辑
已审核

推理到一半打断自己,说“等等,我刚才的假设错了”

上周四凌晨 2:47,我盯着屏幕,鸡皮疙瘩起来了。

推理到一半打断自己,说“等等,我刚才的假设错了”

推理到一半打断自己,说“等等,我刚才的假设错了”


上周四凌晨 2:47,我盯着屏幕,鸡皮疙瘩起来了。

GPT-5 Thinking 在调一个 Redis 分布式锁的 bug,推理跑到一半,它突然自己打断自己,输出了一行:

“等等,我刚才假设 Redis 是单节点的,这不对。网络分区场景下这个假设不成立,让我重新想。”

不是因为它答对了。

是它知道自己哪里可能错了

我赶紧截图发了个小群,@老陈说你看这个。老陈回了我三个字:不至于吧。

真的至于。之前的任何模型,包括 GPT-4、Claude 3.5,我都没见过这种操作。

今天聊聊这个让我熬到凌晨三点的新能力:GPT-5 Thinking 怎么自主发现知识盲区,然后动态修正推理路径。三个实际跑过的例子,附完整的推理记录。


案例一:分布式锁的“自我纠错”

先说开头那个。

我问它:“用 Redis 实现一个高可用的分布式锁,考虑网络分区的情况。”

GPT-5 Thinking 开始推理,完整链路是这样的:

CODE
Step 1: 确认需求 —— 互斥、防死锁、高可用
Step 2: 想到 Redlock 算法(多数派加锁)
Step 3: [内部标记:不确定性检测]
 检测到"网络分区"这个条件和我默认的 Redis 单节点假设冲突
Step 4: 回退修正 —— 单节点 Redis 在网络分区下会脑裂,
 需要引入 Redlock 或使用 Zookeeper 的顺序节点方案
Step 5: 给出两种方案的对比,并说明各自适用的场景

关键在第三步。它自己标了一个“不确定性检测”。

我后来翻了 OpenAI 在 2025 年 1 月发的那个技术博客,里面提到 Thinking 模式内部有个置信度评估机制——推理链里每个假设节点都有一个可信度评分,低于阈值就自动触发回溯。不是事后补救,是推理过程中实时检测。

对比一下 GPT-4 的表现。同一个问题,GPT-4 直接给我一个单节点 Redis 的 SET NX 实现,锁过期时间设了 30 秒,还贴了段看起来很完整的代码。网络分区?一个字没提。你追问它,它会补,但不会主动质疑自己的初始假设

这就是区别。

嗯...我试着解释得更清楚一点:GPT-4 的推理是“一条道走到黑”,GPT-5 Thinking 是“走两步回头看一眼”。这个差异在简单问题上不明显,但在分布式系统这种需要多步推理、中间容易踩坑的场景里,差距会拉得很大。


案例二:React 渲染优化的“盲区标记”

第二个例子我觉得更有意思。

我故意给了一个信息不全的问题:“为什么我的 React 组件一直重复渲染?代码如下。”

JAVASCRIPT
function UserList({ users, onSelect }) {
 return (
 <div>
 {users.map(user => (
 <UserItem key={user.id} user={user} onSelect={onSelect} />
 ))}
 </div>
 );
}

GPT-5 Thinking 的推理过程:

CODE
Step 1: 检查明显原因 —— key 使用了 user.id,没问题
Step 2: 怀疑 users 数组引用每次都变了
Step 3: 怀疑 onSelect 函数引用每次都变了
Step 4: [盲区标记] 仅凭代码无法确定 users 和 onSelect 的来源,
 需要询问:users 是通过 props 传入还是来自 Context/Redux?
 onSelect 是否用 useCallback 包裹?
Step 5: 给出两种假设下的不同解决方案

它不光标记了自己的盲区,还反向追问了两个关键问题

我就把完整代码给它了。原来是用了 useSelector,没做 memoize,父组件每次状态更新都会生成新的 users 引用。它定位到根因之后,给了三个解法:

三个解法还排了优先级。推荐第一个,说改动最小、风险最低。

等等,这里我要更正一下——它推荐的第一个方案其实有个坑。用 useMemo 包裹 selector 结果确实能解决引用变化的问题,但如果 selector 本身依赖了会频繁变化的状态,那 memo 也没用。这一点它没提,我后来在实际项目里踩了才发现。所以不要因为它会自我纠错就觉得它全对,它的纠错范围也有限。


踩坑故事:别把 Thinking 当成“永远正确”

说到踩坑,分享一个我上周的真实经历。

我在搞一个 WebSocket 重连机制,问 GPT-5 Thinking 怎么处理指数退避(exponential backoff)防止服务端被冲垮。大概是我当时太累了,脑子不清醒。

它给的推理路径很长,中间自己修正了两次:

我一看,逻辑清晰,修正到位,直接复制代码上线了。

结果凌晨 3:15,PagerDuty 响了。WebSocket 服务 CPU 飙到 92%。排查了快一个小时,发现重连逻辑在某个边界条件下会疯狂重试——退避时间的上限设了 300 秒,客户端断连太久反而触发了另一个健康检查的重试逻辑,两个逻辑互相打架,重连请求指数级增长。

根因其实很简单:它不知道我们系统里有个独立的心跳重试机制。这个上下文它没有。

这件事教会我:GPT-5 Thinking 的自我修正能力确实强,但修正范围仅限于它知道的知识领域。你的私有系统、奇怪的业务逻辑、十年前那个没人敢动的遗留模块——它还是盲区。它的“盲区发现”针对的是通用知识,不是你公司内部那个破系统。

所以现在我怎么用?把它当成一个会反思的结对编程搭子,而不是不会犯错的神。它出方案,我审。审完了再上线。


动态修正的底层逻辑

我翻了一些 OpenAI 和 Anthropic 的研究资料,结合自己跑的效果,这个“动态修正”大概是这样工作的:

这也解释了为什么 Thinking 模式比普通模式慢——它内部跑了好几条路,选了一条最好的给你。我实测同一个问题,GPT-5 Thinking 的响应时间是普通模式的 2-3 倍,有时候更长。


对我们来说意味着什么

我这几天用下来的感受:

1. 复杂排错场景真的好用——特别是那种需要多步推理、中间容易想岔的技术问题。我现在排查线上 bug,第一反应是丢给它先跑一遍思路

2. 代码审查辅助——给它一段代码和需求,它会自己找可能出问题的点,省了我很多“你这里没考虑到XX”的口舌

3. 架构方案权衡——它会主动指出自己方案的局限性,不用你再追问“这样有什么问题吗”

4. 但私有上下文还是你的活——它不知道你公司那个破系统十年前为什么那样设计,这部分你得自己补

我现在的工作流:先用 GPT-5 Thinking 过一遍思路,它自己纠错完了我再审。效率提升了不少,至少不用一遍遍追问“你再想想这里有没有问题”。

对了,顺便提一句,2024 年底那个“AI 会取代程序员”的热搜,我觉得有点扯。GPT-5 确实强,但它更像一个 senior 的结对搭子,不是替身。你得有自己的判断力。


好了,一篇聊不完这个模型的所有细节。但希望这三个例子能让你对 GPT-5 Thinking 的“自主发现盲区 + 动态修正”有个直观感受。

现在我特别好奇一件事:你们在实际项目里遇到过那种“模型明明错了但特别自信”的情况吗?GPT-5 这种会自我怀疑的模式,你觉得是更好还是更让人没安全感?

评论区聊聊,我每条都会看。☕

#GPT5 #AI推理 #分布式系统 #React #前端性能优化 #技术踩坑

710
10151 阅读
5 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月27日 19:09

赵一鸣

产品评测编辑

前产品经理,现专注 AI 工具评测。实测过 30+ 款 AI 产品,擅长横向对比和用户体验分析。

读者评论 5

Dev小王 1周前
终于有人把这个说清楚了,收藏了。
回复 点赞 (8)
A
AI研究员 昨天
观点有道理,不过我觉得还需要考虑算力成本的问题。
回复 点赞 (11)
M
创业者Mark 4天前
正在做相关方向,这篇文章给了我不少启发。
回复 点赞 (7)
老李 1周前
有个小问题想请教,文中提到的那个方案在大规模场景下性能怎么样?
回复 点赞 (5)
运营小陈 1周前
转发到团队群了,大家都觉得有参考价值。
回复 点赞 (4)