☰
Claude Code接入DeepSeek:Windows完整配置与排错指南
2026/9/30 16:11:39 网站建设 项目流程

前阵子帮团队搭 CLI 编码助手,发现大家卡在同一件事上:手里有 DeepSeek 的 API key,却想让 Claude Code 这个终端工具去干活。网上说法不少,有的贴了一段配置,有的说了个大概就跑,真正讲清楚“为什么这样配”“配完怎么验证”的很少。我花了一个晚上在 Windows 上把整条路跑通,从安装 Node.js 到 settings.json 落地,中间踩了几个不算复杂的坑,但确实每一步都能卡住人。

这篇文章就是完整记录:Windows 上怎么安装 Claude Code,怎么用 DeepSeek 的 Anthropic 兼容端点把默认后端换成 DeepSeek,以及配置文件里每个字段到底意味着什么。适合那些想用 DeepSeek 跑 Claude Code 交互体验的人,也适合之前配过但始终 401/404 的朋友。

1. 为什么要用 DeepSeek 驱动 Claude Code:价值与边界

1.1 Claude Code 的壳与 DeepSeek 的核

Claude Code 是 Anthropic 出的终端编程代理,你在命令行里用自然语言描述需求,它能自动读项目文件、改代码、跑命令、查日志,整个过程在终端里实时交互。这个“交互层”做得不错,用过的应该能感受到它比普通对话框更贴近真实开发场景。

但 Claude Code 默认只认 Anthropic 官方的 API 和模型。很多开发者注册 Anthropic 账号不方便,或者觉得按量付费的成本偏高,于是想到一个问题:能不能让 Claude Code 的界面和工具体系保持不变,把底层的模型换成 DeepSeek?

答案是能。Claude Code 本身支持通过环境变量去覆盖 API 端点地址和鉴权 token,这是官方就有的能力,不是绕过什么机制。把ANTHROPIC_BASE_URL指到 DeepSeek 官方的 Anthropic 兼容端点,再把ANTHROPIC_AUTH_TOKEN换成 DeepSeek 的 API key,Claude Code 发出的请求就会打到 DeepSeek 的服务器上。

用大白话说:Claude Code 是司机,DeepSeek 是发动机。你只是把发动机换了,方向盘、油门、仪表盘还是原来那套。

1.2 收益在哪里

第一是性价比。DeepSeek 的 API 定价比 Anthropic 旗舰模型便宜不少,对日常写代码、改 bug、生成单测这类任务,开销能控制在很低的水平。

第二是注册门槛低。DeepSeek 开放平台注册就能拿 key,充值也很方便,没有太多弯弯绕绕。

第三是灵活性。同一份 Claude Code 配置,你既可以用官方模型跑,也可以用 DeepSeek 跑,通过环境变量或配置文件切换,本质上是一种模型路由的思路。

1.3 边界要提前说清楚

这不是让 Claude Code 变成 DeepSeek 官方客户端,也不是克隆 Claude 模型。你用 deepseek-chat 驱动 Claude Code,得到的模型行为是 DeepSeek-V3 的,不是 Claude 的。Claude Code 里一些依赖 Claude 模型特性的高级功能,表现会跟官方版本有差异,尤其是极其复杂的多步工具调用场景,偶尔会出现工具参数不匹配或执行中断的情况。

另外,DeepSeek 的上下文窗口跟 Claude 的不完全一样,长对话、大仓库分析时要注意实时压缩历史。我的判断是:日常开发足够用,但不能要求它在所有场景达到官方组合的水平。

适合的人群包括:个人开发者做快速原型,小团队想统一 CLI 工具链但控制 API 成本,以及纯粹想横向对比不同模型在编码任务上表现的人。

2. Windows 上的前置条件:Node.js、终端和网络可达性

2.1 安装 Node.js:版本和 PATH 是关键

Claude Code 依赖 Node.js 运行时。虽然官方目前也提供 Windows 原生安装包,但 npm 方式依然是最通用、最不容易出幺蛾子的路径,所以 Node.js 是必需品。

去 nodejs.org 下载 LTS 版本,Windows 用户直接拿 .msi 安装包。安装时注意一个细节:安装向导里有个 “Add to PATH” 选项,默认是勾上的,别取消。很多人装完 Node.js 后终端里输入node -v提示找不到命令,十有八九是这一步没注意。

安装完成后,新开一个终端窗口,别用旧的,因为 PATH 环境变量不会自动刷新。运行:

node -v npm -v

