news 2026/9/7 13:01:05

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 是这个入口里非常特别的一个产品。它不是一个网页对话框,而是一个跑在终端里的编程代理。它能读你的项目目录、调用grepfind搜索代码、帮你执行测试命令,甚至根据编译错误自己迭代修复。这个体验非常接近“请了个能看懂整个仓库的结对程序员在终端里陪你干活”。

但关键点在这: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/anthropic
ANTHROPIC_AUTH_TOKEN请求时携带的鉴权令牌,填 DeepSeek 的 API Keysk-开头的一长串
ANTHROPIC_MODEL指定主对话模型,覆盖 Claude Code 默认的 Sonnet 模型deepseek-chat
ANTHROPIC_SMALL_FAST_MODEL指定小体量快速模型,用于标题生成、简单补全等场景一般也填deepseek-chat
ANTHROPIC_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_URL="https://api.deepseek.com/anthropic" export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek密钥" export ANTHROPIC_MODEL="deepseek-chat" export ANTHROPIC_SMALL_FAST_MODEL="deepseek-chat"

然后启动:

claude

正常情况会进入一个交互式对话框。这时候随便问一句“帮我写一个 Python 快速排序”,看它响应是否正常。如果模型名配置不对,你会立刻看到报错;如果网络和鉴权有问题,一般也会在几秒内反馈。

Windows 用户用的是 PowerShell,语法稍微不同:

$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" $env:ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek密钥" $env:ANTHROPIC_MODEL="deepseek-chat" $env:ANTHROPIC_SMALL_FAST_MODEL="deepseek-chat" claude

Windows 的坑主要在 PATH。如果提示claude 不是内部或外部命令,也不是可运行的程序,基本就是 npm 全局目录没进 PATH,或者终端没重启。重启终端后再试,不行就去检查 npm 全局安装路径,通常是在%APPDATA%\npm

环境变量如果用着没问题,想固化下来,macOS 就写进~/.zshrc

echo 'export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"' >> ~/.zshrc echo 'export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek密钥"' >> ~/.zshrc echo 'export ANTHROPIC_MODEL="deepseek-chat"' >> ~/.zshrc echo 'export ANTHROPIC_SMALL_FAST_MODEL="deepseek-chat"' >> ~/.zshrc source ~/.zshrc

Windows 想持久化,可以用系统设置里的“编辑系统环境变量”,图形界面添加,比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 本地模型各保存成一套配置,比如deepseekanthropiclocal三套 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 作为鉴权 token,Claude 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)输出价格(每百万 token)
DeepSeek-chat(V3 系列)约 0.27 美元约 1.10 美元
DeepSeek-reasoner(R1 系列)约 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 写得更清楚,上下文控制得更精准,生成的代码质量也上来了。这算是这场“省钱实验”意外带来的最值回报。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 13:01:01

本地AI工具部署前必读:硬件自查、环境准备与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 13:00:41

从h5-9-os.zip解析H5网页OS的架构与多端部署实践

简介:面向光猫h5-9型号的完整操作系统备份包,专为网络运维、嵌入式开发与光猫维护人员设计,可在系统异常时提供文件恢复、运行状态分析及硬件故障定位的底层依据。压缩包共2000个文件,涵盖so库、txt说明、xml配置、shell脚本、js/…

作者头像 李华
网站建设 2026/9/7 12:59:51

从发布包命名到7z压缩:软件版本归档与解压部署实践指南

简介:青岛鼎信消防主机软件更新包FireV21.04.20-V1.0.7z,面向消防系统安装调试与运维人员,用于升级消防主机固件或控制软件,完善火灾报警联动与设备监控功能,主要解决现场软件版本老旧、兼容性不足、稳定性不够等问题。…

作者头像 李华
网站建设 2026/9/7 12:58:41

PyTorch入门:从线性回归到二分类神经网络的训练实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 12:55:30

C#跨平台移动工业监控:从TCP Socket到MVVM的完整实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 12:52:52

数据备份系统设计与实现:从增量备份到快速恢复的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华