游乐游手机版
首页/AI热点日报/热点详情

Fable 5一夜修复GPT-5.5和Opus 4.8无法处理的Bug

类型:热点整理2026-06-13
Fable5通过设计取证监控系统,解决了GPT-5 5和Opus4 8均无法定位的用户账号互串Bug。该Bug源于开源认证库BetterAuth旧版本的并发问题,一个await导致多个请求共用响应头容器,触发概率极低。Fable5拒绝猜测,通过埋点取证最终定位并修复,同时清理了长期积累的数据问题。

Fable 5 是如何凭借一套“破案监控系统”,成功解决了连 GPT-5.5 和 Opus 4.8 都无能为力的诡异 Bug?

核心看点:

1. 一个无法复现、全球随机出现的用户账号“互串”悬案

2. GPT-5.5 与 Opus 4.8 给出的不同诊断及其局限

3. Fable 5 的独特策略:放弃猜测,转向设计取证系统

今天这篇文章,记录了一个真实的破案故事。

主角并非人类,而是 Claude 最新发布的大模型——Fable 5。

---

一、悬案始末

事情要从几个月前说起。

Raphael AI(raphael.app)收到了一类堪称离奇的投诉:用户正常登录自己的账号,看到的却是一个陌生人——陌生的名字、陌生的头像、以及完全不属于自己的全部生成历史。

第一次看到投诉截图时,那种头皮发麻的感觉至今记忆犹新。

更棘手的是,这种投诉反复出现,甚至国内用户也反馈了完全相同的问题。

这个 Bug 有多诡异?不妨列举一下:

百万级用户中只有几百人中招,概率低得像都市传说,根本无法复现。无论怎么测试,测试环境中从未出现。

双向互串:A 能看到 B 的账号,B 也能进入 A 的账号。

跨设备:一边是 Mac 上的 Chrome,另一边是 iPhone 上的 Safari。

全球随机:东京、巴黎、多伦多……毫无地域规律。

最邪门的是最后一条:数据库里查不出任何异常。登录凭证全部唯一,安全检查全部通过,代码里找不到任何“共享状态”。

它就这样悬而未决,像房间里的一只隐形蚊子——你知道它存在,却怎么也拍不到它。

二、自信的错误答案

当然,第一反应是求助 AI。事实上,这个 Bug 从首次出现至今已过去好几个月,期间不断尝试让 AI 协助排查。

先问 GPT-5.5,把所有的日志、Cloudflare API、Sentry API 全部喂给它。说实话,这个模型在业界有口皆碑,以往很多重要判断都依赖它把关。

GPT-5.5 的回答斩钉截铁:

“这是 Cloudflare 的缓存 Bug。你的代码没有问题。建议向 Cloudflare 提交工单反馈。”

它说得太笃定了,笃定到让人差点真去提工单。

再问 Opus 4.8。它倒是很诚实,排查了一圈,表示找不到确定的方向。

相比之下,Opus 4.8 有一个明显胜过 GPT-5.5 的优点:它更容易承认“我不知道”,产生幻觉的概率更小。

诚实是诚实了,但案子依然悬着。

这一轮下来,有个体会越发深刻:

自信的错误答案,比没有答案更危险。

没有答案,最多原地踏步。自信的错误答案,会消耗最宝贵的资源——时间,还会转移对正确方向的注意力。

三、Fable 5 说:别猜了

Fable 5 发布后,把这个悬案交给了它。

它做了一个让人意想不到的举动。

它没有直接给出答案。

它说(大意):现有的信息不足以定位问题。任何结论都只是猜测。停止猜测,开始埋点取证。

然后它当场设计了一套“破案监控系统”:

  1. 给每一个登录相关的响应装上“进出对账”——记录每次请求进来时的身份,以及服务器返回给用户的数据身份,一一比对,不一致立即报警。
  2. 给每个用户的浏览器装上“身份哨兵”——如果未经登出操作,身份却突然变成了另一个人,立刻上报现场证据。

下面展示一些截图:

最令人佩服的是:它提前写好了“判决书”。它说,如果日志 A 出现,说明问题出在服务端,查看日志路径就能定位具体端点;如果 A 始终不出现、而 B 持续报警,说明问题在网络层,需要去查另一个方向。

证据还没返回,每种证据对应的结论,它已经安排得明明白白。

这像什么?像刑警破案:不靠灵感,不靠直觉,而是在每个路口安装监控,让嫌疑人自己走进画面。

这里有一条今天就能用的方法论,也是这次最大的收获:

遇到悬案,别让 AI 猜测,让 AI「设计取证」。

猜测的尽头是运气。取证的尽头是真相。

