昨天,AI 圈最雷霆的新闻就是:Anthropic 正式宣布封禁 OpenClaw。
OpenClaw 的创始人 Peter 一脸懵逼,说 Anthropic 抄了他们的功能,转手又把他们给封了。
没办法,A ➗ 就是 A ➗,该用还得用 😅
正好前段时间,Claude Code 被一个华人安全研究员直接开源泄密了,所有核心源码全都挂在网上。
当然,这份源码其实有很多东西并没有完全泄露,不过缺失的部分,都可以自己用 Codex 或者 Claude Code 一步一步做出来。
之前我也写了一个超全的本地部署教程,获得了非常多的点赞 👍,感谢大家。
然后这几天我就一直在琢磨一件事:本地 Claude Code 能不能走 OAuth,也就是走 Anthropic 的 Claude 订阅,然后做一个接口给 OpenClaw?
如果能,那就等于给 Claude Code 越狱了。
这时候肯定有朋友会说,你为什么不直接买 API 呢?非要走订阅?
我先把这个问题说清楚。
买过 Anthropic 官方 API 的都懂,走 API 的额度消耗非常高。Claude 官方会员 Pro 一个月 160 元人民币,但如果走 API 跑相同的任务量,可能要上千元。
差距就是这么大。
这也是 Anthropic 必须封禁 OpenClaw 的核心原因:因为 OpenClaw 会走高并发,会带大量的 System Prompt,然后让 Claude Code 去执行任务。 如果用户走 API,Anthropic 是赚钱的。但如果让用户拿订阅的额度去干 API 级别的活,Anthropic 就亏钱了。
简单说就是,订阅本来是给普通 C 端用户设计的,对普通人来说超值,但对 Anthropic 来说是亏本买卖。
所以,很多朋友就特别想用 OpenClaw 去走 Claude Code 的官方订阅。因为便宜啊,一个月 160 块就能干上千块的活 😆
基于这个真实需求,我扮演极客,玩了几天,发现这玩意似乎真能跑通。
当然,能跑通归能跑通,效果还要再说,中间碰到了非常多的坑。但总体来说,链路是走得通的。
⚠️ 声明:本文仅用于学习和技术探索,我不支持任何商业使用,也不推荐大家去商业使用。订阅正版才是合法的!以下内容纯属整活!
先说清楚一件事:官方 Claude Code 到底是怎么封禁 OpenClaw 的?走的什么技术途径?
我高强度摸索了几天,把整个项目跑通之后发现,Anthropic 封禁 OpenClaw 的技术手段非常多,远比我一开始想象的多得多。
核心原因,我大致总结了 三个:
第一,API 请求地址硬编码。
官方 Claude Code 的 API 请求地址是直接写死指向 https://api.anthropic.com 的,没有提供 baseUrl 或类似的配置项,你没办法改成 OpenClaw 的地址。
第二,认证体系完全不兼容。
官方 Claude Code 用的是 Anthropic 自己的认证体系,要么 API Key,要么 OAuth 登录到 Anthropic 账户。它不支持第三方网关的认证方式。OpenClaw 作为中间网关有自己的 Token 和认证逻辑,两边根本对不上。
第三,服务端会检测请求结构和指纹。
这个是我在实际测试的过程中发现的最硬的限制。
Claude Code 的服务端不只是做简单的关键词检测,它在分析整个请求的结构。OpenClaw 的 System Prompt 体积非常大,而 Claude Code 本身的 System Prompt 要小得多。
每次 OpenClaw 调用 Claude Code 的时候,都会把一个巨量的 System Prompt 塞进去。
服务端能检测到这个体积差异,加上工具调用格式、Prompt 结构模式这些特征,等于说,从 OpenClaw 发出的请求里面的所有内容,Anthropic 都能透明地识别出来。

一开始你觉得可能就是做个中间层这么简单,但实际上涉及的东西非常多,非常复杂,中间的坑也多。所以我就一步一步把实际部署的流程给大家看。
首先说下我的工具。我是用官方 Claude Code 来帮我做这件事的,这里推荐大家去用 Superpowers 这个非常有名的 Skill,装上之后整体做项目的能力会强非常多。
你只需要把提示词告诉官方 Claude Code,说:我本地有一个 Claude Code Local 的项目,我想把它与 OpenClaw 进行链接。