能看到版本号就说明环境没问题。我建议用 Node.js 18 以上的 LTS 版本,太老的版本跟 Claude Code 的依赖可能存在兼容性问题。

2.2 终端选择:Windows Terminal 是首选

Claude Code 是交互式终端工具,对 ANSI 转义序列有要求。Windows 自带的传统 conhost 窗口在某些情况下会显示乱码或布局错乱,我直接推荐 Windows Terminal。

Windows 11 自带 Windows Terminal,Windows 10 去 Microsoft Store 搜一下即可安装。装完把默认终端设置为 Windows Terminal,PowerShell 作为默认 shell。这样做的原因是 Claude Code 的交互界面依赖光标定位、颜色渲染、滚动区域,Windows Terminal 对这几项的支持比老终端好得多。

另外,如果你的 PowerShell 执行策略限制脚本运行,需要放开对本地脚本的约束。以管理员身份打开 PowerShell 执行:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

2.3 网络可达性:一个容易忽略的隐形坑

DeepSeek 的 API 在正常情况下可以直连,但有两类环境容易出问题。

一类是公司网络。企业网关或代理可能拦截外部 API 请求,如果之前在同一台 Windows 机器上配置过代理,环境变量里的HTTP_PROXY和HTTPS_PROXY会影响 Node.js 的请求行为。解决办法是确认这两个变量指向的代理是否正常,或者暂时去掉后在终端里测试:

curl https://api.deepseek.com

另一类是 DNS 解析异常。Windows 上偶发 DNS 缓存问题会导致请求超时,可以执行ipconfig /flushdns刷新。

注意:这一步的目标是确保你的机器能够正常访问api.deepseek.com。如果 curl 能返回 JSON 或错误码而不是超时,说明网络这一关过了。

3. 两种安装路线:npm 全局安装与官方 PowerShell 脚本

3.1 路线 A:npm 全局安装

最常见的安装方式是在终端里执行:

npm install -g @anthropic-ai/claude-code

执行后 npm 会把 claude 命令注册到全局环境。安装过程中如果看到权限相关的报错,比如EPERM或EACCES,在 Windows 上通常是 npm 全局目录没有写权限导致的。

我用的解决办法是重新设置 npm 的全局安装目录:

npm config set prefix "$env:APPDATA\npm"

然后把%APPDATA%\npm加到 PATH 环境变量里。之后重新打开终端,再执行一次安装命令。

安装完成后验证版本:

claude --version

如果输出版本号,说明命令已经可用。

3.2 路线 B:官方原生 Windows 安装脚本

如果你不想在全局环境里装 Node.js 依赖,或者希望 Claude Code 以独立 .msi 包的方式安装,可以用 Anthropic 官方提供的安装脚本。

以 PowerShell 身份执行:

irm https://claude.ai/install.ps1 | iex

这行命令会下载安装脚本并执行,脚本自动检测系统架构,下载对应的 Windows 安装包并完成安装。

两条路线我用下来觉得:npm 方式升级方便,npm update -g @anthropic-ai/claude-code一条命令搞定;原生安装包启动更快,但升级时要重新走安装流程。日常使用选哪条都行,后面的配置完全一致。

3.3 安装后的最终验证

不管哪条路线,安装成功后建议执行:

claude

如果配置尚未设置,它会进入初始化流程,可能会提示登录或输入订阅信息。此时先不要慌,这是正常的,等我们配置好 DeepSeek 后端后,就不再需要走这套登录流程了。

4. settings.json 配置详解:把请求改道 DeepSeek

4.1 配置文件的位置与优先级

Claude Code 的配置文件采用 JSON 格式,有两个层级:

  • 用户级配置:C:\Users\<你的用户名>\.claude\settings.json
  • 项目级配置:<项目根目录>\.claude\settings.json

两者同时存在时,项目级配置优先级更高,会覆盖用户级同名配置项。这是个很实用的机制:你可以在用户级放通用的 API 地址、密钥、默认模型,在项目级里只覆盖模型名,比如某个仓库专攻复杂算法,就单独把模型切到deepseek-reasoner。

有一个血泪教训:项目级配置如果存在.git仓库里,很容易不小心把 API key 提交上去。我的建议是:包含密钥的配置一律放用户级,项目级只放和业务相关的模型偏好。

4.2 最基础的一份 settings.json 长什么样

用 VSCode 或任意文本编辑器,在C:\Users\<你的用户名>\.claude\settings.json中写入:

{ "env": { "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic", "ANTHROPIC_AUTH_TOKEN": "sk-你的DeepSeek密钥", "ANTHROPIC_MODEL": "deepseek-chat", "ANTHROPIC_SMALL_FAST_MODEL": "deepseek-chat" } }

这里sk-你的DeepSeek密钥需要在 DeepSeek 开放平台创建 API key,创建后复制完整字符串,不要有多余的空格或换行。

保存文件后,新开终端进入任意项目目录,运行:

claude

如果一切正常,不会出现登录引导,直接进入对话界面。可以在对话中输入/status查看当前使用的模型,确认是不是deepseek-chat。

4.3 每个 env 变量到底在干什么

env块是 Claude Code 配置里的一个特殊结构,它会在 Claude Code 启动时把这些环境变量注入到当前进程。这样做的效果是:配置跟随工具走,不污染系统全局环境变量。

变量名值作用
ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic将 API 请求地址指向 DeepSeek 的 Anthropic 兼容端点
ANTHROPIC_AUTH_TOKENsk-xxx请求时携带的鉴权 token,替代默认的 Anthropic key
ANTHROPIC_MODELdeepseek-chat主对话模型,负责实际编码任务
ANTHROPIC_SMALL_FAST_MODELdeepseek-chat后台轻量任务模型,比如生成标题、摘要、文件描述

关于ANTHROPIC_SMALL_FAST_MODEL,很多人忽略它,但它很重要。Claude Code 内部会把一些低延迟、高吞吐的小任务单独路由到一个“小模型”上,默认指向 Anthropic 的 haiku 系列。如果你只改主模型,不改这个变量,后台任务还是会请求官方端点,轻则报模型不可用,重则鉴权失败。显式把它也设为deepseek-chat,所有内部请求才能统一走 DeepSeek。

4.4 模型选择:deepseek-chat 与 deepseek-reasoner

DeepSeek 开放平台目前对外提供两个模型:

  • deepseek-chat:对应 DeepSeek-V3,响应快,适合日常编码、重构、单测生成,是 Claude Code 默认驱动的首选。
  • deepseek-reasoner:对应 DeepSeek-R1,推理能力强,适合复杂架构设计、疑难 bug 排查,但延迟明显更高。

CLI 编码工具讲究交互效率,我建议日常用deepseek-chat。如果用deepseek-reasoner,每一步工具调用都可能经历长时间思考,整体节奏会变得很慢,尤其在多轮工具调用的场景里,体感像卡住一样。

如果某个项目必须用推理模型,可以单独在项目级配置里覆盖:

{ "env": { "ANTHROPIC_MODEL": "deepseek-reasoner", "ANTHROPIC_SMALL_FAST_MODEL": "deepseek-chat" } }

这样主模型用推理能力更强的 R1,后台小任务仍用 V3,兼顾速度和思考深度。

5. 首次启动、验证与高频故障排查

5.1 如何确认请求真的打到了 DeepSeek

配置好并启动 Claude Code 后,第一件事不是急着写需求,而是验证路由是不是真生效了。

在对话里输入:

/status

如果显示model: deepseek-chat,说明主模型配置生效。然后随便让它执行一个简单任务,比如“给这个项目写一个 README 框架”,观察输出速度。几秒钟内开始流式返回,说明链路是通的。

更严谨的做法是同时登录 DeepSeek 开放平台,在“用量”页面看是否出现实时的 token 消耗。只要能看到请求数在涨,说明所有请求确实走到了 DeepSeek 服务端。

还有一种方式用调试模式启动:claude --debug。它会输出每次 API 调用的详细日志,包括请求的 URL 和状态码,排错时特别好用。

5.2 高频错误:404、401、超时与模型不存在

我整理了实际使用中最常遇到的几类问题,按出现频率排序。

404 Not Found

如果你的ANTHROPIC_BASE_URL写成了https://api.deepseek.com,少了/anthropic路径,Claude Code 请求时会拼接出自己的 API 路径,最终拼出一个不存在的地址,服务端返回 404。解决办法是在 base URL 中补全/anthropic。

401 Unauthorized

鉴权失败。大概率原因是 API key 复制错了,或者 key 里带了空格。另一个容易被忽略的原因是 JSON 格式问题:settings.json 里如果写了注释,整个文件会被解析失败,Claude Code 静默忽略,然后自动用默认配置启动,最终所有请求都因为没有正确 token 而 401。注意:JSON 标准不支持注释。

模型不存在

