ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Windows下用DeepSeek驱动Claude Code:完整配置与避坑指南

Windows下用DeepSeek驱动Claude Code:完整配置与避坑指南 去年年底开始我把日常工作流里几个 AI 工具重新组合了一遍。主力机型是一台 Windows 笔记本终端里跑的是 Claude Code模型后端换成了 DeepSeek。这个组合听起来有点“混搭”但实际用下来无论是日常写脚本、改配置、批量处理代码文件还是让 AI 帮我梳理项目结构都很顺手。关键是整个过程不复杂装一个 Node.js 环境安装 Claude Code 命令行工具再写好 settings.json 把模型指向 DeepSeek 的接口就行。真正的难点不在“安装”而在“配置的细节”。比如 settings.json 放在哪里、环境变量该怎么写、为什么明明接了 DeepSeek 却一直报模型不存在、Windows 下执行脚本时各种权限报错怎么处理……这些问题网上信息很零散我一边查一边试踩了几天坑才把这套流程理顺。这篇文章就把完整链路串一遍从零开始直接照着操作Windows 上也能顺利跑起来。1. 思路拆解为什么用 DeepSeek 驱动 Claude Code1.1 这个组合解决了什么先明确一点Claude Code 是 Anthropic 推出的命令行编程助手本身需要调用大模型接口才能干活DeepSeek 是深度求索提供的大模型服务开放了 API 接口而且专门做了 Anthropic 协议的兼容层。所谓“用 DeepSeek 驱动 Claude Code”就是让 Claude Code 这个“外壳”把请求发到 DeepSeek 的接口由 DeepSeek 的模型完成实际推理。这样做的直接好处是明显的。Claude Code 的交互体验是我用过最顺手的 AI 编程工具之一比如它可以读写项目文件、自动补全多文件修改、在终端里逐步执行命令这些能力依赖的是 Claude Code 本身的工具调用框架。但它的默认模型调用成本不算低而 DeepSeek 在通用对话和代码生成场景下表现不错价格又相对友好API Key 申请流程也简单。把两者的优势拼在一起等于保留了一个好用的“司机”换了一台更省油的“发动机”。我身边不少朋友也是这个思路先有一个稳定的 AI 编程终端模型可以按需切换。今天用这个模型明天换那个模型配置文件一改就切换不用重新学一套工具。1.2 整体调用链路整个链路可以理解为三层第一层是客户端Claude Code CLI负责接收你的指令、调度工具读文件、写文件、执行命令、把模型生成的文本渲染成交互界面。第二层是协议适配Claude Code 默认按 Anthropic Messages API 格式发送请求。为了让请求能发到 DeepSeek我们需要把接口地址Base URL指向 DeepSeek 提供的 Anthropic 兼容地址。第三层是模型服务DeepSeek API 收到请求后把模型输出返回给 Claude Code。这里最关键的概念是“兼容接口”。DeepSeek 同时提供 OpenAI 格式和 Anthropic 格式两种接口。Claude Code 只认 Anthropic 格式所以不能直接把地址配成普通 OpenAI 接口地址否则请求格式对不上会报 400、404 或者 JSON 解析错误。正确地址是https://api.deepseek.com/anthropic这种形式的兼容端点Claude Code 会在这个地址后面拼接/v1/messages并发送请求。一句话总结思路安装 Claude Code然后在配置里把“模型地址”重定向到 DeepSeek并把模型名固定成 DeepSeek 能识别的模型 ID。后面所有配置都是围绕这件事展开的。2. 环境准备Windows 下把基础环境搭好2.1 Node.js 与 npmClaude Code 是一个 npm 包所以最基础的前置条件是 Node.js 环境。Windows 上安装 Node.js 有几种方式我建议按自己的习惯选官网下载 LTS 安装包一路下一步。这是最稳妥的方式环境变量会自动配好。命令行安装winget install OpenJS.NodeJS.LTS适合习惯用 winget 管理软件的人。用 nvm-windows 管理多版本 Node适合需要频繁切换 Node 版本的前端开发者。安装完以后打开 PowerShell 或 Windows Terminal执行node -v npm -v如果能正常输出版本号说明 Node 环境没问题。我建议 Node 版本至少 18 以上我本机用的是 20 LTS 版本跑 Claude Code 没遇到兼容问题。如果你的系统里装了多个 Node 版本注意把当前版本切到 18 再继续否则后面安装包可能因为 engine 版本检查失败。注意Windows 下安装 Node.js 时会自动帮你把 Node 路径写入系统 PATH。如果你之前装过旧版本卸载后重新安装建议装完以后重启一次终端让 PATH 生效。2.2 安装 Claude CodeNode 环境就绪后在终端里执行npm install -g anthropic-ai/claude-code这里用的是全局安装安装完成后claude命令就会被注册到全局。执行claude --version如果没报错说明安装成功。这里有两个 Windows 特有的坑我提前说一下第一PowerShell 执行策略。有时候你运行claude系统会提示“无法加载文件因为在此系统上禁止运行脚本”。这是因为 PowerShell 默认执行策略比较保守。解决办法是以管理员身份打开 PowerShell执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser这个命令只对当前用户生效不会影响系统全局安全策略改完以后本机脚本和从网上下载的经过签名的脚本都能正常执行。第二npm 全局目录没在 PATH 里。如果你安装后运行claude提示“不是内部或外部命令”那基本是 npm 的全局安装目录没被加入 PATH。可以执行npm prefix -g这个命令会显示全局安装目录比如常见的C:\Users\你的用户名\AppData\Roaming\npm。把这个目录加到当前用户 PATH 里再重开终端即可。npm 也支持自己改全局目录但对大多数用户来说没必要。2.3 搞定 DeepSeek API KeyDeepSeek 的 API Key 在它的开放平台里申请步骤很简单注册账号、在控制台创建一个 API Key、往账户里充一点额度。创建 Key 的时候会显示一串以sk-开头的字符串记得复制保存好离开页面后就看不到了只能重新创建。拿到 Key 以后我先建议你直接测一下接口通不通不要等到配置完 Claude Code 再来排查。用 PowerShell 执行下面的命令注意环境变量区分大小写、换行符要用 PowerShell 语法curl.exe -X POST https://api.deepseek.com/anthropic/v1/messages -H Content-Type: application/json -H Authorization: Bearer sk-你的Key -H anthropic-version: 2023-06-01 -d {model:deepseek-chat,max_tokens:64,messages:[{role:user,content:ping}]}注意我特意写了curl.exe而不是curl。Windows PowerShell 里curl是Invoke-WebRequest的别名参数语法完全不一样直接用会报错。加上.exe才能调用真正的 curl 程序。如果接口正常你会收到一段 JSON 响应里面有模型返回的文本内容。如果收到 401说明认证头不对如果收到 404说明地址路径可能写错了。这一步调试好以后后面 Claude Code 的配置就只是重复利用这些信息而已。3. settings.json 配置详解真正决定成败的地方3.1 配置文件在哪里Claude Code 的配置支持多种层级最常用的是这两个用户级配置C:\Users\你的用户名\.claude\settings.json项目级配置你项目目录\.claude\settings.json其中用户级配置对所有项目生效项目级配置只对当前项目生效并且会覆盖用户级配置里的同名内容。除了标准的settings.json还有settings.local.json后者专门用来放个人本地配置比如你自己的 API Key。它的优先级比同级的settings.json更高适合放在 Git 仓库里让团队共享通用配置、又不用把自己的密钥提交上去。配置文件本质上就是一个 JSON 文件核心是定义“请求发到哪、用哪个 Key、让模型叫什么名”。手动编辑时建议先用claude跑一次让程序自动创建好.claude目录然后再去编辑文件以免因为目录不存在导致写入失败。3.2 核心字段逐个拆解下面这份是我在 Windows 上实际能跑通的配置{ env: { ANTHROPIC_BASE_URL: https://api.deepseek.com/anthropic, ANTHROPIC_AUTH_TOKEN: sk-你的DeepSeek密钥, ANTHROPIC_MODEL: deepseek-chat, ANTHROPIC_SMALL_FAST_MODEL: deepseek-chat, ANTHROPIC_DEFAULT_HAIKU_MODEL: deepseek-chat }, permissions: { allow: [ Read, Glob, Edit, Bash(npm run build) ], deny: [] } }逐个解释一下这些字段的用途ANTHROPIC_BASE_URL是最核心的一项。它告诉 Claude Code 把所有 Anthropic 格式的请求发到哪个地址。DeepSeek 的 Anthropic 兼容地址就是刚才说的https://api.deepseek.com/anthropic。这里有个极其容易踩的坑不要在地址结尾加/v1/messages。Claude Code 本来就默认会在 Base URL 后面拼接这个路径你如果自己加上去最终请求地址会变成.../anthropic/v1/messages/v1/messages结果就是 404。我在第一次配置时把官方文档里的完整请求地址直接抄成了 Base URL排查了好久才发现是路径重复问题。ANTHROPIC_AUTH_TOKEN是认证令牌。Claude Code 读取这个变量后会在请求头里加一个Authorization: Bearer sk-xxx的认证信息。为什么不推荐用ANTHROPIC_API_KEY因为这个变量走的是另一种请求头格式x-api-key很多第三方兼容服务对认证头的解析没那么统一用 Bearer 方式兼容性更好。如果你用ANTHROPIC_API_KEY反复遇到 401换成ANTHROPIC_AUTH_TOKEN往往就好了。ANTHROPIC_MODEL是主模型名。Claude Code 默认会请求像 Sonnet、Opus、Haiku 这类 Anthropic 模型名但 DeepSeek 接口并不认识这些名字。DeepSeek 的模型 ID 是deepseek-chat对应 DeepSeek-V3通用对话和deepseek-reasoner对应推理模型思考链更长。我们必须显式把主模型固定成deepseek-chat否则大概率会收到“模型不存在”的报错。另外两个ANTHROPIC_SMALL_FAST_MODEL和ANTHROPIC_DEFAULT_HAIKU_MODEL是辅助模型配置。Claude Code 在处理标题生成、对话摘要、快速分类等轻量任务时可能会调用较小的模型。如果不把这些变量也统一指过去DeepSeek 服务可能收到一个它不认识的 Haiku 模型名导致某个子功能报错。把这三个模型变量统统指向deepseek-chat是最省心的做法。最后是permissions字段。Claude Code 在运行时要调用各种工具比如读文件、编辑文件、执行命令。默认情况下它会逐次询问你是否允许这在交互模式里没问题但有点烦。你可以在allow列表里把高频操作提前授权比如Read读文件、Glob搜索文件、Edit编辑文件以及你常用的构建命令。deny列表则用来强制禁止某些危险操作。注意权限规则的写法可能随版本变化第一次配置时可以先留空allow跑几轮以后再根据常见操作把许可加上。3.3 用命令配置还是要手写文件Claude Code 本身也提供命令行配置方式比如claude config set --global env.ANTHROPIC_BASE_URL https://api.deepseek.com/anthropic这个命令会自动帮你更新配置文件理论上比手写 JSON 更安全因为它会保证 JSON 格式正确。但我个人建议你明白两件事。第一命令配置和手写文件最终作用在同一个文件上所以不要一会儿用命令、一会儿手写容易造成配置被覆盖。第二配置文件是标准的 JSON不能写注释。如果你从网上复制了一段带//注释的配置Claude Code 解析时会直接报错而且报错信息往往不够直观。所以稳妥的路径是先熟悉文件结构用编辑器打开配置按 JSON 格式手写一遍想确认某项配置是否正确时再借助claude config get之类的命令查看。4. 完整实操从空环境到跑通一次对话4.1 最小可用配置我把整个流程按顺序拆成下面几步每一步做完可以立即验证避免到最后来一次性排查。第一步确认 Node 环境。node -v npm -v第二步安装 Claude Code。npm install -g anthropic-ai/claude-code claude --version第三步创建配置文件。先手动创建.claude目录并打开配置文件mkdir $env:USERPROFILE\.claude notepad $env:USERPROFILE\.claude\settings.json把前面那份最小配置写进去保存退出。注意把sk-你的DeepSeek密钥替换成你真实的 API Key。如果用的是 PowerShell这个路径写法没问题用 CMD 的话可以写成%USERPROFILE%\.claude\settings.json。第四步启动 Claude Code。claude启动后你就进入了交互式终端可以像聊天一样输入指令。先让它做个简单的文件操作测试比如“用 Python 写一个读取 CSV 文件的脚本保存到当前目录”。如果配置正确Claude Code 会调用 DeepSeek 的模型响应你的请求并且把文件写出来。4.2 用非交互模式快速验证交互模式下如果配置有问题你可能要等半天才看到报错。更快的验证方式是使用 Claude Code 的 print 模式。在终端里执行claude -p 用一句话解释什么是 REST API-p参数的意思是 print非交互式地执行一次请求然后直接输出结果。这个模式不进入交互界面只发起一次标准请求。如果这个命令能正常返回一段文字说明 Base URL、鉴权、模型名这几个核心配置全部正确。之后再去交互模式下验证工具调用能力排查范围会小很多。我甚至建议你把最终板配置放到一个共享文档里以后换电脑、重装系统时照着做五分钟就能恢复环境。Windows 上很多环境问题都是“第一次没跑通、第二次已经会了”。4.3 在 VSCode 里用上 Claude Code很多用 Claude Code 的人不会只开一个独立终端窗口而是希望在 VSCode 里直接配合项目代码使用。最简单的方式不是安装额外插件而是在 VSCode 的集成终端里运行claude。点开 VSCode 的终端面板快捷键Ctrl切到 PowerShell进入项目目录以后执行claude它就能直接读取项目上下文并与 VSCode 的文件系统协同工作。有一点需要提醒项目里的.claude/settings.json和用户级~/.claude/settings.json会同时生效项目级优先。如果你在用户级配置里写了 DeepSeek 的密钥又在项目级配置里写了一遍其他的 Key实际生效的是项目级内容。为了避免密钥被 git 提交到仓库建议在项目里只放一个团队共享的settings.json不含密钥密钥放到settings.local.json同时把.claude/settings.local.json写进.gitignore。我在一个多人协作的项目里见过直接把 API Key 写进项目配置的人提交以后半天才意识到只能紧急撤销并重新生成密钥。这种事能提前预防就提前预防。5. 常见问题与排查记录5.1 模型名报错典型表现请求发出后很快返回 400错误信息里出现model not found或Unknown model。排查思路先看ANTHROPIC_MODEL是否被设置成了deepseek-chat。很多人只设置了 Base URL忽略了模型名。Claude Code 默认发送的是 Anthropic 的模型名DeepSeek 不可能认识。还有一个隐蔽的原因Claude Code 在版本更新后可能会改变默认模型名如果你以前能跑通某天突然开始报 Unknown model可以检查是不是配置被覆盖、或者新增了一个辅助模型变量比如ANTHROPIC_DEFAULT_HAIKU_MODEL没有被指定。处理办法打开settings.json确认环境变量里模型相关的三个值都指向deepseek-chat。如果你想用推理模型也可以把主模型改成deepseek-reasoner但注意推理模型的响应时间更长在需要频繁调用工具的代码任务里整体节奏会比deepseek-chat慢不少。5.2 鉴权失败 401/403典型表现AuthenticationError或者提示invalid x-api-key、invalid authorization token。排查思路先确认 Key 本身有没有权限、账户余额是否充足。然后看认证头用的是哪一个环境变量。如果你用的是ANTHROPIC_API_KEY但 DeepSeek 的兼容接口用的是Authorization: Bearer头两者就对不上。处理办法统一改成ANTHROPIC_AUTH_TOKEN。另外还要检查 Key 前面有没有带多余的空格、引号尤其是从网页复制到配置文件时很容易粘进去不可见的空格字符导致请求头变成Bearer sk-xxx这种中间有双空格的形式。这算是我见过最低级也最隐蔽的错误之一。5.3 Windows 特有执行策略与 PATHPowerShell 执行策略问题前面提过这里列成速查表症状原因解决运行claude提示禁止运行脚本PowerShell 执行策略限制Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser提示claude不是内部或外部命令npm 全局目录不在 PATH执行npm prefix -g找到目录加入用户 PATH安装时报EPERM或EACCESnpm 全局目录权限不足以管理员身份运行终端或重新安装 Node 到当前用户目录终端中文乱码代码页不对在终端里执行chcp 65001切到 UTF-8 代码页另外Windows 防火墙首次运行 Node.js 时可能弹窗询问是否允许网络访问。如果配置没问题但请求一直超时去防火墙设置里确认 Node.js 有没有被放行常有杀毒软件会把 Node 的对外请求拦下来。5.4 长任务与上下文超限Claude Code 在处理复杂项目时可能需要上下文很长或者在执行工具调用过程中多次往返请求。DeepSeek 的上下文长度足够大多数代码任务用但如果你一次性塞入大量文件内容仍可能触发“上下文长度超限”之类的报错。我自己的处理习惯是控制单次请求携带的文件范围。不要让 Claude Code 一次性读取整个超大目录的所有文件而是先把目录结构给它让它自己挑需要看的文件看。遇到批量修改任务拆成几轮来做每一轮明确告诉它这一轮处理哪些文件、改动范围是什么反而比一口气全交给它更可靠。也可以在交互界面里开启/compact压缩历史或手动清理上下文但这些操作在不同版本里入口位置略有差别以命令行提示为准。5.5 其他几个容易踩的坑还有一个常见问题是settings.json格式错误。很多人喜欢在 JSON 里加注释比如{ env: { // 这里填DeepSeek地址 ANTHROPIC_BASE_URL: ... } }把这一行注释去掉否则 Claude Code 启动时可能直接静默跳过配置或者报错说配置无法解析。配置类文件和写代码不一样JSON 本身就是标注格式不额外支持注释。另一个坑是 Base URL 端口和协议。确保是https://不要写成http://除非你本地搭了一个代理服务做调试。协议写错报错信息通常是连接被拒或者证书错误。最后如果 DeepSeek API 偶尔返回 503 或 429那是服务端限流或临时过载。Claude Code 本身有自己的重试机制但遇到持续 429 时最直接的办法是停一停、降低请求频率。不要反复重试大规模任务那样限流会更严重。6. 我的最终建议与使用心得整套流程跑通以后我最大的体感是“配置思路比具体命令更重要”。命令就那么几条但想清楚 Base URL、鉴权 Token、模型名这三个变量是如何配合的遇到任何报错都能快速定位。Windows 上的坑无非就是执行策略、PATH、curl 别名这几个踩过一次以后基本就是常识了。我现在的工作习惯是重装系统后用自带的初始化脚本一键装好 Node 环境然后照着这份配置三分钟接好 Claude Code。日常开发中我把 DeepSeek 的deepseek-chat作为默认模型代码重构、脚本编写、文件批量修改都用它。遇到复杂推理任务时临时切到deepseek-reasoner用完再切回来。这个组合也让我养成了一个新习惯任何新工具接到本地以后先写一个最小验证用例而不是直接上复杂任务。这种“把链路拆到最短再验证”的思路帮我在各种环境问题里少花了很多时间。最后分享一个配置上的小技巧如果你有多个模型服务需要切换可以分别写成几个配置片段放在文档里保存。换服务时只需要改ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN两个变量三十秒就能切完。这也是 Claude Code 这套配置体系最值钱的地方它把你对模型的选择彻底解耦成了配置文件里的几个字段想用哪家模型改配置就行完全不需要换工具。
返回列表