这时候它会问你,你希望集成的深度是哪个级别,给出了三个选项。我们用混合模式就够了:

Superpowers 会强制你先把整个项目的方向定下来,这点其实非常重要,尤其是在这种复杂项目里面。
它会问你本地 Claude Code 执行时候的工作目录。你可以默认用 OpenClaw Workspace,也可以自己指定一个目录。但注意,千万不要把这个目录跟你本地的官方 Claude Code 放在同一个目录下,那样会非常麻烦:

三种集成方案里面,我个人比较推荐方案 A——OpenClaw 插件 + CLI 调用:

整个架构我摸索了很久,最终跑出来一个相对成熟的方案,就像下面这张图展示的。

核心思路:在 OpenClaw 和本地 Claude Code 之间搭一个 Bridge 插件(中间层)。OpenClaw 发过来的所有请求,先经过这个中间层做「模拟人类」的净化处理,把 OpenClaw 请求里那些复杂的结构化内容全部过滤掉,转化成像真人在用 Claude Code 一样的干净请求,然后再传给 Anthropic 的官方订阅。

需求:把 Claude Code 开源源码部署到本地,并成功登录 Anthropic 的 Pro 订阅
架构想清楚了,接下来就要面对第一个大问题:开源的 Claude Code 到底怎么接入 Anthropic 的官方订阅?
说实话,这个问题比我一开始想象中难很多。我本来以为开源 Claude Code 可以直接登录 Anthropic 官方订阅,但事实显然没这么简单。
虽然我们有了 Claude Code 的 Src 源代码,但很多脚本和脚手架其实是缺失的。简单说就是,光有源码,你是没办法直接登录 Anthropic 的订阅验证的。
具体缺了什么?列一下:
缺少大量源码模块:contextCollapse、TungstenTool、mcpSkills、SnapshotUpdateDialog、AssistantSessionChooser 等
缺少依赖包:react/compiler-runtime、@anthropic-ai/sandbox-runtime、@anthropic-ai/bedrock-sdk 等
这些缺失的部分,都需要用 Claude Code 或者 Codex 帮你一个一个构建补全,才能「骗」过 Anthropic。
补完之后,坑还没踩完 😅 我在实际跑的过程中,又连续碰到了好几个问题:
坑 1:版本检查拦截
文本模式对话时直接报错 "your version needs an update (0.1.0-local → 1.0.24+)"。原因是源码中 autoUpdater.ts 会向 Anthropic 服务端检查最低版本。解决办法很简单,把本地构建的版本号改高,绕过这道检查。
坑 2:429 错误
一直碰到 429 裸错误,排查后发现是缺少计费归因字符串。解决办法:在 Claude Code 的请求头里注入 x-anthropic-billing-header。
坑 3:OAuth 不支持
出现 OAuth 不支持的报错,原因是缺少 oauth-2025-04-20 Beta 头。解决办法:强制注入该 Beta 头,同时伪装一个 HTTP 请求头指纹。
忙活了整整 1 个小时,总算把这些坑全填完了 😮💨
现在,我们就可以让本地 Claude Code 走浏览器,自动获取 OAuth Token:

跳转到浏览器进行授权:

搞定!
现在我们就可以用本地 Claude Code 登录 Anthropic 的 Pro 订阅了(ps. 右侧是我在本地 CC 里养的马里奥 🍄):

想确认是否完全走通,可以通过官方 CC 或者 Codex 跑个测试验证一下:


需求:让 OpenClaw 通过本地 CC 走 Anthropic 订阅(而不走 API 计费)
本地 CC 跑通之后,下一步就是搞清楚:到底 Anthropic 是怎么检测到 OpenClaw 的?
一开始,很多人包括我自己都以为,Anthropic 只是检测 OpenClaw 的 Client ID,毕竟那玩意是会发送到 Anthropic 服务器端的。但当我实际测试之后发现,请求内容本身就会被服务器审查。
OpenClaw 这家伙,不管是自己的 Client ID 还是日常请求的格式,都明显地写着「我是第三方」。说句不好听的,MD,不封你封谁 😂