四、真相:一个 await

监控安装完毕,部署上线。日志回来了,毒源现形。

凶手是一个广为人知的开源认证库——BetterAuth 的某个老版本。

用通俗语言解释这个 Bug。

服务器处理登录时,需要往一个“响应头容器”里装入用户的登录凭证。正常写法是每个请求独立容器,各装各的。

但这个库的老版本,所有请求共用一个容器。

平时相安无事,因为大部分时候请求是逐个排队处理的。

但问题出在这里:向容器装入凭证的过程中,有一步异步操作——代码里的一个 await——会使整个流程“挂起”零点几毫秒。

就在这零点几毫秒内,如果恰好有另一个用户的登录挤了进来——

两个人的凭证被装进了同一个容器。

用户 A 的登录凭证,装进了用户 B 的响应。B 的浏览器接收后,B 就变成了 A。

一个 await,让用户变成了别人。

这个解释,把前面所有“邪门”现象全部串了起来:

为什么无法复现?因为它只在两个请求挤进同一毫秒时触发,本地测试根本没有那个并发量。

为什么百万人中只有几百人中招?因为这是一场概率游戏,流量越大,“中奖”越频繁。

为什么全球随机、跨设备?因为问题出在服务器响应中,跟你使用什么设备、身处哪个国家毫无关系。

Fable 5 给它的定性是:教科书级的并发事故,只有高并发的生产环境才会现形。

这类 Bug 在 BetterAuth 中还有好几处,就不一一展开了。

更有意思的是——这个 Bug,BetterAuth 库的官方并不知情。

新版本是彻底重写的,并非老版本的升级。老版本的“坟墓”,无人去挖掘。

我们大概是全球第一批挖开查看的人。

五、还没完:退烧之后,还要清除病灶

你以为打个补丁就结束了?

不,这才是这个故事里最值得保留的部分。

第一版补丁打上去,部署后,报警继续响。

排查发现一个特别“工程”的坑:这个库发布时附带两套构建产物(ESM 和 CJS,可以理解为同一本书的精装版和平装版)。只修复了其中一套,而线上实际运行的是另一套。

补全两套后,报警频率降了下来。

但依旧在响。

换别的 AI,到这一步大概率开始循环往复。Fable 5 又看了一轮新日志,给出第二个判断:急性中毒已经止住,但几个月的串号在数据库中沉淀下了慢性病灶——近百对用户被错误地“绑定”在一起,每次登录,系统都在两个身份之间“掷硬币”。

于是又是一轮:先备份,再生成一张“清理决策表”进行审核,然后单事务清洗数据,最后给数据库加上唯一约束——从根源上彻底封死复发的路径。

对了,排查途中还有一个黑色幽默:之前另一个 AI(Codex GPT-5.5)帮忙修复别的问题时,顺手引入了一个慢查询,恰好把这个并发 Bug 的触发窗口放大了几个数量级。

一个 AI 埋下的雷,成了另一个 AI 的 Bug 的扩音器。

直到看到 Fable 5 给出的“完结撒花”,才算真正松了一口气。

六、那一晚,我在干什么?

说出来不怕大家笑话。

在复制粘贴。

把服务器的日志粘给它,把它给出的命令粘到服务器。

折腾到后半夜,破案、打补丁、清理数据、加约束、安装长期监控,全链路走完。

复盘时意识到,那一晚自己的角色,就像是一个给侦探递咖啡的助手。

真正的侦探,是 AI。

七、Not Productivity, Rather Capability

这件事过去几天了,依然在回味那种震撼。

让人震撼的,不是“它修好了”。

而是它解决问题的方式:

它知道自己不知道,所以拒绝猜测。

它设计实验,让证据说话。

它修复急性病后,还主动去寻找慢性病。

它给自己的每一个动作,都留下了验证手段。

这不是“答题答得好”,这是顶级工程师才具备的工作品味。

很多人说,AI 是生产力工具。以前我也这么认为。

现在觉得,这个说法太小看它了。

生产力,是把同样的事情做得更快。

能力,是做到以前根本做不到的事。

这种全球范围内可能只有库作者本人才能定位的 Bug,放在过去,选项只有两个:高薪聘请一位世界级的并发专家——请不起,也找不到;或者,让它永远悬在那里。

现在,它就在终端里。

Not productivity, rather capability.

不是你做事的速度变快了。

而是你能做到的事情,变多了。

世界又变了。这次变的不是工具,而是你能成为谁。

===

最近有没有被 Fable 5 震撼到的瞬间?欢迎在评论区分享。

来源:https://www.53ai.com/news/LargeLanguageModel/2026061293168.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。