Claude Code 接入 DeepSeek V4-Pro 实测:settings.json 配置与 Skills 验证
1. 为什么我要把 Claude Code 切到 DeepSeek V4-Pro最近半年身边用 Claude Code 的朋友聊得最多的话题不是模型能力而是账号还能撑多久。我自己也经历过一次早上打开终端发现请求全部 401 的情况手头一个 JeecgBoot 的审批流改造正做到一半整个下午都在折腾账号代码一行没写。这种不确定性对重度依赖 CLI 编码工具的人来说比模型贵一点要难受得多。DeepSeek V4 系列发布后我注意到它提供了兼容 Anthropic 协议的端点。这意味着 Claude Code 不需要改任何源码只要在 settings.json 里把 base URL 和模型名换掉就能用 DeepSeek V4-Pro 驱动整套工具链。对使用 JeecgBoot 这类低代码平台做二次开发的团队来说Skills 生态是核心生产力能不能跑通 Skills 直接决定这套组合有没有实用价值。这篇内容我会交付三样东西一份可直接复制的 settings.json 配置骨架、一套 Skills 调用验证动作、以及 Anthropic 兼容性在真实项目里的表现记录。适合已经在用 Claude Code、想找稳定通道的开发者也适合想评估 DeepSeek V4-Pro 在代码生成与工具链协作中实际效果的技术负责人。下面所有配置和验证步骤都可以跟着做不需要额外装插件。2. TaoToken 前置统一 Key 与 API 通道准备在动 settings.json 之前先把通道这件事理清楚。Claude Code 走的是 Anthropic 协议DeepSeek V4-Pro 提供兼容层但如果你同时还要接别的模型做对比测试每个模型单独管一套 Key 会很乱。我的做法是通过 TaoToken 的统一 Key 通道来管理这样切换模型时只改模型名不用动鉴权逻辑。具体操作路径是这样的先到官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 了解通道能力然后进控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 创建项目。在 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 生成一个 Key这个 Key 就是后面 settings.json 里 ANTHROPIC_AUTH_TOKEN 的值。这里有个细节要注意Claude Code 读取的是环境变量或 settings.json 里的 env 字段它不认 OpenAI 格式的 Key 传递方式。所以你在 TaoToken 生成的 Key 要直接填到 ANTHROPIC_AUTH_TOKEN 里不要试图用 OPENAI_API_KEY 这种变量名否则 Claude Code 启动时会报鉴权失败。如果你打算长期用这套组合做编码和 Agent 任务可以顺手看一下 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它针对高频编码场景做了额度优化比按量计费更适合每天跑 Skills 的用法。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面写了 Anthropic 兼容层的字段映射关系配置卡住的时候可以对照查。3. 可复制的 settings.json 配置骨架Claude Code 的配置文件位置分两种全局配置在~/.claude/settings.json项目级配置在项目根目录的.claude/settings.json。我建议先用全局配置跑通确认没问题后再按项目覆盖。下面这份骨架是我实测能跑通 DeepSeek V4-Pro 的版本你可以直接复制后替换 Key。{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥, API_TIMEOUT_MS: 3000000, ANTHROPIC_MODEL: deepseek-v4-pro, ANTHROPIC_SMALL_FAST_MODEL: deepseek-v4-flash, ANTHROPIC_DEFAULT_SONNET_MODEL: deepseek-v4-pro, ANTHROPIC_DEFAULT_OPUS_MODEL: deepseek-v4-pro, ANTHROPIC_DEFAULT_HAIKU_MODEL: deepseek-v4-flash, CLAUDE_CODE_SUBAGENT_MODEL: deepseek-v4-pro, CLAUDE_CODE_EFFORT_LEVEL: max }, model: deepseek-v4-pro }逐字段说明一下方便你按需调整。ANTHROPIC_BASE_URL指向 TaoToken 的 API 入口注意这里不要加 UTM 参数API 调用只认纯净地址。ANTHROPIC_AUTH_TOKEN填你在控制台生成的 Key。API_TIMEOUT_MS设成 3000000 是因为 Skills 任务经常涉及多轮工具调用默认超时太短会在中途断掉。模型映射这块是重点。ANTHROPIC_MODEL是主模型走 V4-Pro 处理复杂推理。ANTHROPIC_SMALL_FAST_MODEL走 V4-Flash负责轻量任务比如文件摘要、简单补全。ANTHROPIC_DEFAULT_SONNET_MODEL和ANTHROPIC_DEFAULT_OPUS_MODEL都指向 V4-Pro因为 Claude Code 内部有些功能会按 Sonnet 或 Opus 的档位去请求如果不映射它会去找不存在的模型名然后报错。ANTHROPIC_DEFAULT_HAIKU_MODEL映射到 V4-Flash对应快速响应场景。CLAUDE_CODE_SUBAGENT_MODEL控制子 Agent 用哪个模型我设成 V4-Pro 是因为 JeecgBoot 的 Skills 经常需要子 Agent 并行处理多个文件。CLAUDE_CODE_EFFORT_LEVEL设成 max 会让模型在推理时投入更多计算代价是响应稍慢但 Skills 调用的准确率明显更高。配置写完后在终端执行claude启动。如果界面上显示的模型名是deepseek-v4-pro说明配置生效了。你可以直接问它「你当前是什么模型」正常会返回 DeepSeek V4-Pro 相关的标识。如果显示的还是 Claude 默认模型检查一下 settings.json 的 JSON 格式有没有多逗号或漏引号这是最常见的启动失败原因。4. 验证请求与 Skills 调用成功结果配置生效只是第一步真正要验证的是 Skills 能不能跑通。我拿 JeecgBoot 项目做了一轮实测下面记录几个关键验证动作和结果。第一个验证动作是基础对话加文件读取。在项目根目录启动 Claude Code输入「读取 pom.xml告诉我 Spring Boot 版本和主要依赖」。正常情况它会调用文件读取工具返回版本号和依赖列表。这一步验证的是 Anthropic 协议的消息格式和工具调用格式是否被正确解析。实测下来 V4-Pro 返回结构完整没有出现工具调用参数丢失的情况。第二个验证动作是 Skills 触发。JeecgBoot 的 Skills 通常放在.claude/skills目录下每个 Skill 有对应的触发描述。我输入「用 BPM Skill 帮我生成一个请假审批流程」模型识别到 Skill 描述后会自动加载对应技能文件然后按技能定义的步骤执行。实测结果是流程图配置和节点参数都正确生成中间我指出流程走向问题后它读取了修改意见并重新生成了修正版。第三个验证动作是多步骤 Agent 任务。我让它执行「前端 SVN 更新、编译打包、上传服务器后端触发 Jenkins最后清 CDN 缓存」这一串操作。这类任务会触发多个工具调用串联中间任何一步参数错误都会导致后续失败。实测下来 SVN 更新、npm build、scp 上传、Jenkins 触发、CDN 清理全部按顺序执行成功没有出现调用顺序错乱或参数识别偏差。如果你想单独验证模型对话能力可以到模型对话页面 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 直接发请求测试不用启动 Claude Code。这个页面适合快速确认 Key 是否有效、模型是否正常响应。对于长期跑编码和 Agent 任务的场景Coding Plan 的额度模型比按量计费更划算具体可以看 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 的说明。验证成功的标志有三个终端显示的模型名正确、Skills 能被触发并执行、多步骤任务能完整跑完不中断。三个都满足说明这套组合在你的项目里可以正常用了。5. 本篇常见错误排查配置和调用过程中我踩了几个坑这里按现象、原因、解决方式列出来你遇到类似报错可以对照排查。报错一启动后提示401 Unauthorized或invalid api key。原因通常是 ANTHROPIC_AUTH_TOKEN 填错了或者 Key 复制时带了空格。解决方式是重新到 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 生成一个新 Key粘贴时注意不要带首尾空格。另外确认 BASE_URL 写的是https://taotoken.net/api不要加任何查询参数。报错二模型名显示不对或者提示model not found。这是因为 Claude Code 内部会按 Sonnet、Opus、Haiku 三个档位去请求模型如果你只改了 ANTHROPIC_MODEL没改 DEFAULT_SONNET_MODEL 这些映射字段它就会去找claude-sonnet-xxx这种不存在的模型名。解决方式是把配置骨架里那四个 DEFAULT 字段都补上全部指向 deepseek-v4-pro 或 deepseek-v4-flash。报错三Skills 执行到一半卡住或者工具调用返回空。最常见的原因是 API_TIMEOUT_MS 设得太短。Skills 任务涉及多轮工具调用每轮都要等模型响应默认超时可能只有几十秒复杂任务跑到一半就断了。把 API_TIMEOUT_MS 设成 3000000 可以覆盖大部分场景。如果还是卡检查一下对话上下文是不是太长了V4-Pro 虽然标称 1M 上下文但超长上下文叠加复杂推理时会出现不稳定建议把长任务拆成短会话阶段性重置。报错四图片输入后模型没有反应。这是 DeepSeek V4-Pro 当前版本的已知限制它是纯文本模型不支持图片输入。Claude Code 发送图片时模型收到的是占位符对实际图像内容没有感知。如果你需要处理截图报错、UI 设计稿这类任务临时把 ANTHROPIC_BASE_URL 去掉让请求回落到原生 Anthropic API用完再切回来。或者等 DeepSeek V4 的 Vision 模式开放后再全面切换。报错五子 Agent 任务报错或超时。检查 CLAUDE_CODE_SUBAGENT_MODEL 是否设置正确。如果不设子 Agent 可能会用默认模型名去请求导致找不到模型。设成 deepseek-v4-pro 可以保证子 Agent 和主模型一致。排查顺序建议从鉴权开始确认 Key 和 BASE_URL 没问题后再看模型映射最后检查超时和上下文长度。大部分报错集中在前两步配置骨架里的字段补全基本能解决。6. 接入文档与后续动作配置跑通之后建议把接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 过一遍里面写了 Anthropic 兼容层的完整字段映射和限制说明遇到没覆盖的报错可以对照查。如果你主要用 Claude Code 做编码和 Agent 任务Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 的额度模型比按量计费更适合每天跑 Skills 的用法可以先看下计费方式再决定。我自己的用法是全局配置走 TaoToken 统一通道项目级配置按需覆盖模型名。这样切换模型时只改一行不用重新配 Key。JeecgBoot 的 Skills 生态在这套组合下跑得比较稳BPM 流程、BI 大屏、钻取报表、自动化部署这几类任务都能完整执行。唯一需要提前知道的是图片输入限制和长上下文稳定性问题避开这两个坑日常编码和工具链协作基本可以无人值守跑完。