简单来说就是:你发给 OpenClaw 一句「帮我做个 HTML 网页」,OpenClaw 转给 Claude Code 的,可能是一大坨超级 OpenClaw 式的结构化提示词,还附带大量的工具调用请求。你本来说了一句人话,它帮你翻译成了一篇论文 😅

而且 OpenClaw 自身的工具调用格式跟 Anthropic 的还不一样。我去问了下我的 AI 工程师朋友,他确认了这个问题:

这就导致 OpenClaw 身上几乎所有的线索:Client ID、System Prompt 体积、工具调用格式,都会被 Anthropic 的服务端审查到:

所以结论很明确了:我们要做的中间接口层,必须把 OpenClaw 的请求净化得足够干净,然后一点一点往上面加功能。
我一开始直接把接口层做得过滤性非常强,基本只保留纯文本的传输能力。比如你跟 OpenClaw 的文本对话、让它写代码,这些可以走通:

不过,用官方 CC 或者 Codex 来做这个 Human Proxy 接口层还是比较简单的。核心要求就三个:构建 CC 风格的干净请求、加一个限速器、把 OpenClaw 转过来的请求净化干净。 用 Superpowers Skill 来搭建的话非常快,整个模块的逻辑并不复杂:

但这样做也有比较大的代价,你必须净化得足够干净。比如工具调用,我一开始就全部给过滤掉了,一堆比较复杂的任务请求也被简化了很多。
当然,这些后期都可以慢慢试,一点一点往上加。比如可以把 OpenClaw 的工具定义替换为 CC 官方的工具定义格式,再转发出去。这样既能用工具,又能保持 CC 的伪装:

模拟人类接口层搭好后,就可以让官方 CC 和 Codex 直接帮我跑通了。中间还会遇到各种测试问题,但问题不大。。。。。都能快速解决:

来,看看最终效果。我通过 OpenClaw 发了句「你好」,走本地 CC,最后成功返回了回复:

最后,整个完整的数据流是这样的:OpenClaw 发送请求 → 模拟人类接口层净化 → 本地 CC → 走 Anthropic 官方订阅 → 返回内容给 OpenClaw:

走完这一趟流程,前前后后花了我 3-4 个小时,反复定位问题,解决问题。
最终,算是跑通了。
但完整看下来,你会发现几个现实问题:
第一,净化层越强,能力损失越大。
模拟人类接口层的净化能力必须足够强,才能骗过 Anthropic 的服务端检测。但净化得太狠,OpenClaw 的很多高级功能(工具调用、复杂任务编排)就用不了了。这两者之间的平衡,需要你自己一点点去试。
第二,Anthropic 随时可能彻底封死。
Anthropic 大概率已经察觉到了这条路径。现在还没有完全封禁,可能只是暂时留了个口子,之后很有可能直接堵死这个入口。
第三,cch 验证是个定时炸弹。
我现在跟官方 CC 对话、用本地 CC 都正常,说明服务端目前没有强制验证 cch(Claude Code Hash)。但一旦 Anthropic 打开这个开关,所有非官方编译的 CC 都会瞬间失效。
除此之外,还有非常多非常多的坑,虽然我跑通了,但是极不稳定。。。
折腾完这一大圈,我最大的感受是:Anthropic 在安全检测这块做得是真细。从 API 地址硬编码、到认证体系隔离、再到请求指纹检测,层层设防。想绕过去,每一层都是坑。
这篇文章纯粹是一次探索的搞活记录。能跑通,说明技术上有可行性,虽然微乎其微,但还是有的。但从实用角度看,这条路的维护成本很高,Anthropic 随时一个更新就能封死。
所以,我最终的建议还是:老老实实走 API 玩 OpenClaw 吧,要不然搞这个,我都怕 A ➗ 给我电脑定位封号。API 省心省力,也是对好产品的尊重 🫡
⚠️ 再次声明:本文仅用于学习和技术探索。不支持、不推荐任何商业使用。
看到这里,辛苦啦。
感谢你的阅读和「在场」!
文章来自于微信公众号 "AI Humanist by杉森楠",作者 "AI Humanist by杉森楠"