ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Claude Code 接入 DeepSeek:环境变量配置与省钱实战

Claude Code 接入 DeepSeek:环境变量配置与省钱实战 这段时间我被我自己的账单惊到了代码是 Claude 写的钱却流向了 DeepSeek。这不是什么段子而是我最近大半个月真实的工作流。Claude Code 这个终端里的 AI 编程助手负责跟我对话、看代码、改 bug、跑测试背后真正处理这些请求的模型却是 DeepSeek 的 API。说白了Claude Code在前端当“嘴替”DeepSeek在后端出算力我按 token 给 DeepSeek 付钱而不是给 Anthropic 交订阅费。这个组合听起来像蹭热度但用下来是真的能省。Claude Code 的交互体验和工程能力确实强DeepSeek 的定价又便宜到让人无脑用。如果你也在纠结“要不要花每月 20 美元订阅 Claude”或者已经在用 Claude Code 但被 API 账单吓到这篇文就是写给你看的。我会把原理、配置、工具链、踩过的坑一次讲清楚。1. 这条省钱组合拳到底是怎么跑的1.1 Claude Code 只是前端谁提供模型谁收费要理解这套玩法先得把“Claude”这个品牌拆开看。大部分人口中的“用 Claude”其实分两层第一层是 Anthropic 做的对话界面、IDE 插件、命令行工具也就是我们直接操作的入口第二层是跑在云端的大模型也就是真正在生成代码的 Claude 系列模型。Claude Code 是这个入口里非常特别的一个产品。它不是一个网页对话框而是一个跑在终端里的编程代理。它能读你的项目目录、调用grep和find搜索代码、帮你执行测试命令甚至根据编译错误自己迭代修复。这个体验非常接近“请了个能看懂整个仓库的结对程序员在终端里陪你干活”。但关键点在这Claude Code 本身不是一个收费模型它只是一个客户端框架。你用什么模型往里填完全由你配置决定。默认情况下它连的是 Anthropic 的模型 API你需要一个 Claude 账号走订阅或者按量付费。但是这个路径不是唯一的它支持通过环境变量覆盖 API 的地址和认证信息。既然地址能改那后面接谁就有的聊了。1.2 为什么 DeepSeek 能被“接到”Claude Code 里要回答这个问题得聊一个这两年模型圈里的新常态接口兼容。OpenAI 早年把chat/completions这个接口格式做成了事实标准后来各家模型上线时为了让大家迁移省事纷纷提供 OpenAI 兼容接口。Anthropic 后来也开放了它自己的 Messages API 格式于是有一批模型厂商开始照着 Anthropic 的格式做兼容层。DeepSeek 官方就提供了 Anthropic 兼容的 API 入口。它的完整地址是https://api.deepseek.com/anthropic认证方式也基本一致。这意味着 Claude Code 往这个地址发请求时会觉得自己在跟 Anthropic 的服务器说话但实际响应它的是一个完全不同的模型。我第一次看到这个地址时也愣了半天。因为按照过去的经验不同厂商的 API 协议差异巨大想做协议转换通常要靠 LiteLLM 这类代理层才能完成。现在 DeepSeek 直接在官方端点做了兼容省掉了中间一层代理不仅延迟更低排错也简单。严格说这不是漏洞也不是什么黑科技就是官方支持的一种接入方式。社区里后来出现的一些封装工具比如有人提“harness”“hermes”之类的叫法我个人的建议是暂时别碰。原因很简单凡是套了多层壳出问题以后排查链路就变得特别长。你直接用官方 Anthropic 兼容端点配置顶多十个环境变量出问题能定位到是鉴权、模型名还是网络层比什么“全家桶”都干净。2. 配置前必须搞懂的环境变量Claude Code 支持用环境变量覆盖它的模型路由配置。这套变量我很早就在用但很多人第一次接触时容易把名字搞混所以单独拿一节出来拆一下。环境变量作用我的建议值ANTHROPIC_BASE_URL指定 API 的访问地址改成 DeepSeek 兼容入口https://api.deepseek.com/anthropicANTHROPIC_AUTH_TOKEN请求时携带的鉴权令牌填 DeepSeek 的 API Keysk-开头的一长串ANTHROPIC_MODEL指定主对话模型覆盖 Claude Code 默认的 Sonnet 模型deepseek-chatANTHROPIC_SMALL_FAST_MODEL指定小体量快速模型用于标题生成、简单补全等场景一般也填deepseek-chatANTHROPIC_API_KEY另一个鉴权方式但兼容端点下我建议用AUTH_TOKEN不需要填这里有一个细节值得展开为什么我建议用ANTHROPIC_AUTH_TOKEN而不是ANTHROPIC_API_KEY因为在 Claude Code 的官方逻辑里这两个变量的读取优先级和校验时机有差异。API_KEY是 Anthropic 自家平台的标准钥匙通常还要配合Account ID这类信息。DeepSeek 的兼容端点是按照 Anthropic 的消息格式做的它希望拿到一个能识别成自己用户的 token而不希望客户端走 Anthropic 平台那套账号体系。实测中用AUTH_TOKEN的兼容性最好能直接完成鉴权用API_KEY时某些版本会遇到格式校验不通过或者请求被路由到默认官网地址的问题。还有ANTHROPIC_MODEL这个变量。Claude Code 默认会把claude-sonnet-4-...这类模型名放在请求体里发出去。DeepSeek 那边只认自己的模型名如果你不做覆盖请求会直接返回类似“model not found”的错误。把它显式设成deepseek-chat问题就没了。deepseek-chat对应的是 DeepSeek-V3 系列适合日常编程如果你需要更强的推理能力可以改成deepseek-reasoner对应 R1 系列但生成速度会慢一些按量价格也更高。另外有一个小技巧这些变量不一定非要写进全局~/.zshrc。如果只是在某个项目里想临时试一下可以在启动 Claude Code 之前用一行export命令设置当前终端会话的变量只对这一次生效不污染全局环境。等你确定这套方案合适再固化到 shell 配置文件里。3. 从零到跑通的完整配置过程理论说再多不如直接上手。我按自己重装好几次的经验把完整流程列出来。环境是 macOS zsh但 Windows 和 Linux 的区别我会在关键位置单独标注。3.1 安装 Claude Code 本体Claude Code 官方推荐的安装方式是通过 npm 全局安装npm install -g anthropic-ai/claude-code装完之后确认一下版本claude --version如果输出一串版本号说明安装成功。没有 Node.js 环境的机器Anthropic 也提供了原生安装脚本但 npm 这步最简单遇到问题也好解决。有个点想提醒不要在这时候急着执行claude登录。因为我们的目标是接 DeepSeek不需要 Anthropic 账号也不需要官方订阅。直接登录反而会走官方鉴权流程后面还要切回来麻烦。3.2 在 DeepSeek 开放平台拿到 API Key去 DeepSeek 的开放平台注册账号进入 API Keys 页面创建一个新的 Key然后充值。对DeepSeek 是预充值模式不像很多海外厂商支持绑定信用卡后按量扣费你得先充点钱进去才能发起请求。第一次充个几十块就够用很久了。充值这个环节很多人会忽略结果配置全对请求一直报 401 或者余额不足翻半天日志才发现是平台里没钱了。先充十块二十块跑通了再决定要不要多充。创建完 Key 后立刻复制保存。这个 Key 只在创建时完整显示一次页面一刷新你就再也看不到了只能重新创建。3.3 设置环境变量并启动在 zsh 或 bash 里执行export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKENsk-你的DeepSeek密钥 export ANTHROPIC_MODELdeepseek-chat export ANTHROPIC_SMALL_FAST_MODELdeepseek-chat然后启动claude正常情况会进入一个交互式对话框。这时候随便问一句“帮我写一个 Python 快速排序”看它响应是否正常。如果模型名配置不对你会立刻看到报错如果网络和鉴权有问题一般也会在几秒内反馈。Windows 用户用的是 PowerShell语法稍微不同$env:ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic $env:ANTHROPIC_AUTH_TOKENsk-你的DeepSeek密钥 $env:ANTHROPIC_MODELdeepseek-chat $env:ANTHROPIC_SMALL_FAST_MODELdeepseek-chat claudeWindows 的坑主要在 PATH。如果提示claude 不是内部或外部命令也不是可运行的程序基本就是 npm 全局目录没进 PATH或者终端没重启。重启终端后再试不行就去检查 npm 全局安装路径通常是在%APPDATA%\npm。环境变量如果用着没问题想固化下来macOS 就写进~/.zshrcecho export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic ~/.zshrc echo export ANTHROPIC_AUTH_TOKENsk-你的DeepSeek密钥 ~/.zshrc echo export ANTHROPIC_MODELdeepseek-chat ~/.zshrc echo export ANTHROPIC_SMALL_FAST_MODELdeepseek-chat ~/.zshrc source ~/.zshrcWindows 想持久化可以用系统设置里的“编辑系统环境变量”图形界面添加比setx命令稳定后者对含特殊字符的字符串容易出幺蛾子。3.4 在 VSCode 里落地这套配置在 VSCode 里用 Claude Code我目前最推荐的方式不是装第三方插件而是直接打开 VSCode 的集成终端在项目根目录跑claude。这样既能看到代码高亮又能让 Claude Code 直接访问整个项目文件还绕开了插件市场里质量参差不齐的扩展。如果你实在想在图形界面里嵌一个面板社区里有几个 Claude Code 扩展可以用。安装之后一般会让你配置claude可执行文件的路径指向你 npm 全局安装的那个位置就行。注意扩展本身不会继承你刚才设置的 shell 环境变量有些扩展需要单独配置环境变量入口否则会读到默认的 Anthropic 地址等于白接。这个坑我踩过花了一个小时才反应过来。4. 进阶玩法多供应商切换与本地模型兜底基础配置跑通之后这套工作流就进入了“真香”阶段。但用得越久越发现单一供应商不够灵活。DeepSeek 也会遇到高峰期变慢、某个模型不擅长某类任务的情况。这时候就需要一套能快速切换供应商的方案。4.1 ccswitch 是怎么帮我一键换供应商的ccswitch 是社区里一个基于配置管理的工具它的核心功能就是维护 Claude Code 的多套配置模板然后一键切换。你可以把 DeepSeek、Anthropic 官方、Ollama 本地模型各保存成一套配置比如deepseek、anthropic、local三套 profile然后ccswitch config add deepseek # 按提示填入 base_url、auth_token、model ccswitch use deepseek本质上来讲它就是把你手动改那堆环境变量的动作变成了一条命令。你说这玩意有什么深奥的吗没有。但在真实工作中非常救命有几次 DeepSeek 平台临时负载高我切到 Anthropic 官方 API 救急处理完再切回来全程不到半分钟。顺便说一句别小看这个切换能力。很多人配置好 DeepSeek 后就不再动了直到某天模型回答问题开始变得啰嗦或者变慢才发现是供应商侧的问题。手里多几套预配置调度自由度高很多。4.2 Ollama 本地部署 DeepSeek适合什么场景把 DeepSeek 装到本地听起来很诱人毕竟不花钱、数据不出本机。用 Ollama 跑社区量级的 DeepSeek 模型也确实不难ollama run deepseek-r1:7b但这台“本地 DeepSeek”和 API 上的 DeepSeek-V3 完全不是一回事。本地跑的是 7B、14B 这种小参数蒸馏版本代码能力跟完整版差距明显。我实测下来它应付“解释这段代码在干嘛”“补全一个正则表达式”这类任务是够用的但让它跨多个文件重构代码经常会给出“看似合理、实则跑不通”的结果。如果你只是想要一个不花钱的编程辅助兜底可以试试claude code ccswitch ollama这个组合。技术上需要一条链路Ollama 本身提供的是 OpenAI 兼容接口而 Claude Code 要求 Anthropic 格式中间需要用一个代理转换协议。你可以用 LiteLLM 起一个本地代理把 Anthropic 格式翻译成 OpenAI 格式再转发给 Ollama。配置不复杂但延迟和模型能力会打折扣。这个场景真正适合的是私人项目、代码不允许出本机的环境或者你想离线干活。日常重度编码我还是老老实实用 DeepSeek API省心。4.3 Codex 也来凑热闹是怎么回事开头提到搜索热词里有“codex接入deepseek”其实逻辑和 Claude Code 完全一样OpenAI 的 Codex CLI 原本是连 OpenAI 模型的但它也支持自定义 model provider。在配置里指向https://api.deepseek.com/v1模型名写成deepseek-chat就能把 OpenAI 的编程助手也接到 DeepSeek 上。我为什么会提到它因为“前端工具 便宜后端”的玩法已经不只属于 Claude Code 一个工具。以后还会有更多编程助手走出“必须使用自家模型”的限制。你手里的模型切换能力会变成一种常规技能而不是什么偏门技巧。5. 我踩过的那些安装和权限坑这部分是真实事故记录。我配置过程中遇到的问题每一个都在搜索热词里能找到影子说明踩坑的人不少。5.1 “claude 不是内部或外部命令”根因在哪Windows 下最容易遇到claude 不是内部或外部命令macOS 和 Linux 下也偶尔会出现claude: command not found。原因基本就一个npm 全局安装目录没有加入 PATH。你用 npm 装了一个全局命令但 shell 找不到它的位置。npm 全局目录可以用一行命令查出来npm prefix -g查到的路径就是全局包安装目录。把它加到 PATH 里问题就解决。macOS 上如果用了 nvm全局包会被装到 nvm 对应的 node 版本目录下切换 node 版本后可能就找不到claude了。这个情况别急着重装先检查当前的 node 版本和当初安装时是否一致。另一个隐藏问题装了但没重启终端。终端的环境变量是启动时加载的新装的命令没进 PATH老终端不会知道。开一个新终端窗口再试往往就好了。5.2 “unfortunately, claude is not available to new users right now”这个提示是 Anthropic 官方对新用户注册限制的提示出现时说明平台暂时停止开放新用户注册 Claude Code 订阅通道。很多人在这一步卡住以为后面没辙了。实际上这个限制针对的是走官方订阅那条路。如果你的目标是接 DeepSeek API完全不触发这个流程。只需要按前面 3.2 和 3.3 的步骤走用 DeepSeek 的 Key 作为鉴权 tokenClaude Code 不会要求你完成 Anthropic 的注册授权。所以看到这个提示时可以直接无视继续往下配。如果你就是铁了心想用官方 Claude 订阅那只能等平台开放。没有别的正规渠道也不用看那些教你“方法”的帖子大多数都不靠谱。5.3 “your organization has disabled claude subscription access for claude code”这个问题是组织策略层面的。Claude Code 支持通过claude login登录个人账号或者组织账号。如果你当前终端或系统登录的是某个企业组织的身份而管理员把 Claude Code 订阅访问权限关掉了就会报这个错。同样绕开它的方式是用 API token。但我建议你在动手前先想一层你不是在绕过组织的安全策略只不过你自己个人要用 DeepSeek 兼容端点。这完全是两种场景。如果你在公司电脑上干活最好确认一下公司制度是否允许使用第三方 AI 服务如果这份代码属于公司资产使用外部 API 需要走公司的审批流程。5.4 401、403 和模型名报错配置完启动最容易遇到三类报错报错特征大概率原因处理方法401 UnauthorizedAPI Key 错误或变量名用的API_KEY而不是AUTH_TOKEN检查 Key 是否复制完整换成AUTH_TOKEN试试403 ForbiddenDeepSeek 平台余额不足或 Key 没权限登录开放平台看余额充值后再试model not found / 404请求体里还是 Anthropic 模型名没被覆盖确认ANTHROPIC_MODEL已设为deepseek-chat重启终端这里最坑的是第二种。DeepSeek 新注册用户会有一定额度的免费体验余额用完以后不充值就会 403。表面看是鉴权问题实际是钱包问题。我当时为了这个 403 查了半天文档最后登录平台一看余额为 0差点笑出声。6. 钱到底花在哪以及它对工作流的影响6.1 DeepSeek 的定价便宜到什么程度聊钱是最实在的。截至我写这篇内容时的公开定价大致是这样模型输入价格每百万 token输出价格每百万 tokenDeepSeek-chatV3 系列约 0.27 美元约 1.10 美元DeepSeek-reasonerR1 系列约 0.55 美元约 2.19 美元Claude Sonnet 系列 API约 3 美元约 15 美元Claude Opus 系列 API约 15 美元约 75 美元注意这只是量级参考具体到某个时间点会有调整但差距是数量级的。换句话说在 Claude Code 里完成同样的对话量如果走 DeepSeek 按量付费费用可能只有直接调用 Claude Sonnet API 的十分之一上下。6.2 一个真实项目的 token 消耗估算用我最近一个中型需求举例给一个内部工具加导出报表功能涉及前后端改动、联调、修 bug大概断断续续用了一个下午。这一下午 Claude Code 帮我写代码、看报错、解释模块逻辑累计消耗大约 60 万输入 token 和 8 万输出 token。按 DeepSeek-chat 的价格粗算输入0.6 × 0.27 0.162 美元输出0.08 × 1.10 0.088 美元合计约 0.25 美元如果同样用量走 Claude Sonnet 的 API输入0.6 × 3 1.8 美元输出0.08 × 15 1.2 美元合计约 3 美元单看一次任务差别还只是几美元但程序员是天天跟这个工具打交道的。一个月下来差距就是一顿火锅和一个月订阅费的差距。这还没算 Claude Code 干起活来特别依赖长上下文输入 token 消耗非常大模型单价差一点总账差很多。6.3 什么场景我仍会考虑官方 Claude 订阅必须说DeepSeek 并不是所有场景都能替代 Claude 官方模型。我在两类场景里还是会回到官方订阅第一处理特别复杂、需要强推理的架构设计问题时Claude 的 Sonnet 和 Opus 在代码理解深度上确实更强给出来的方案更稳第二DeepSeek 偶发性服务不稳时官方端点是最快的兜底。我的策略是“主 DeepSeek、备 Anthropic”。日常写代码、写测试、改 bug全走 DeepSeek遇到大型重构或者需要深度思考的问题切到 Anthropic 官方 API。反正 ccswitch 已经配置好了切换成本就是一条命令。这个组合让我同时享受了低成本和高体验不必在两个极端之间硬选一个。最后分享一个靠省钱逼出来的习惯因为 DeepSeek 是按量计费我现在会把任务拆得更小一次只让它改一个函数、看一段报错而不是把整个需求丢给它。以前用订阅套餐时不觉得 token 是钱模型乱发挥也不心疼现在按量付费反而逼着自己把 prompt 写得更清楚上下文控制得更精准生成的代码质量也上来了。这算是这场“省钱实验”意外带来的最值回报。
返回列表