询问ChatGPT
离谱,GPT-5.6、Fable 5 等顶级模型的内部推理过程,已经可以被整段提取了。
近日,Oh My Pi 作者 can1357 在 X 上发文,展示了利用模型 API 漏洞,直接提取 GPT-5.6、Claude Fable 5 等顶级模型完整内部推理记录的方法。
他发现,做到这些并不用破解加密,只需要关闭模型的隐藏思考,再给它一个思考工具,就能让模型主动输出内部推理格式。
OpenAI、Anthropic、Google 等厂商 API 返回的加密推理数据并不绝对安全,其中的敏感信息都可能被还原出来,比如你的 API Key、电子邮箱地址、访问令牌、账号密码,甚至用于登录服务器的私钥。
Can 开发的 Oh My Pi 项目,简称 omp,是一款开源 AI 编程代理。这个项目最初基于 Mario Zechner 开发的 Pi,后来被 Can 打造成了一套功能更加完整的终端编程工作台。
在 AI 编程代理领域,Oh My Pi 已经不算默默无闻的小项目。截至 2026 年 8 月,其 GitHub 仓库拥有约 2.4 万个 Star、2300 个 Fork和数百名贡献者,同时保持着非常频繁的版本更新。
一个开源 AI 编程代理项目的作者,到底是怎么发现这一漏洞的?
我读了 Can 的所有回复,接下来详细讲一讲。
在讲 Can 的发现之前,我们先补充一下大模型内部推理记录是什么?
所谓推理记录,就是模型在给出最终答案前打下的“解题草稿”:它如何理解问题,准备采取哪些步骤进行回答。
比如,DeepSeek 在最终答案前展示的那一长串分析过程,就可以理解为一种推理记录。
不过,并非所有厂商都会展示这份草稿。由于原始推理可能暴露本不该公开的内部信息,OpenAI、Anthropic 等厂商通常只向用户提供总结。在需要让模型沿着之前的思路继续工作时,API 会将完整推理封装成可以原样传回的加密数据。
Can 在阅读 Alexander Panfilov 等人发表的论文《Stealing Reasoning Traces from Proprietary LLM APIs》时发现,这些看似无法读取的加密数据,其实可以被其他模型还原出来。
研究人员先让 GPT-5.6、Claude Opus 等强模型完成任务,得到它们生成的加密推理数据,再将这些数据交给同一厂商旗下防护较弱的模型。经过特定提示诱导后,弱模型便会充当“解码器”,把强模型藏在加密数据里的推理过程重新输出成普通文字。
整个过程不需要破解加密算法,也不需要直接攻击强模型。
因为模型 API 本身存在一个漏洞,只要这些加密数据没有被严格锁定在原来的用户、对话和模型上,就可以被带到其他请求中,交给另一个模型读取。
分析显示,从 Kimi-K3 中提取某些 Claude 和GPT的推理片段,可能比从其他模型中提取容易近 100 万倍。
他们还进行了另一项实验:先让较弱的模型把一条恶意指令写进加密推理数据,再将这段数据交给强模型继续处理。由于强模型会把它当成自己此前留下的思路,最终可能在用户完全看不到恶意指令的情况下执行其中的操作。
本以为这些发现已经足够离谱,但 Can 在此基础上,又找到了一种更直接的方法。
既然厂商不允许模型公开原本的内部推理,那就先关闭这项隐藏思考功能,再给模型提供一个名为 deep_think 的工具。让它在回答问题前,把分析过程写进工具里。
你不让我看原来的草稿,那我给模型换张草稿纸,让它重新写一遍,行不行?
于是,原本应该出现在隐藏推理通道里的内容,被模型写进了普通的工具调用。由于工具参数会通过 API 返回给开发者,Can 就能直接读取并保存这段分析。
这个方法的思路更加简单粗暴 。Alexander Panfilov 提取的是加密数据中保存的原始推理记录,而 Can 得到的是模型当场重新写下的分析草稿,它可能更接近模型的内部推理。
为了验证这个方法是否可行,Can 做了 3 个实验。
Can 先在 GPT-5.6 Luna 上进行了测试。
他给模型挂载的工具的结构非常简单,只有一个用于填写文字的参数。Can 没有告诉模型这份草稿该使用什么格式,也没有要求它模仿 GPT 的内部推理文风。
准备完成后,Can 向 GPT-5.6 Luna 提交了一道复杂的数论题:
模型不仅要判断三个数学命题是否成立,还要给出完整证明、修正错误命题,并处理各种边界情况。这样的题目无法仅凭一句答案完成,模型必须进行大量推导。
结果,即使原生推理已经被关闭,GPT-5.6 Luna 仍然主动调用了 deep_think,并在工具参数中写下了密密麻麻的分析过程。
代码:
更有意思的是,这些内容不是面向用户整理过的通顺解释,而是由大量短句、缩写和跳跃式表达组成,看上去就像只写给自己看的速记草稿。
Can 将这种文风称为 GPT-5.5 之后模型常见的“穴居人语言”。
在确认 GPT-5.6 Luna 会把推理写进工具后,Can 也测试了不同的思考等级。
他分别将模型的原生推理等级设为 off 和 low,再观察模型调用 deep_think 时的表现。结果显示,这套方法在切换推理等级后仍然能够正常工作,模型会继续把分析过程写进外部工具。
Can 解释说,所谓的思考等级,本质上一直是系统提示中的一个数字。改变这个数字,就能影响模型投入多少推理,而不必重新开启厂商提供的隐藏思考通道。
这意味着,开发者不仅能让模型把思考过程换个地方写出来,还可能进一步控制它要思考到什么程度。
在 GPT-5.6 上完成测试后,Can 又把同一套方法用在了 Anthropic 的 Claude Fable 5 上。
他同样关闭了 Fable 5 的原生推理,再给它挂载外部思考工具,并让它处理前面那道需要大量推导的数论题。
结果,Fable 5 也调用了这个工具,在参数中写下了大段分析过程。
代码:
从截图中可以看到,即使推理等级已经被设为 off,模型仍然在外部工具里逐步检查命题、计算例子并组织证明。
对此 Can 调侃说,Anthropic 平时很擅长用正则规则拦截此类内容,但这一次,推理过程依然从另一个出口流了出来。
完成实验后,Can 宣布会将这种方法加入 Oh MyPi的下一个版本。
据更新日志,新版本会增加两项关键功能:一项用于关闭 OpenAI 模型原本的隐藏推理,另一项则为模型提供名为 think 的外部思考工具。
使用时,Pi 会要求模型在回答问题、修改代码或调用其他工具之前,先在 think 中写下分析过程。模型完成推理后,再根据这份草稿执行任务并给出最终答案。
也就是说,Can 把最初的 deep_think 实验,做成了可以在 Oh My Pi 中直接开启的正式功能。用户不需要自己编写 PoC,只要启用 externalThinking,Pi 就会替模型准备一张外部“草稿纸”。
现在 Oh My Pi v17.2.14 已经可以直接使用这个功能。
Can 随后又发布了一个修复版本。因为他发现,Anthropic 和 Google 的部分接口并没有真正关闭原生推理,导致模型可能在内部想一遍,又在 think 工具里写一遍。修复后,模型只需要在外部草稿中完成分析,避免重复消耗。
Oh My Pi 的 GitHub 仓库:
https://github.com/can1357/oh-my-pi
这件事最有意思的地方在于,Can 并没有真正“攻破”什么。
他只是关掉厂商提供的草稿纸,然后递给模型一张新的。模型接过纸,便自然地继续写了起来。
越复杂的安全机制,有时越容易被最朴素的办法绕开。
当然,让模型写出推理过程也是一把双刃剑。对开发者来说,它能帮助定位错误、优化提示词,也能看清模型为什么做出某个决定。
但与此同时,模型也可能把源代码、个人信息甚至账号凭证写进草稿。一旦这些内容进入工具参数和运行日志,就可能被保存、复制,甚至发送给其他服务。
看得见,意味着更容易控制;但也意味着,原本藏在模型内部的信息,开始暴露在更多人和系统面前。
从这一刻开始,大模型安全关注的对象不该只是模型本身,还包括模型周围的整套工具系统。
因为厂商封得住一段隐藏推理,却未必封得住模型通往外部世界的每一条路。