1. 为什么要在 VScode 里同时接三个模型
先说清楚这套环境到底解决什么问题。VScode 里同时接入 claude code、codex 和 deepseek,本质上是把三种不同性格的模型放进同一个工作区,让它们各干各擅长的活。claude code 擅长读整个仓库、跨文件改代码、按自然语言指令做重构;codex 更偏向补全和单文件级别的快速生成;deepseek 则在中文语境、长上下文推理和成本控制上有优势。单独用其中一个,你总会遇到「这个任务它不擅长」的时刻,而 Agent 协作开发环境的价值就在于可切换、可接力。
适合谁?适合已经会用 VScode、写过一点 Node 项目、但被各种 API Key 和 Base URL 搞晕的开发者。你不需要懂模型底层,只要会改 JSON 配置、会在终端敲命令就行。我试过把这套环境搭在一台 Windows 机器上,从零到三个模型都能跑通,中间踩的坑基本都集中在环境变量和终端外壳上,下面会一个个拆开讲。
核心检索词先摆出来:VScode 多模型协作、claude code 配置、codex 接入、deepseek API、Agent 开发环境。这几个词贯穿全文,你照着做就能得到一个可切换的 Agent 工作区。
整体思路分三层。第一层是运行外壳,也就是 Node.js、npm、Git for Windows 这些基础依赖,缺一个后面全报错。第二层是模型接入层,claude code 走环境变量,codex 走 auth.json,deepseek 既可以单独调也可以作为 claude code 的后端。第三层是统一入口层,用 TaoToken 把 API Key 和请求地址收口,避免每个工具各配一套、换 Key 时到处改。
为什么要统一入口?因为三个工具各自读 Key 的方式不一样。claude code 读ANTHROPIC_AUTH_TOKEN,codex 读~/.codex/auth.json,deepseek 原生 SDK 读DEEPSEEK_API_KEY。如果你每个都直连官方,Key 散落在三四个地方,轮换一次要改半天。用 TaoToken 做统一入口后,Base URL 指向同一个地址,Key 也只用维护一份,切换模型只改 Model ID 就行。
这一章先把场景和分层讲透,下一章进入 TaoToken 的前置准备。你如果现在终端里npm -v还报「无法将 npm 项识别为 cmdlet」,先别急着往下配模型,回到第二章把 Node.js 装好,否则后面每一步都会卡在同一个地方。
2. TaoToken 前置准备与 API Key 获取
这一章解决「Key 从哪来、地址填什么」的问题。TaoToken 在这里的角色是统一请求入口,你注册后拿到一个 API Key,所有模型请求都通过它转发,Base URL 统一填https://taotoken.net/api。注意这个地址不带任何查询参数,配置里原样写就行。
第一步,打开官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 注册账号。注册流程很常规,邮箱加密码,验证后进控制台。
第二步,进控制台创建 API Key。地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite 。在「API Keys」页面点新建,复制出来的 Key 形如sk-开头的一长串。这个 Key 只显示一次,先粘到记事本里存好。
第三步,确认你要用的 Model ID。这一步很关键,因为 claude code、codex、deepseek 三类模型在 TaoToken 里的模型名不一样。你可以在模型对话页 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 里先手动发一条消息,确认某个模型名可用,再写进配置。常见的对应关系是:claude 系列用claude-sonnet-4-5这类名字,deepseek 用deepseek-chat和deepseek-reasoner,codex 走 OpenAI 兼容格式时用gpt-5-codex之类的名字。具体以你控制台里列出的为准,别照抄网上的旧名字。
第四步,把 Key 写进系统环境变量,而不是只写在某个终端里。Windows 下用「系统属性 → 环境变量 → 用户变量」新建一个TAOTOKEN_API_KEY,值就是你的 Key。这样新开的终端都能读到,不用每次手动$env:设一遍。这一步是很多人后面报「Not logged in」的根因——他们只在当前终端设了变量,换个窗口就丢了。
关于 Key 的安全,提醒一句:不要把 Key 硬编码进提交到 Git 的配置文件。settings.json 里如果必须写,用环境变量引用,或者放在不纳入版本控制的本地文件里。TaoToken 的 Key 权限和额度可以在控制台随时吊销重建,所以万一泄露,第一时间去控制台删掉重建即可。
前置准备到这里就齐了:一个 TaoToken API Key、一个确认可用的 Model ID、一个写进系统环境变量的变量名。下一章进入真正的可复制配置,我会给出 settings.json、codex 的 auth.json 和 claude code 的环境变量三件套,路径和字段都按实际能跑通的写法来。
3. 可复制配置:settings.json 与三件套
这一章是全文最核心的部分,所有片段都可以直接复制。先讲 VScode 的 settings.json,再讲 claude code 的环境变量,最后讲 codex 的 auth.json。三件套指的是 Base URL、Key、Model ID,任何一个工具接入都要凑齐这三样。
3.1 VScode settings.json 片段
VScode 的 settings.json 路径在 Windows 下是%APPDATA%\Code\User\settings.json,macOS 和 Linux 在~/.config/Code/User/settings.json。用Ctrl+Shift+P输入「Open User Settings (JSON)」也能直接打开。下面这段配置做了两件事:把终端默认设为 PowerShell 7(避免老 PowerShell 的脚本策略问题),以及给集成终端注入模型相关的环境变量。
{ "terminal.integrated.defaultProfile.windows": "PowerShell", "terminal.integrated.env.windows": { "TAOTOKEN_API_KEY": "sk-你的TaoToken密钥", "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-5", "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5", "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-1", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5" }, "terminal.integrated.env.linux": { "TAOTOKEN_API_KEY": "sk-你的TaoToken密钥", "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-5" } }注意ANTHROPIC_BASE_URL填的是https://taotoken.net/api,不带任何后缀。ANTHROPIC_AUTH_TOKEN和TAOTOKEN_API_KEY值相同,前者是 claude code 认的变量名,后者是你自己留的备份。Model ID 按你控制台里实际有的写,上面几个只是示例。
3.2 claude code 环境变量三件套
claude code 在 Windows 上需要 Git for Windows 或 PowerShell 7 作为运行外壳。装好之后,在 VScode 集成终端里执行下面这组命令验证。如果你已经把变量写进 settings.json,新开终端会自动带上;如果没带,手动设一遍:
$env:ANTHROPIC_BASE_URL = "https://taotoken.net/api" $env:ANTHROPIC_AUTH_TOKEN = "sk-你的TaoToken密钥" $env:ANTHROPIC_MODEL = "claude-sonnet-4-5" claude.cmd -p "回复 ok"三件套对应关系:Base URL 是ANTHROPIC_BASE_URL,Key 是ANTHROPIC_AUTH_TOKEN,Model ID 是ANTHROPIC_MODEL。三个都齐了,claude code 才知道往哪发、用什么身份、调哪个模型。
3.3 codex 的 auth.json 配置
codex 读的是~/.codex/auth.json,Windows 下是C:\Users\你的用户名\.codex\auth.json。如果目录不存在就手动建。文件内容如下:
{ "OPENAI_API_KEY": "sk-你的TaoToken密钥", "OPENAI_BASE_URL": "https://taotoken.net/api", "model": "gpt-5-codex" }同样三件套:Base URL 是OPENAI_BASE_URL,Key 是OPENAI_API_KEY,Model ID 是model字段。codex 走 OpenAI 兼容格式,所以字段名和 claude code 不一样,别混用。
3.4 deepseek 作为 claude code 后端
如果你想让 claude code 直接走 deepseek 模型,把环境变量换成 deepseek 的 Model ID 即可,Base URL 仍然指向 TaoToken:
$env:ANTHROPIC_BASE_URL = "https://taotoken.net/api" $env:ANTHROPIC_AUTH_TOKEN = "sk-你的TaoToken密钥" $env:ANTHROPIC_MODEL = "deepseek-chat" $env:ANTHROPIC_DEFAULT_OPUS_MODEL = "deepseek-reasoner" claude.cmd -p "回复 ok"这样 claude code 的交互界面不变,底层换成了 deepseek。切换模型只改ANTHROPIC_MODEL一行,这就是统一入口的好处。
配置写完记得重启 VScode,让 settings.json 生效。下一章进入验证环节,我会演示一次多模型接力完成代码任务的完整流程。
4. 验证请求与多模型接力实测
配置写完不算完,得跑通才算数。这一章先做单模型验证,再做一次多模型接力,最后给出成功结果的判断标准。
4.1 单模型连通性验证
先验证 claude code 能不能通。在 VScode 集成终端执行:
claude.cmd -p "用一句话说明什么是递归"如果返回一段正常的中文解释,说明 Base URL、Key、Model ID 三件套都对了。如果报401,是 Key 错了;报Not logged in,是环境变量没读到;报402 Insufficient Balance,是账户余额问题,不是配置问题。
再验证 codex:
codex exec "print('hello')"codex 会读~/.codex/auth.json,返回正常输出就说明通了。
4.2 多模型接力完成代码任务
接力流程设计成这样:让 claude code 读仓库并生成一个函数,让 deepseek 做中文注释和边界检查,让 codex 补全单元测试。三步走。
第一步,claude code 生成函数。在项目根目录执行:
claude.cmd -p "读取当前目录的 utils.py,新增一个函数 parse_config(path),解析 JSON 配置文件并返回 dict,处理文件不存在的情况"claude code 会读文件、改文件,完成后你git diff能看到新增的函数。
第二步,切 deepseek 做注释和边界检查。改环境变量后执行:
$env:ANTHROPIC_MODEL = "deepseek-reasoner" claude.cmd -p "检查 utils.py 里 parse_config 的边界情况,补充中文注释,指出可能的异常"deepseek 会给出中文注释建议和异常分析,你按需采纳。
第三步,codex 补测试。执行:
codex exec "为 utils.py 的 parse_config 写 pytest 单元测试,覆盖文件不存在和 JSON 格式错误两种情况"codex 生成测试文件,你跑pytest验证。
4.3 成功结果的判断标准
一次成功的接力,标志是:git diff里有 claude code 新增的函数、deepseek 补充的注释、codex 新增的测试文件;pytest全绿;三个模型的调用都没有报错。如果中间某一步报错,回到第五章对照排查。
这套流程实测下来,三个模型各司其职,比单模型硬扛所有任务顺畅得多。claude code 负责理解仓库结构,deepseek 负责中文语境和推理,codex 负责快速生成测试,切换成本就是改一行 Model ID。
5. 常见报错排查对照表
这一章把最容易撞上的报错列出来,对照着改。每个报错都给出真实错误信息和根因。
5.1 npm 无法识别为 cmdlet
错误信息:
npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。根因是没装 Node.js,或者装了但没加进 PATH。去 Node.js 官网下载 LTS 版本安装,安装时勾选「Add to PATH」。装完新开终端执行node -v和npm -v确认。
5.2 npm.ps1 禁止运行脚本
错误信息:
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。根因是 PowerShell 执行策略拦住了.ps1脚本。不用改系统策略,直接用npm.cmd代替npm即可:
npm.cmd install -g @anthropic-ai/claude-code5.3 claude code 缺运行外壳
错误信息:
Claude Code on Windows requires either Git for Windows (for bash) or PowerShell.根因是 claude code 在 Windows 上需要 bash 或 PowerShell 7。推荐装 Git for Windows,装完设置:
$env:CLAUDE_CODE_GIT_BASH_PATH = "C:\Program Files\Git\bin\bash.exe"5.4 Not logged in
错误信息:
Not logged in · Please run /login根因是当前终端没读到ANTHROPIC_AUTH_TOKEN。检查三件事:settings.json 里变量名拼写对不对、有没有重启 VScode、当前终端是不是新开的。手动设一遍验证:
$env:ANTHROPIC_AUTH_TOKEN = "sk-你的TaoToken密钥" claude.cmd -p "回复 ok"5.5 401 与 402
401是 Key 无效或过期,去 TaoToken 控制台确认 Key 状态。402 Insufficient Balance是账户余额不足,去控制台充值,不是本地配置问题。这两个报错经常被误判成配置错误,其实一个查 Key、一个查余额。
5.6 local proxy failed 与 reading choices
local proxy failed通常是 Base URL 写错,检查是不是漏了/api或多了斜杠。reading choices报错一般是返回体格式不对,多半是 Model ID 写错,模型名不存在时返回体里没有choices字段。对照控制台里的模型列表改 Model ID。
5.7 OAuth 相关报错
如果出现 OAuth 登录提示,说明 claude code 没走ANTHROPIC_AUTH_TOKEN而是想走官方登录。确认ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN都设了,且没有残留的官方登录态。清掉~/.claude下的登录缓存再试。
排查顺序建议:先确认 Node.js 和 Git for Windows 装好,再确认环境变量读到,最后确认 Key 和 Model ID 正确。大部分问题出在前两步。
6. 统一入口与后续接入
配置跑通之后,日常维护其实很轻。TaoToken 在这里的价值是把三个工具的请求入口收口到一处,Key 只维护一份,Base URL 只记一个,换模型只改 Model ID。你不需要为每个工具单独申请 Key、单独记地址。
后续要接入新工具,套路是一样的三件套:找它读哪个环境变量或配置文件、把 Base URL 指向https://taotoken.net/api、把 Key 填进去、把 Model ID 填成控制台里可用的名字。claude code 走ANTHROPIC_*系列变量,codex 走~/.codex/auth.json,其他 OpenAI 兼容工具走OPENAI_*系列。
如果你要长期跑编码任务或 Agent 工作流,可以了解 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 。需要管理多个 Key 或查看用量,去 API Keys 页面 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 。接入细节查文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。想先手动试模型,用模型对话页 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 。Claude Code 相关接入参考 https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claude_code&utm_campaign=rewrite 。
最后给一个实用技巧:把三套环境变量写成一个 PowerShell 脚本switch-model.ps1,参数传模型名,脚本里改ANTHROPIC_MODEL后启动 claude code。这样切换模型就是一条命令的事,不用每次手敲变量。脚本放项目根目录,加进.gitignore,Key 从系统环境变量读,不硬编码。