如果你在ANTHROPIC_MODEL里写了deepseek-v3这类旧名称,DeepSeek 服务端会返回模型不存在的错误。到 API 对接时就用官方当前文档的模型标识符:deepseek-chat和deepseek-reasoner。

请求超时

Claude Code 默认的 API 超时时间可能对 deepseek-reasoner 不够长,尤其是复杂任务需要长时间推理时,可能提前中断。可以在 settings.json 里适当放宽:

{ "apiTimeoutMinutes": 15 }

apiTimeoutMinutes是 Claude Code 自己的配置项,写在根级,不放在env里。

5.3 Windows 特有的路径与终端问题

在 Windows 上,配置文件目录.claude是隐藏目录,默认情况下资源管理器看不到。你在C:\Users\<用户名>下按Ctrl+H显示隐藏项目,就能看到。

有些用户程序会生成一个用户目录,里面有中文或空格,比如C:\Users\张三。这种情况下配置文件路径同样按实际用户名处理,不要手动硬编码绝对路径,让 Claude Code 自己用%USERPROFILE%解析即可。

终端显示乱码时,在 PowerShell 里执行:

chcp 65001

这会把手动会话的代码页切到 UTF-8,Claude Code 输出就不会花屏。

6. 日常使用中的经验与费用控制

6.1 用批处理文件切换多套后端

我经常需要在一台机器上同时保留 DeepSeek 和 Anthropic 官方两套配置。环境变量与配置文件同时存在时,配置文件的优先级更高,但如果你用的是系统环境变量方式,切换起来需要反复修改系统配置,很不方便。

我的做法是两个批处理文件。

新建claude-deepseek.bat:

@echo off set ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic set ANTHROPIC_AUTH_TOKEN=sk-你的DeepSeek密钥 set ANTHROPIC_MODEL=deepseek-chat set ANTHROPIC_SMALL_FAST_MODEL=deepseek-chat claude

再建一个claude-anthropic.bat,把对应的变量换成 Anthropic 官方的 key 和模型。想用哪套就双击哪个文件,互不干扰。

6.2 费用控制:不要忽视会话累积效应

Claude Code 默认会在一次会话里持续累积上下文。你改的文件越多,对话轮次越长,上下文里的 token 就越大,费用随之上升。我在实际使用中摸索出三个控制手段。

第一,一个任务结束后及时用/clear清空对话历史,而不是让上下文一直挂在那里。

第二,对长任务的中间过程用/compact压缩历史。Claude Code 会把之前的关键信息浓缩成摘要,大幅减少后续请求的 token 量。

第三,在对话中随时用/cost查看本次会话已经消耗的金额,心里有数。尤其在用 deepseek-reasoner 时,它输出的 reasoning token 也计入费用,长任务跑到后期成本明显上升。

6.3 CLAUDE.md 的作用

Claude Code 支持在项目根目录放一个CLAUDE.md文件,里面写项目说明、代码规范、注意事项。每次会话启动时,Claude Code 会自动读取这个文件作为上下文的一部分。

我强烈建议接 DeepSeek 后把这个文件写得稍微详细一点,因为 DeepSeek 在遵循复杂项目规范方面,需要更明确的指令才能发挥出稳定水准。比如写清楚目录结构、测试命令、构建方式,比让它现场摸索可靠得多。

6.4 多工具调用场景下要留个心眼

DeepSeek 的 Anthropic 兼容端点在多数场景下工作得很流畅,尤其是代码生成、文件修改、命令执行这类标准工具链。但在一些非常复杂的多工具联动场景,比如连续读取多个文件后再交叉修改多处引用,偶尔会出现工具调用参数偏差。

遇到这种情况,最简单的应对是把任务拆小,一次让它处理一个明确目标,而不是扔给它一个“帮我重构整个模块”的大指令。拆细之后,DeepSeek 的完成质量会明显上升。

我自己用下来,稳定运行几周后,现在的工作习惯是:简单任务直接对话,中等任务给明确清单,复杂任务拆成 3 到 4 个子任务逐项推进。把心态从“它应该理解我的全部意图”调整为“我把意图表达清楚,它会执行得很好”,这套组合基本可以长期服役。

配置本身不复杂,真正有价值的是理解它为什么这样工作。ANTHROPIC_BASE_URL像一块路由表,ANTHROPIC_AUTH_TOKEN像门禁卡,ANTHROPIC_MODEL和ANTHROPIC_SMALL_FAST_MODEL像岗位安排。这四个变量吃透了,以后换任何兼容 Anthropic 协议的模型服务商,你只需要改这几行就能接上。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询