1. 为什么要在 Claude Code 里接 DeepSeek 写业务模块
Claude Code 的强项是「读整个项目 + 直接改文件 + 跑命令」,它天生适合干一件事:你说清楚业务需求,它把实体、DAO、Service、Controller、页面、配置文件一次性铺出来。但默认情况下它走的是 Anthropic 官方通道,对国内开发者来说,账号、计费、网络这几件事凑在一起就够折腾半天。
DeepSeek 的模型在代码生成上表现稳定,尤其是 Java、Python 这类结构化语言,写 CRUD 模块、补全配置文件的准确率不错,而且按 token 计费,一个中等规模的业务模块跑下来成本通常在一两块钱这个量级。问题在于:Claude Code 这个客户端默认不认识 DeepSeek 的接口格式,你得让它「以为」自己在跟 Anthropic 说话,实际请求转发到 DeepSeek。
TaoToken 在这里扮演的角色就是统一 Key 和统一通道:你只拿一个 Key,配一次settings.json,Claude Code 就能把请求发到 DeepSeek 的模型上。本文聚焦的就是这套配置怎么落地——settings.json骨架怎么写、CC Switch 怎么切、切完之后怎么用一次真实的业务模块生成请求验证通道确实通了。
适合谁看:已经在用 Claude Code、想换成 DeepSeek 省钱或换模型的开发者;或者刚装好 Claude Code、还没搞明白settings.json和ANTHROPIC_BASE_URL关系的新手。下面所有配置都可以直接复制,改两个值就能用。
2. 前置准备:TaoToken Key 与 Claude Code 环境
在动settings.json之前,先把两样东西准备好:一个可用的 TaoToken Key,以及一个能跑起来的 Claude Code。
Key 的获取路径是登录 TaoToken 控制台,在 API Keys 页面创建一个新 Key。创建时注意两点:一是 Key 只在创建时完整显示一次,复制下来存好;二是如果只是本地开发调试,权限给到默认的对话/补全范围就够,不用开太宽。控制台地址是 https://taotoken.net/console ,API Keys 页面在 https://taotoken.net/api-keys 。
Claude Code 这边,确认你已经装好并且能启动。终端里敲claude能进到那个带边框的欢迎界面就算 OK。如果你还没装,官方文档在 https://taotoken.net/doc ,里面有各平台的安装说明。
这里有个概念要先理清,不然后面配置容易懵:Claude Code 读的是环境变量ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN(或ANTHROPIC_API_KEY)。它默认指向 Anthropic 官方地址。我们要做的,就是把这两个值改成 TaoToken 的地址和你的 Key,让 Claude Code 把请求发到 TaoToken,再由 TaoToken 路由到 DeepSeek。settings.json就是把这些环境变量固化下来的地方,省得你每次开终端都 export 一遍。
注意:不要把 Key 硬编码进会提交到 Git 的文件里。
settings.json建议放在用户级配置目录,或者加进.gitignore。
3. 可复制的 settings.json 配置骨架
Claude Code 的配置文件分用户级和项目级。用户级在~/.claude/settings.json,对所有项目生效;项目级在项目根目录的.claude/settings.json,只对当前项目生效。写业务模块时我一般用项目级,这样不同项目可以挂不同模型。
下面是一份可以直接复制的骨架,关键字段我都标了注释:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoTokenKey", "ANTHROPIC_MODEL": "deepseek-chat", "ANTHROPIC_SMALL_FAST_MODEL": "deepseek-chat" }, "permissions": { "allow": [ "Bash(mkdir:*)", "Bash(ls:*)", "Read", "Write", "Edit" ], "deny": [] } }逐字段说明一下,这几个是最容易配错的:
ANTHROPIC_BASE_URL填https://taotoken.net/api,注意结尾不要多加斜杠,也不要写成带/v1的形式,Claude Code 会自己拼路径。填错了最典型的表现是启动后一直转圈或者报 404。
ANTHROPIC_AUTH_TOKEN填你刚才创建的 Key。有些版本读的是ANTHROPIC_API_KEY,如果前者不生效就换成后者试试,两个都写上也不冲突。
ANTHROPIC_MODEL是主模型,写deepseek-chat。这个值决定 Claude Code 在正常对话和写代码时调哪个模型。
ANTHROPIC_SMALL_FAST_MODEL是处理轻量任务(比如生成 commit message、判断文件相关性)时用的模型。也填deepseek-chat就行,想省成本可以换成更小的型号。
permissions.allow这块是给 Claude Code 放行常用操作,不然它每写一个文件都要弹一次确认,写业务模块时会被打断几十次。上面这几条覆盖了建目录、读文件、写文件、改文件,够用了。deny留空,需要收紧再往里加。
配好之后,settings.json的优先级是:项目级 > 用户级。如果你两个地方都配了,项目级会覆盖用户级。排查问题时先确认当前生效的是哪一份。
4. 用 CC Switch 切换配置与验证通道
如果你同时维护多套配置(比如一套走 DeepSeek、一套走别的模型),手动改settings.json太麻烦。CC Switch 这类配置切换工具就是干这个的:把多份配置存成 profile,一条命令切过去。
它的工作方式很简单——本质上是帮你把选中的 profile 内容写进~/.claude/settings.json,或者通过环境变量注入。所以用之前,先把你的 DeepSeek profile 按上一节的骨架填好,存成一个命名配置,比如叫deepseek。
切换动作大致是这样:运行 CC Switch,选中deepseek这个 profile,确认应用。它会提示你当前生效的配置来源和模型名。切完之后,必须重开一个终端再启动claude,因为环境变量是在进程启动时读取的,老终端里还是旧值。
验证切换是否生效,有两个动作:
第一个,启动claude后看欢迎界面底部那行。如果配置正确,它会显示当前模型,类似deepseek-chat · API Usage Billing。如果还显示 Anthropic 的默认模型名,说明配置没被读到,回去检查settings.json路径和 JSON 格式(JSON 不允许尾逗号,这是最常见的低级错误)。
第二个,在 Claude Code 里直接问一句「你现在用的是哪个模型」。它会基于当前通道回答。这一步能确认请求确实发出去了、也确实回来了。
提示:切换配置后如果报鉴权失败,九成是 Key 复制时带了空格或者换行。重新复制一次,确保是完整的一整串。
5. 一次业务模块生成请求的完整验证
配置通了不代表能干活,得用一次真实的业务模块生成来验证。我拿一个典型的销售用户管理模块来跑,需求描述直接给 Claude Code:
用 Spring Boot 3 写一个销售用户管理模块,要求: 1. 实体 SalesUser,字段:userName(唯一)、password、email、phone、personType(枚举 Employee/Contractor/Partner)、businessUnit 2. 分层:Controller -> Service -> Repository(JPA) 3. 提供列表、新增、修改、删除四个接口 4. 密码用 BCrypt 哈希存储,新增和修改时都要处理 5. 只写代码,不要打包和部署把这段贴进 Claude Code 回车。接下来观察它的行为,这就是验证通道是否正常的关键:
它会先mkdir建目录结构,然后逐个Write文件。你会看到类似Wrote 125 lines to .../SalesUser.java的输出,每个文件写完会显示行数。中间它可能自己发现 bug 再Update修正,比如 setter 里写错了字段名,它会读回来改掉。整个过程是连续的、有文件落地的,不是只给你一段文字。
判断通道真正连通的标准有三个:一是文件确实被创建到了磁盘上,你可以ls看到;二是生成的内容符合你给的技术栈(Spring Boot 3、JPA、BCrypt),没有跑偏成别的框架;三是整个过程没有卡在鉴权或超时上。
跑完之后,让它列一下创建了哪些文件:
list all the files you created它会输出一份文件清单。你对照需求检查:实体、Repository、Service、Controller 是不是都齐了,密码哈希逻辑有没有落在 Service 层。如果这些都符合,说明 TaoToken 通道 + DeepSeek 模型这条链路是通的,可以正式用来写业务了。
实测下来,一个这样的模块生成耗时在几分钟量级,token 消耗对应到费用通常就是一两块钱,比想象中便宜。
6. 本篇常见错误排查
配置和验证过程中,下面这几个错误出现频率最高,按现象对号入座。
启动后一直转圈或报 404。先查ANTHROPIC_BASE_URL。最常见的是多写了/v1或者结尾多了斜杠。正确值是https://taotoken.net/api,一个字符都别多。改完记得重开终端。
报 401 / 鉴权失败。Key 的问题。检查ANTHROPIC_AUTH_TOKEN是不是完整、有没有多余空格。如果确认 Key 没问题,试试把字段名换成ANTHROPIC_API_KEY,不同 Claude Code 版本读的字段名有差异。
模型名不生效,还是走默认模型。检查ANTHROPIC_MODEL拼写,必须是deepseek-chat这种准确的值。另外确认你改的settings.json是当前生效的那一份——项目级会覆盖用户级,别改错了文件。
JSON 解析报错,Claude Code 起不来。九成是 JSON 格式问题:尾逗号、中文引号、注释。settings.json是严格 JSON,不能有注释,引号必须是英文半角。拿个 JSON 校验工具过一遍最快。
切换 profile 后没变化。CC Switch 改的是配置文件,但当前终端的环境变量已经加载了旧值。关掉终端重开,再启动claude。
写文件时频繁弹确认。permissions.allow没配全。把Read、Write、Edit和常用的Bash前缀加进去,能省掉大量打断。
生成到一半停了。可能是单次请求 token 超限,或者网络抖动。让它继续,或者把需求拆小一点分两次给。写大模块时拆成「先建实体和 Repository,再写 Service 和 Controller」两轮,稳定性更好。
排障过程中如果怀疑是接入配置本身的问题,接入文档在 https://taotoken.net/doc ,API Keys 管理在 https://taotoken.net/api-keys ,对照着核对字段。想先单独验证模型能不能正常对话,可以用模型对话页面 https://taotoken.net/models 发一条测试消息,把「通道问题」和「客户端配置问题」分开定位。如果你打算长期用这套组合写代码、跑 Agent 任务,Coding Plan 页面 https://taotoken.net/coding-plan 里有针对编码场景的说明,可以先看一眼再决定怎么配额度。