
1. 为什么要在 VS Code 里给 Claude Code 接上 DeepSeekClaude Code for VS Code 是 Anthropic 出的编辑器扩展它本身是一个「壳」——负责在 VS Code 里提供对话面板、斜杠命令、文件上下文注入这些交互能力真正干活的模型可以通过环境变量换成别的。DeepSeek 提供了兼容 Anthropic 协议的接入端点所以只要把ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN指过去Claude Code 面板里跑的就是 DeepSeek 的模型。这件事适合谁已经在用 VS Code 写代码、想在日常开发里随手调用 AI 补全和问答、又希望模型响应快、成本可控的开发者。尤其是习惯用斜杠命令切换模型、需要长上下文读整个项目的人这套配置能让你在一个面板里同时用到deepseek-v4-pro[1m]这种长上下文模型和deepseek-v4-flash这种轻量快速模型。我试过把配置写进settings.json之后最大的感受是「一次配好后面切换模型只需要敲一个斜杠」。但坑也集中在这里settings.json是 JSON 格式多一个逗号、少一个引号都会让整段配置静默失效面板打开后一直转圈或者报鉴权错误却不会明确告诉你哪一行写错了。所以这篇的重点不是「装插件」这种点两下就完事的步骤而是给你一份可以直接复制的settings.json骨架再配一份逐项验证清单让你在五分钟内确认连通性而不是对着一个不响应的面板猜。下面按「前置准备 → 配置骨架 → 验证 → 排障」的顺序走每一步都有可复制的片段和预期结果。2. 前置准备插件、API Key 与配置文件入口2.1 安装 Claude Code for VS Code 扩展打开 VS Code左侧活动栏点 Extensions快捷键CtrlShiftX搜索框输入claude code找到作者为 Anthropic 的Claude Code for VS Code点 Install。装完后左侧活动栏或右上角会出现 Claude Code 的图标说明扩展已激活。这一步没什么技术含量但要注意如果你之前装过同名的第三方扩展先卸载掉避免两个扩展抢同一个配置字段。2.2 准备一个可用的 API KeyClaude Code 走的是 Anthropic 协议所以你需要一个兼容该协议的端点和对应的 Key。DeepSeek 官方提供了 Anthropic 兼容入口你也可以用 TaoToken 这类聚合入口来统一管理 Key 和模型路由。不管用哪个你最终需要拿到两样东西一个 Base URL形如https://xxx/anthropic或https://xxx/api一个 Auth TokenAPI Key形如sk-xxxxxxxx如果你还没申请可以先去控制台创建一个 Key。TaoToken 的入口在官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 注册后在控制台里生成 API Key具体页面是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。拿到 Key 之后先复制到剪贴板下一步要用。注意API Key 只显示一次关掉页面就看不到了。建议先存到密码管理器里别直接贴在聊天窗口或截图里。2.3 找到 settings.json 的入口Claude Code 扩展的配置不在图形化设置面板里逐项填而是写进 VS Code 的settings.json。进入方式有两种第一种点扩展右侧的齿轮图标 → Settings → 找到配置项 → 点Edit in settings.json。第二种直接按CtrlShiftP打开命令面板输入Preferences: Open User Settings (JSON)回车。打开后你会看到一个大的 JSON 对象。Claude Code 的配置字段是claudeCode.environmentVariables它是一个数组数组里每个元素是{name: ..., value: ...}的结构。下面直接给完整骨架。3. 可复制的 settings.json 配置骨架3.1 完整配置片段把下面这段合并进你的settings.json。如果你已经有claudeCode.environmentVariables字段就替换掉它的值如果没有就在顶层对象里新增这一项。注意 JSON 不允许尾随逗号合并时检查上一项末尾有没有多余的逗号。{ claudeCode.environmentVariables: [ { name: ANTHROPIC_BASE_URL, value: https://api.deepseek.com/anthropic }, { name: ANTHROPIC_AUTH_TOKEN, value: sk-你的真实APIKey }, { name: ANTHROPIC_MODEL, value: deepseek-v4-pro[1m] }, { name: ANTHROPIC_DEFAULT_OPUS_MODEL, value: deepseek-v4-pro[1m] }, { name: ANTHROPIC_DEFAULT_SONNET_MODEL, value: deepseek-v4-pro[1m] }, { name: ANTHROPIC_DEFAULT_HAIKU_MODEL, value: deepseek-v4-flash }, { name: CLAUDE_CODE_SUBAGENT_MODEL, value: deepseek-v4-flash }, { name: CLAUDE_CODE_EFFORT_LEVEL, value: max } ] }如果你用的是 TaoToken 的聚合入口把ANTHROPIC_BASE_URL换成https://taotoken.net/apiANTHROPIC_AUTH_TOKEN换成你在控制台生成的 Key 即可其余字段保持不变。模型名以你所用端点实际支持的为准可以先在模型对话页确认可用模型列表https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。3.2 每个字段在干什么字段作用建议值ANTHROPIC_BASE_URL请求发往哪个端点DeepSeek 官方或聚合入口的/anthropic路径ANTHROPIC_AUTH_TOKEN鉴权凭证你的真实 API KeyANTHROPIC_MODEL默认主模型deepseek-v4-pro[1m]ANTHROPIC_DEFAULT_OPUS_MODEL映射 Opus 档位同上走强模型ANTHROPIC_DEFAULT_SONNET_MODEL映射 Sonnet 档位同上ANTHROPIC_DEFAULT_HAIKU_MODEL映射 Haiku 档位deepseek-v4-flash走快模型CLAUDE_CODE_SUBAGENT_MODEL子任务/子代理用的模型deepseek-v4-flashCLAUDE_CODE_EFFORT_LEVEL推理投入档位max复杂任务更稳这里的设计逻辑是主对话和复杂推理走deepseek-v4-pro[1m]它的[1m]表示长上下文能力适合读整个项目、分析跨文件依赖而子代理、轻量补全、快速问答走deepseek-v4-flash响应快、消耗低。CLAUDE_CODE_EFFORT_LEVEL设成max会让模型在推理上多花一点算力换来更稳的代码建议日常如果觉得慢可以调低。3.3 保存并让配置生效保存settings.jsonCtrlS。Claude Code 扩展在读取环境变量时通常需要重新加载窗口才会生效。按CtrlShiftP输入Developer: Reload Window回车。这一步别省很多人配完发现没反应就是因为扩展还拿着旧的环境变量。4. 验证请求从面板到斜杠命令4.1 打开面板发一条测试消息重新加载后点 VS Code 右上角的 Claude Code 图标打开对话面板。在输入框里发一句最简单的介绍你自己如果配置正确你会看到回复正常流式输出并且模型自称是 DeepSeek 系列。如果一直转圈、报401或authentication_error直接跳到第 5 节排障。4.2 用斜杠命令确认模型切换在输入框里敲一个斜杠/会弹出命令菜单。找到Switch model…点进去你应该能看到deepseek-v4-pro[1m]和deepseek-v4-flash两个选项。能列出这两个模型说明ANTHROPIC_MODEL和ANTHROPIC_DEFAULT_*_MODEL这几个字段已经被正确解析。切换一次模型再发一条消息观察响应速度差异flash明显更快pro[1m]在长文件分析时更稳。这一步是验证「模型映射」是否生效的关键动作比单纯看能不能回复更有说服力。4.3 用 curl 做一次独立连通性验证面板能回复不代表端点本身没问题有时候是扩展缓存了旧配置。想彻底确认可以在终端里直接打一次请求。把下面的$KEY换成你的真实 Keycurl -s https://api.deepseek.com/anthropic/v1/messages \ -H x-api-key: $KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: deepseek-v4-flash, max_tokens: 64, messages: [{role: user, content: ping}] }预期返回是一段 JSON里面有content数组和模型回复文本。如果返回401说明 Key 不对返回404说明 Base URL 路径拼错了返回model not found说明模型名写错了。这一步能把「扩展问题」和「端点问题」彻底分开。如果你用的是 TaoToken 聚合入口把 URL 换成https://taotoken.net/api/v1/messages鉴权头按该端点要求填写即可。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有完整的请求示例。5. 本篇常见错误排查清单5.1 面板一直转圈或报鉴权失败最常见的原因是ANTHROPIC_AUTH_TOKEN里带了多余空格或者 Key 已经失效。检查方法把 Key 单独复制到 curl 命令里跑一次能通说明 Key 没问题问题在settings.json的格式。另一个高频原因是settings.json里有尾随逗号JSON 解析失败后整个claudeCode.environmentVariables被忽略扩展回退到默认端点自然鉴权失败。用 VS Code 自带的 JSON 校验右下角会标红先排掉语法错误。5.2 模型名报 not founddeepseek-v4-pro[1m]里的方括号是模型名的一部分不能省略也不能改成别的写法。如果你用的聚合端点模型命名不同去模型列表页确认准确名称别凭记忆写。另外注意ANTHROPIC_DEFAULT_OPUS_MODEL这类映射字段如果填了一个端点不支持的模型切换档位时会报错但主对话可能还能跑容易误判成「配置没问题」。5.3 改了配置但没生效九成是没重新加载窗口。扩展在启动时读取一次环境变量之后不会热更新。改完settings.json必须Developer: Reload Window。如果重载后还是旧行为检查是不是把配置写进了工作区级的.vscode/settings.json而不是用户级settings.json两者优先级不同工作区级会覆盖用户级。5.4 长上下文任务被截断deepseek-v4-pro[1m]的[1m]代表长上下文档位但如果你在ANTHROPIC_MODEL里写的是deepseek-v4-flash长文件分析就会被截断。确认主模型字段指向的是带[1m]的那个。另外CLAUDE_CODE_EFFORT_LEVEL设成max会增加推理时间如果觉得响应太慢可以先降到默认档位测试确认是模型问题还是档位问题。5.5 子代理行为异常CLAUDE_CODE_SUBAGENT_MODEL控制子任务用哪个模型。如果设成了一个端点不支持的模型主对话正常但子代理会静默失败。把它设成deepseek-v4-flash这种确定可用的快模型是最稳的做法。6. 配好之后怎么继续用配置跑通之后日常使用其实就三件事在面板里正常对话、用斜杠命令切模型、需要长期编码或 Agent 任务时把模型固定到强档位。如果你打算把 Claude Code 当成日常主力编码工具建议把ANTHROPIC_MODEL固定成deepseek-v4-pro[1m]子代理保持flash这样复杂任务和轻量任务各走各的不会互相拖慢。需要管理多个 Key 或看用量去控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 想先试试模型对话效果再决定用哪个可以直接在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 里发几条消息对比如果你要长期跑编码 Agent、需要更稳定的配额和模型路由可以看 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。接入过程中遇到报错先对照第 5 节的清单逐项排大部分问题都出在 JSON 格式和 Key 这两处。