Claude Code 这东西,用过的都知道,终端里跑起来确实爽,但真正干活的时候问题也一堆:官方订阅限制多、按量计费贵、某些模型在特定区域或组织策略下根本调不动,更别提想接 DeepSeek 这类第三方模型时那一堆版本兼容报错了。我最初也是被 "deepseek-v4-pro" is not a model this version of claude code recognizes 这类错误折腾到头皮发麻,后来换了 Antigravity 做模型反代,才算把 Claude Code 从“官方限定模型”里解放出来。这篇文章就围绕 Antigravity 模型反代 Claude Code 的完整链路,把我踩过的坑、验证过的配置、能直接抄作业的步骤都写清楚。
这篇内容适合谁看?如果你在用 Claude Code 的 CLI、桌面版或 VSCode 插件,想接 DeepSeek、OpenRouter 或者自建模型网关,又不想被模型名称、订阅策略、环境变量这些问题卡住,那这篇就是给你准备的。整体包含三部分:为什么要做模型反代、Antigravity 的完整配置流程、高频报错的定位思路与解决方案。最后一节还会讲几个进阶玩法,比如多 Provider 自动切换、自定义 Model Mapping、本地模型的接入方式。
1. 为什么 Claude Code 需要“模型反代”
很多人第一次听说“Antigravity 模型反代”时,第一反应是:Claude Code 不是官方已经支持各种模型了吗,为什么还要多此一举?这个想法我一开始也有,直到我在生产环境里连续踩了几次跟模型接入相关的坑,才明白“官方支持”和“实际可用”之间隔着一大堆隐性问题。
1.1 默认模型接入方式的三道坎
Claude Code 早期最主要的使用方式就是登录 Claude 账号,走官方订阅或 API 计费。这种方式看着简单,实际操作中会碰到三道坎:
第一道坎是账号策略和区域限制。我身边不少同事在配置时遇到过 Your organization has disabled Claude subscription access for Claude Code 这类报错。这不是你的配置写错了,而是组织层面的订阅策略限定了 Claude Code 的访问权限,而且这类限制你根本绕不过去,唯一可行的路径就是换一种模型接入方式。
第二道坎是模型固定死。官方默认情况下,Claude Code 只会识别 Anropaic 官方的那几个模型名称,比如 claude-sonnet-4-5、claude-opus-4-1。想接 DeepSeek、想接开源模型,不好意思,CLI 层面没有直接入口,它压根不认这些第三方模型名。热搜里那个 "deepseek-v4-pro" is not a model this version of claude code recognizes 就是典型的例子。
第三道坎是计费和配额问题。官方按量计费的项目一旦进入高强度使用,费用飙升得很快。很多开发者并不需要每次对话都调用最顶级的模型,但如果 CLI 只认官方模型,你就很难把任务拆分到不同价位的模型上。
1.2 模型反代到底反的是什么
开聊配置之前,先把概念理清楚,否则后面很容易被各类关键词绕晕。
“模型反代”这个词在 Claude Code 的语境里,说的是:不直接让 Claude Code 去连官方模型接口,而是把请求转发到一个中间网关,由这个网关帮你决定最终调用哪个模型、走哪个供应商的 API。
我用一个通俗的例子解释:Claude Code 就像一个只收指定品牌外卖的顾客。原生的它只认官方菜单,第三方模型就像另一家餐厅的菜,直接端到它面前它不认。Antigravity 这样的模型反代工具,相当于一个中转餐厅:顾客还是照常下馆子,但菜已经从别家做好送过来了,顾客只看到“我的菜到了”,并不知道也根本不在乎菜到底是谁做的。
正因为中间多了这一层,你就能在完全不改 Claude Code 主程序的前提下,让同一套 CLI 工具分别调用 DeepSeek、OpenRouter 上的模型、甚至你自己部署的本地模型,只要你把模型名映射关系配置好。
1.3 Antigravity 在整条链路里的位置
Antigravity 官方一贯的定位是“模型网关”,不是单纯的“代理工具”。它最大的特点是在支持标准模型转发的基础上,自带了一套模型名映射机制,能把你配置的别名翻译成各个供应商真正能识别的模型名。
所以整套链路是这样的:
text复制Claude Code (CLI / Desktop / VSCode 插件)
↓
Antigravity 网关(模型名映射 + API 转发)
↓
DeepSeek / OpenRouter / 本地模型 / 官方 API
Claude Code 不需要知道自己连的是谁,它只认一个 Base URL 和一个 API Key,剩下的都由 Antigravity 解决。这也是为什么很多人在搞 claude code 接入 deepseek、openrouter 通过 cc-switch 接入 claude code 时,最终都会落到 Antigravity 这类网关工具上 —— 因为它把最麻烦的兼容层拆掉了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 动手之前的环境准备与工具清单
工欲善其事,必先利其器。配置 Antigravity 模型反代需要准备的东西不多,但每一样都有讲究。我见过太多人配置失败,不是因为步骤复杂,而是因为前置工具版本不对或者环境变量没配好。这一节把完整清单和细节列出来。
2.1 安装 Claude Code:CLI、桌面端、VSCode 插件三选一还是全都要
Claude Code 的安装方式主要分三路:命令行工具、桌面客户端、VSCode 插件。三者底层共用同一套配置体系,所以你可以只装一个,也可以全装,配置是互通的。不过实际体验下来,我建议至少先把 CLI 装好,因为后续验证模型反代是否生效,CLI 是最直接的调试入口。
CLI 的安装依赖 Node.js 环境,建议 Node 版本不低于 18。安装过程用 npm 全局安装即可,Windows、macOS、Linux 三平台通用:
bash复制npm install -g @anthropic-ai/claude-code
装完以后执行 claude --version 验证是否成功。如果提示 command not found,Windows 用户需要检查 npm 全局 bin 目录是否加入了 PATH,macOS/Linux 用户则要确认 npm 全局目录的权限。
桌面版的安装路径比较特殊,官方目前主要提供 Windows 和 macOS 的安装包,下载解压以后按提示完成安装。桌面版好处是图形化操作,能直观看到配置状态,但它的界面本质上还是包了一层 CLI,所以 CLI 配好的模型反代在桌面版里同样生效,不需要重复配置。
VSCode 插件直接去插件市场搜 "Claude Code for VSCode",安装后会在侧边栏多出一个面板。这里有一个非常容易踩的坑:VSCode 插件有时会读到它自己的一套环境变量,而不是系统全局的。你发现终端里 claude 跑得好好的,VSCode 里却总报模型不识别,大概率就是这个原因。解决办法我放在第 4 节专门讲。
2.2 准备 Antigravity 网关信息
要使用 Antigravity 做模型反代,你得先有一个可用的网关入口。常见的有两种来源:
一种是官方提供的在线网关服务。注册账号、创建一个网关实例之后,你会拿到一个 Base URL,类似:
text复制https://your-gateway.example.com/v1
另一种是自建方式。Antigravity 支持通过 CLI 下载并本地部署,这就是热搜里 antigravity cli 下载 的由来。本地部署的好处是数据链路完全可控,响应延迟也更低。下载安装完以后,直接启动:
bash复制antigravity start
启动成功后终端会输出一个本地地址,通常形态是 http://127.0.0.1:8787,这就是你后续要填给 Claude Code 的 Base URL。
不管用哪种方式,都要注意确认网关的鉴权方式。大多数情况下需要配一个 API Key,这个 Key 是网关自己生成的,跟 Claude 官方 Key 完全无关。拿到之后记下来,后面配置 Claude Code 时要填。
2.3 准备一个能用的模型供应商 Key
反代网关本身不算模型,真正干活的是后端模型。所以你得至少有一个模型供应商的 API Key,比如:
- DeepSeek 开放平台的 Key,适合低成本跑代码和一般问答
- OpenRouter 的 Key,一个 Key 可以切换海量模型,适合需要灵活切换模型场景
- 本地模型服务地址,比如 Ollama 的
http://127.0.0.1:11434,适合完全离线场景
注意,这一步很多人会忽略一个细节:你手里这个 Key 必须支持目标模型的访问权限。举个真实例子,我最初拿 DeepSeek 的 Key 去调某个第三方微调模型,结果模型名写对了但权限不足,网关返回 401,排查半天才发现是这个模型不在该 Key 的授权范围之内。所以准备 Key 时务必看清楚对应的模型列表。
2.4 安装 cc-switch 这类配置切换工具
说到这里顺便提一句 cc-switch。它是社区里常用的 Claude Code 配置切换工具,作用是把多套供应商配置存成配置集,一键来回切换,避免频繁手改环境变量。热搜里 claude code 搭配 cc-switch、openrouter 通过 cc-switch 接入 claude code 说的都是这个玩法。
cc-switch 的安装不复杂,直接从它的仓库下载对应平台的可执行文件,或通过包管理器安装。装完后它会读取 Claude Code 的本地配置目录,并提供图形界面让你新建 Provider、填 Base URL 和 API Key。它不是反代工具本身,而是配置管理工具,和 Antigravity 是配合关系而不是替代关系。
3. 核心配置:把 Antigravity 反代接入 Claude Code
环境准备好以后,真正的重头戏来了。把 Antigravity 网关配置进 Claude Code,主要有三种方式:环境变量、配置文件、cc-switch 图形化切换。三种方式最终都会落到同一个配置逻辑上,但你实际用的时候最好理解它们各自的适用场景,避免在错误的地方改配置导致不生效。
3.1 方式一:环境变量速配(最简单,适合验证)
环境变量是最直接的方式,适合第一次接触、想快速验证反代链路通不通的场景。Claude Code 会读两个关键环境变量:
bash复制export ANTHROPIC_BASE_URL="http://127.0.0.1:8787"
export ANTHROPIC_AUTH_TOKEN="你的网关Key"
export ANTHROPIC_MODEL="deepseek-v4-pro"
设置完以后,直接在当前终端跑 claude,Claude Code 就会把请求发到 127.0.0.1:8787,也就是 Antigravity 网关。
这里有个细节容易瞒过去:ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 是有区别的。实测下来,网关类场景用 ANTHROPIC_AUTH_TOKEN 更稳定,因为很多网关在鉴权时用的是 Authorization: Bearer <token> 格式,而不是 API 专用密钥格式。如果配完发现 401,先检查一下是不是把变量名写混了。
3.2 方式二:settings.json 持久化配置(推荐日常使用)
环境变量的缺点是仅在当前终端会话生效,关掉终端就没了,总不能每次都 export。更稳妥的做法是写入 Claude Code 的配置文件 settings.json。
这个文件的位置按系统区分:
- Windows:
%USERPROFILE%\.claude\settings.json - macOS/Linux:
~/.claude/settings.json
如果 ~/.claude 目录不存在就手动创建。文件内容如下:
json复制{
"env": {
"ANTHROPIC_BASE_URL": "http://127.0.0.1:8787",
"ANTHROPIC_AUTH_TOKEN": "你的网关Key",
"ANTHROPIC_MODEL": "deepseek-v4-pro",
"ANTHROPIC_SMALL_FAST_MODEL": "deepseek-v4-flash"
}
}
重点解释一下最后两个字段:ANTHROPIC_MODEL 和 ANTHROPIC_SMALL_FAST_MODEL。前者是主模型,处理复杂对话;后者是小模型,用于 Claude Code 内部的轻量任务,比如生成标题、补全标签这类耗时短的操作。很多人不配置后者,导致小模型也去调用昂贵的大模型,费用翻倍还不自知。
配置完成后,重启 Claude Code,用 /status 命令查看当前的模型和 API 地址,确认是否已经指向反代网关。
3.3 方式三:cc-switch 一键切换(适合多 Provider 场景)
如果你有多套供应商配置,比如 DeepSeek 一套、OpenRouter 一套、官方 API 一套,手改 settings.json 会很痛苦。cc-switch 的价值就在这里。
操作逻辑大致是这样:打开 cc-switch 后新建一个 Provider,名称随便起,把 Base URL、API Key、模型名填进去,保存;再新建另一个 Provider,填入另一套信息;需要切换时在 cc-switch 里点一下目标配置,它会自动改写 settings.json 并帮你重启 Claude Code。
我个人的习惯是:网关本身固定用 Antigravity,但网关后端的模型供应商可能随时切换。这种情况下不要在 cc-switch 里保存多个互不相干的 Base URL,而是只保存一个 Antigravity 网关配置,把后端模型的切换交给 Antigravity 自己的路由规则。这样逻辑更清晰,不会出现“A 配置里带了 B 的模型名”这种混乱。
3.4 验证配置是否生效的完整步骤
配置完以后,别急着开干,先验证三步:
第一步,检查网络通路。直接 curl 一下网关地址,确认能通而且鉴权正常:
bash复制curl http://127.0.0.1:8787/v1/models \
-H "Authorization: Bearer 你的网关Key"
这一步能看到网关返回的模型列表,如果连这一步都过不去,后面 Claude Code 肯定也起不来。
第二步,在 Claude Code 里输入 /status,查看输出信息。重点看模型名称是不是你预期的那个,Base URL 是不是指向 Antigravity。
第三步,直接问一个简单问题,比如“1+1 等于几”,并在 Antigravity 网关的日志里确认收到了请求。如果能看到请求进来并成功返回,说明整条链路已经打通。
验证过程中最常见的误判是:明明配置写对了,但终端输出的模型名还是官方模型。这个问题多半是因为终端里启动了旧的 Claude Code 进程,它读取的是启动时快照的环境变量。解决办法是彻底退出终端窗口再重新打开,或者执行 claude --reset 清空当前会话。
4. 高频报错的完整排查链路
Antigravity 反代配置起来不难,真正让人头大的是千奇百怪的报错。我在群里看大家讨论,发现高频问题主要集中在五个方向,这节我把每个问题的排查链路完整拉出来,而不是直接甩结论。
4.1 报错一:"deepseek-v4-pro" is not a model this version of claude code recognizes
这个报错的搜索引擎出现频率极高,基本上等于“Claude Code 接入 DeepSeek”的必经之路。
先说根因:Claude Code 新版本加入了一个模型白名单校验机制,它只允许通过它认可的模型名。当你填了一个它没见过的模型名,它会直接拒绝,而不是把请求转发给网关。这个校验发生在请求发出去之前,所以哪怕你的 Antigravity 网关能正常处理 deepseek-v4-pro,Claude Code 自己这一关都过不了。
但这里有个非常反直觉的事实:这个“白名单”真的只是字面白名单,某些版本里换个写法就过了。我实测过几种处理办法,按优先级排列:
第一种,用环境变量覆盖。有时新版本 CLI 会放宽对 ANTHROPIC_MODEL 的校验,尤其是在非交互式终端里。把你想要的模型名写进环境变量,绕开 settings.json 的模型选择逻辑。
第二种,用网关自带的“模型映射别名”功能。Antigravity 支持把请求中的模型名改写后再转发到后端,但这里的“改写”作用方向相反:不是把 deepseek-v4-pro 改写掉,而是让 Claude Code 以为你在用它的白名单模型。
具体做法是:在 Claude Code 配置里填 ANTHROPIC_MODEL=claude-sonnet-4-5,然后在 Antigravity 网关里配置一个映射规则,把 claude-sonnet-4-5 映射到真正的后端模型 deepseek-v4-pro。这样从 Claude Code 视角看,它请求的是合法白名单模型;从网关视角看,它把这个名字翻译成目标模型名再去调 DeepSeek 接口。两边都满意。
第三种,升级 Claude Code 版本。有些版本的模型校验逻辑是有 bug 的,新版本会有所缓解。用 claude update 更新到最新版,有时候报错就消失了。
4.2 报错二:529 与 Your organization has disabled Claude subscription access
529 这个错误码,用过的应该都不陌生。主要表现为两种场景:一种是完全随机地报错,刚发一句话就断;另一种是持续报错,根本进不了对话。
先说随机断连的情况。Claude Code 官方 API 在高并发或余额不足时会对请求做限流,返回 529 代表“服务器过载”。但如果你的请求走的是 Antigravity 网关,529 的锅可能不在官方,而在网关后端供应商的限流策略。排查时先去 Antigravity 的日志里看后端返回的具体错误码,如果后端返回 429,说明是供应商限流,需要降低请求频率或切换供应商;如果后端返回 529,那才轮到官方层面的限流问题。
另一类 Your organization has disabled Claude subscription access for Claude Code 报错,根因是订阅账号的组织策略,不是本地配置问题。这种情况你配什么环境变量都没用,因为请求在到达模型之前就被订阅系统拦截了。正确做法是彻底切换到用 API Key + 网关注入的链路,不走订阅通道。也就是把 ANTHROPIC_AUTH_TOKEN 配成网关的 Key,而不是用 claude login 登录订阅账号。
4.3 报错三:Antigravity 登录不上、CLI 下载慢
热搜词里 antigravity 登录不上 和 antigravity cli 下载 出现的频率很高。Antigravity CLI 下载慢的问题,多半是下载源带宽问题。解决办法很简单:优先从官方 GitHub Releases 页面下载对应平台的压缩包,不要用包管理器安装脚本,因为脚本默认走境外 CDN,速度不稳定。
至于登录不上,这个要分两种情况看。一种是账号密码正确但提示登录失败,先检查系统时间是否准确,时间偏移超过两分钟会导致鉴权 token 校验失败。另一种是登录接口能通,但一直转圈,大概率是本地网络和登录服务之间的连接不稳定。此时可以等几分钟再试,或用命令行方式手动设置 token,跳过图形登录流程。
4.4 报错四:VSCode 插件和 CLI 配置不一致
VSCode 插件的模型反代配置和 CLI 不完全共享一套环境变量,这是最容易出现“终端好使、插件不好使”的原因。插件的启动方式决定了它可能继承的是 VSCode 进程的环境变量,而不是你终端里 export 的那份。
解决办法有两种:
第一种,在 VSCode 的 settings.json 里直接给插件配置环境变量:
json复制{
"claude-code.env": {
"ANTHROPIC_BASE_URL": "http://127.0.0.1:8787",
"ANTHROPIC_AUTH_TOKEN": "你的网关Key",
"ANTHROPIC_MODEL": "deepseek-v4-pro"
}
}
第二种,在系统级别配置环境变量,添加到 ~/.claude/settings.json 的 env 字段里,这样无论 CLI、桌面版还是插件读取的都是同一份配置。
4.5 一个容易被忽略的模型名映射问题
deepseek-v4-flash 和 deepseek-v4-pro 这类模型名,如果出现在 Antigravity 的日志里显示“模型不存在”,先别急着骂网关,问题大概率出在后端供应商的模型列表里没有这个名字。DeepSeek 开放平台的实际模型名可能是 deepseek-chat、deepseek-reasoner 这类命名,而 deepseek-v4-pro 可能是网关自定义别名或社区通用叫法。
正确做法是在 Antigravity 网关的模型管理页里,查看它默认支持哪些模型名,然后以那个为准。如果你坚持要用社区叫法,就在网关里手动新建一个模型映射,把 deepseek-v4-pro 指到供应商真实模型名上。
5. 进阶玩法:更顺手的日常使用技巧
配置通了以后,接下来就是怎么把它用到顺手的问题。我把自己用了很久的几个技巧整理了一下,都属于“官方文档不会细讲但实际体验提升明显”的内容。
5.1 让 Claude Code 回复中文
Claude Code 默认回复语言受系统提示词影响,中文环境下大概率是中文,但偶尔会抽风切英文。不用每次对话都加“请用中文回答”,直接在 ~/.claude/CLAUDE.md 文件里加一句:
markdown复制- 始终用中文回复用户。
这个文件是 Claude Code 的全局系统指令,每次对话都会自动加载。它不仅能控制语言,还可以写入你常用的编码规范、项目偏好、命令习惯,相当于给 Claude Code 定制了一套行为准则。
5.2 用 Skill 机制减少重复劳动
Claude Code 的 Skill 机制可以理解为“可复用的技能包”,类似给模型预置了一套特定任务的提示词和工作流。比如你经常让它制作 PPT 大纲、生成代码提交信息、总结会议纪要,就可以把这些任务的固定套路写进 Skill 文件,后续调用时直接在对话里引用技能名即可。
Skill 的存放位置一般是 ~/.claude/skills/ 目录,每个技能一个子文件夹,里面包含 SKILL.md 文件。写法上不必复杂,关键是把触发场景、执行步骤、输出格式写清楚:
markdown复制---
name: ppt-outline
description: 根据主题生成 PPT 大纲,包含页数、标题和每页要点
---
当用户要求制作 PPT 时,按以下步骤执行:
1. 先确认 PPT 的使用场景(汇报/授课/路演)
2. 生成大纲,包含封面、目录、正文章节、结尾
3. 每页给出标题和 3-5 个要点
4. 输出格式为 Markdown 列表
配好 Skill 以后,Claude Code 在处理相关任务时会自动调用,不用你再写一长串提示词。
5.3 给 Claude Code 设置命令行快捷方式
在 Windows 上,如果你觉得每次打开终端输 claude 都有点繁琐,可以做一个快捷方式指向 claude.exe,甚至可以直接创建一个启动脚本,打开后自动进入项目目录并启动 Claude Code:
bat复制@echo off
cd /d D:\projects\my-app
claude
macOS/Linux 用户则可以在 shell 配置里加一个 alias:
bash复制alias cc="claude"
这样在任意目录敲 cc 就能进入对话界面。配合 Antigravity 的模型反代,无论你在哪个项目里,都能用同一套入口访问不同后端模型。
5.4 用好 Antigravity 的多路由能力
很多人用 Antigravity 只配了一个后端,其实它的多路由能力才是真正提升体验的地方。在 Antigravity 网关里,你可以配置多套路由规则:比如把代码生成类的请求全部转发到 DeepSeek 快速模型,把长文本分析类的请求转发到更强大的推理模型;或者当某个供应商的 API 挂了,自动 fallback 到另一个供应商。
路由规则一般按请求特征匹配,比如模型名、请求类型、上下文长度等。我实际使用时会把主模型配成高质量模型,把 ANTHROPIC_SMALL_FAST_MODEL 配成低成本快速模型,这样 Claude Code 内部的轻量操作既快又便宜,而真正复杂的对话才动用大模型。
5.5 关于本地离线部署的补充
热搜词里有 claude code 本地离线部署,这个也简单说一下。如果你已经完全脱离外部 API,完全可以接入本地模型服务。把 Antigravity 的后端指向本地模型的地址,比如 Ollama 默认的 http://127.0.0.1:11434,然后在 Antigravity 里做好模型映射,Claude Code 本身不需要新装任何东西。
本地部署的好处是隐私性高、无网络波动、不计费,但硬件要求也高,尤其是想要流畅代码补全体验的话,模型参数至少要在 70B 级别,否则生成质量会明显打折。我个人的建议是:日常高强度使用还是走云端 API 为主,本地模型可以作为断网环境下的备用方案。
最后分享一个我自己的经验细节:Antigravity 配置完成之后,第一次测试不要用复杂任务,先做一次简单的模型连通性测试,确认请求能出去、响应能回来,再逐步上真实任务。这样出现问题的时候,你至少能确定是网关层、模型层还是 Claude Code 层出的错,而不是一团乱麻地瞎猜。还有一点,改了配置以后如果发现不生效,绝大多数情况下不是配置本身写错,而是进程没有重新读取配置,先重启再排查,能省掉至少一半的无效工时。
