☰
Claude Code 接入 DeepSeek 指南:终端 AI 编程环境配置与实战
2026/10/13 4:07:15 网站建设 项目流程

最近我把终端里常用的 AI 搭档换了个模型底座:Claude Code 还是那个 Claude Code,但背后真正干活的模型换成了 DeepSeek。装完跑通之后,最直观的感受是:命令行里写代码、改代码、跑测试,真的可以像聊天一样顺畅。为了让你少走弯路,这篇我把从安装、配置到跑通 Demo 的完整过程都记下来,包括每一步为什么要这么做,以及我踩过哪些坑、怎么排查。

先说清楚一个容易混淆的点。Claude Code 和 DeepSeek 是两个层面的东西:Claude Code 是跑在终端里的 AI 编程助手,负责理解你的自然语言、读取项目文件、决定要改哪里;DeepSeek 是背后的模型服务,负责真正生成代码和回答。把它们接在一起,本质上就是让 Claude Code 这个“客户端”去请求 DeepSeek 这个大模型。很多人以为这是一键集成的,实际上只需要改几个配置项。

这篇教程适合谁?如果你是刚接触终端 AI 编程的开发者,或者已经用惯了 IDE 插件、想在纯命令行环境里更高效地工作,都可以跟着完整走一遍。我会把“为什么”也讲清楚,这样后面遇到问题你才知道去哪里找原因,而不是盲目重装。

1. 先搞懂这套组合到底在做什么

1.1 Claude Code 是什么

Claude Code 是一个命令行交互式编程工具。用一句话概括:它像一个坐在你终端里的结对程序员。你给它一个任务,它能扫描当前项目目录,阅读相关文件,自己决定改哪些代码、执行什么命令,然后一步一步把结果反馈给你。

我第一次用的时候最惊讶的是,它不只是“输出一段代码片段”,而是真的会创建文件、写测试、运行命令、修复报错。比如你让它“把 README 里所有接口说明整理成表格”,它会自己定位到 README,按你的要求修改,甚至会在提交前帮你检查改动。这个体验和网页聊天窗口完全不同——网页聊天只给你答案,Claude Code 是在你的真实项目里干活。

当然它也不是万能的。它依赖模型的理解能力、项目上下文的信息量,以及你给它的指令质量。所以后面我会花不少篇幅讲怎么把指令写清楚、怎么利用项目上下文,这是用好它的关键。

1.2 DeepSeek 为什么能和它搭配

Claude Code 在设计时就支持通过环境变量指定模型服务的地址和凭证。DeepSeek 提供了兼容接口,让 Claude Code 可以把请求发送到 DeepSeek 的模型服务上。所以你不需要改工具本身的代码,只要配置几个环境变量,就能把默认模型换成 DeepSeek 的模型。

选择 DeepSeek 的原因不外乎三点:一是 API 按量付费,用多少算多少,起步门槛很低;二是它的 deepseek-chat 和 deepseek-reasoner 两个模型在代码任务上表现都够用;三是接口方式很标准,接入成本低。我这里不想评价谁好谁坏,只想说,你完全可以用它作为日常编程的主力模型。

这里必须澄清一点:这不是什么“绕过限制”的操作,就是很常规的模型服务配置。就像你给一个软件换数据源一样,改地址、改密钥、改模型名,剩下的逻辑完全不变。Claude Code 负责工程能力,DeepSeek 负责模型能力,两者各司其职。

1.3 适合谁用,不适合谁用

适合三类人:

  • 个人开发者:想在项目里快速生成代码、写自动化脚本、做批量重构;
  • 技术负责人:用它审阅代码、生成变更记录、跨文件修改逻辑;
  • 命令行重度用户:不想为了 AI 功能切换到图形 IDE,希望在终端里一站式完成。

不适合的情况也有。如果你的项目非常依赖某种私有框架、复杂远程调试,AI 工具能给到的帮助会比较有限;如果你期望 AI 输出 100% 正确、完全不需要人工检查,那现阶段任何模型都做不到,这个预期要调整。

我实际用下来的定位是“代码写作和重构的加速器”,不是“完全自动驾驶”。每次让 AI 改完代码,我都会看一眼 diff,有疑问就追问一句“为什么这么改”。这个习惯保持到现在,项目基本没出过因为 AI 乱改导致的严重事故。

2. 安装前先把四个环境变量搞清楚

2.1 环境前提检查

在开始之前,先确认你的机器上有 Node.js 18 或更高版本。Claude Code 是以 npm 包形式安装的,所以 Node 和 npm 是硬前提。终端里执行:

node -v npm -v

两条命令都能返回版本号,就可以继续。如果没有 Node,去官网下载 LTS 版本安装,安装完成后重新打开终端再验证。Windows 用户尤其注意:安装 Node 时最好勾选“Add to PATH”,否则后续在 PowerShell 里会找不到 npm 命令。这个坑虽然基础,但我在群里看到不少人卡在第一步。

Git 不强制,但我建议装。因为 Claude Code 在修改项目时会有意识地调用 git 查看变更状态。如果你希望它生成提交信息、分析 diff 或者对比改动,git 几乎是必需品。另外,建议在空目录或者已经纳入 git 管理的目录里使用它,这样任何一次修改都能通过 git diff 看到,也能随时回滚。

2.2 申请 API Key 与模型选择

DeepSeek 的使用方式是在开放平台创建 API Key。创建后保存好,形式一般是sk-开头的一串字符,后面配置环境变量时要填进去。整个过程都是在对应平台完成的,按 token 计费,没有额外的隐藏成本。

模型选择这里值得多说一句。DeepSeek 开放平台通常提供两种模型名:

  • deepseek-chat:通用对话模型,擅长日常代码生成、解释、重构,速度快,适合绝大多数场景;
  • deepseek-reasoner:深度推理模型,会在回答前进行更长链路的思考,适合复杂算法、逻辑推演和疑难 bug 定位,但响应时间更长。

我个人的习惯是:默认用deepseek-chat处理 80% 的日常任务,遇到需要深入分析的问题再临时切换成deepseek-reasoner。在 Claude Code 里切换模型,本质上是改环境变量后重启会话,所以配置方式一定要熟练。

2.3 四个环境变量的作用

这是整套配置的核心。Claude Code 原生的模型服务地址是固定的,现在要指向 DeepSeek,需要设置下面四个变量:

环境变量名作用示例值
ANTHROPIC_BASE_URL告诉 Claude Code 把所有模型请求发到哪个地址https://api.deepseek.com/anthropic
ANTHROPIC_AUTH_TOKEN用于认证的密钥,填 DeepSeek 的 API Keysk-你的key
ANTHROPIC_MODEL主模型名,用于主要对话和代码生成deepseek-chat
ANTHROPIC_SMALL_FAST_MODEL轻量模型名,用于标题生成、意图识别等低难度任务deepseek-chat

为什么有四个而不是一个?因为 Claude Code 内部会把任务分级:主任务用大模型,边角任务用更快的小模型。如果你只设置了ANTHROPIC_MODEL却漏掉ANTHROPIC_SMALL_FAST_MODEL,Claude Code 可能会拿默认的轻量模型地址去请求,而那个地址指向原来的服务,自然连不通。这个坑我见过很多次,先记住结论:两个模型名都显式设置,能省很多事。

ANTHROPIC_BASE_URL里的路径也很关键,一定要完整填到/anthropic这个子路径,而不是只填域名根路径。因为 Claude Code 走的是 Anthropic 兼容协议,DeepSeek 需要在路径上识别出“这是 Anthropic 格式的请求”。如果你只写域名,请求格式对不上,报错信息会非常抽象。

3. 保姆级安装:从空终端到第一条指令

3.1 安装 Node.js 和 Claude Code

如果 Node 确认没问题,直接执行:

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

这条命令会把 Claude Code 安装到全局。安装完之后运行:

claude --version

如果有版本号输出,说明安装成功。如果你所在环境的 npm 访问比较慢,可以先配置 npm 镜像仓库,再执行上面命令,速度会明显提升:

npm config set registry https://registry.npmmirror.com

这个设置只影响 npm 下载源,不影响之后 Claude Code 访问模型 API。镜像只解决“安装包下载慢”的问题,不要把它和模型服务的地址混为一谈。很多人以为换源就能解决所有网络问题,其实安装和运行是两回事,运行阶段的请求是走模型接口,和 npm 源没有关系。

安装过程中如果有权限相关报错,通常是 npm 全局目录权限不足。macOS/Linux 下可以检查 npm 的全局路径是否为当前用户可写,Windows 下则检查是否用管理员权限打开了终端。一般不建议直接用sudo npm install硬撑,最好把权限问题修干净,否则后面更新依赖还会遇到同样的坑。

3.2 写入环境变量

安装完先别急着启动,把第二节说的四个环境变量写进去。

macOS / Linux 用户,编辑~/.zshrc或~/.bashrc,追加:

export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" export ANTHROPIC_AUTH_TOKEN="sk-你的key" export ANTHROPIC_MODEL="deepseek-chat" export ANTHROPIC_SMALL_FAST_MODEL="deepseek-chat"

然后执行source ~/.zshrc让配置生效。如果你用的是 bash,就 source~/.bashrc。

Windows PowerShell 用户在当前会话里可以直接执行:

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

这种写法只对当前窗口生效,关掉终端就没了。想永久生效,Windows 可以在“系统属性 - 环境变量”里新增用户变量,也可以在 PowerShell 里使用setx命令。我用下来更推荐图形界面方式,因为setx对变量值长度有限制,而且修改后要新开终端才能读到。

这里提醒一句:不要把 API Key 写进项目的代码文件或提交到仓库。环境变量的意义就在于此,它让密钥待在系统级配置里,项目代码可以随时公开分享,不用担心密钥跟着泄露。

3.3 启动并验证连接

配置好后,在项目目录里运行:

claude

第一次启动可能会有授权提示,要求确认是否信任当前目录,按提示输入 y 即可。Claude Code 会扫描目录结构,然后进入交互模式,提示符类似>。此时你可以输入斜杠命令查看状态:

/status

重点看两处:模型名称是否显示为deepseek-chat,API 地址是否为刚才填的 DeepSeek 兼容地址。如果这两项正确,再随便问一句“你好,请用一句话介绍这个项目”,它如果能正常回答,就说明链路已经通了。

万一出现Authentication error或者401,不要急着重新安装,优先检查三处:token 是否复制完整、Base URL 是否带上了/anthropic、环境变量是否在启动 Claude Code 的同一个终端里被正确加载。按照这个顺序排查,绝大多数连接问题都能解决。我自己遇到过的情况里,十次有八次都是这三个原因。

4. 跑通第一个真实 Demo:做一个命令行待办工具

4.1 第一次自然语言建项目

为了让教程不悬空,我们用一个真实的小目标来验证整套链路:在空目录里生成一个 Node.js 命令行待办工具。

先创建一个目录并进入,然后启动 Claude Code:

mkdir todo-demo && cd todo-demo claude

在交互提示符下输入:

初始化一个 Node.js CLI 项目,做一个待办管理工具。支持 add、list、done、delete 四个命令。数据保存在本地 todos.json 文件中。给出完整可运行代码。

注意这条指令里包含了几个关键要素:技术栈(Node.js CLI)、功能清单(四个命令)、数据存储方式(本地 JSON)、交付标准(完整可运行)。给模型的上下文越清晰,它的输出就越接近你要的东西。如果你只说“帮我写个待办工具”,它大概率会给你一个不确定方向的半成品。

Claude Code 会先规划步骤,然后创建文件,比如生成package.json、index.js,甚至可能主动执行npm init或安装依赖。你会看到它逐个列出来正在执行的命令。当它完成时,目录里已经有一份可以运行的代码了。这个阶段你不需要做太多事情,只需要观察它是否真的在操作文件系统。

4.2 让它自己跑测试和修 bug

代码生成完不代表结束,我建议立刻做验证。回到终端执行:

node index.js add "写一篇 AI 工具教程" node index.js list

如果输出符合预期,说明这条链路完全跑通。如果报错,就把报错信息原样贴回 Claude Code 的对话框,让它修复。比如常见的Cannot find module,它通常会先查看 package.json,再安装缺失依赖,再次运行验证。

这里要给新手一个核心建议:把“让它自己验证”变成默认动作。不要只让它生成代码就结束,而是明确要求“运行这个命令,并把结果反馈给我”。Claude Code 具备执行命令的能力,只要让它形成“改代码—跑命令—看报错—再修复”的循环,它的自主性才会真正体现出来。很多人的用法还停留在“问一句、抄一段代码”,这完全没有发挥出终端 AI 助手的优势。

4.3 多轮迭代的正确姿势

接下来我们模拟真实开发中的迭代需求,比如追加“按日期分组显示”的功能。在同一个会话里继续输入:

给 list 命令增加按日期分组显示的能力,每条待办需要记录创建时间,输出格式自己设计,保证不破坏现有命令。

然后观察它如何修改已有代码:它可能会去改数据写入逻辑,调整 list 的输出逻辑,也可能顺手更新测试。这正是 Claude Code 相比网页对话最有价值的地方——它直接面对真实代码库,而不是只给你一段孤立的代码片段。

不过要注意:迭代任务一次不要塞太多需求。随着对话变长,模型对上下文的把握会逐渐下降,最好分成几个小任务逐步推进。每完成一个任务,用git diff看一下改动内容,确认没有影响其他功能。这个“小步快跑”的习惯,能极大降低 AI 改坏代码的风险。我也见过有人一口气提了八个需求,最后改出来的代码完全没法用,不是模型不行,是任务划分得太粗糙。

5. 配置不生效?常见问题排查与避坑

5.1 高频问题速查表

下面这个表格汇总了我遇到过的高频问题,基本覆盖了从安装到使用的绝大部分场景。

现象可能原因处理办法
启动报 Authentication error / 401API Key 错误、token 没写全、余额不足重新粘贴 Key,查看用量,检查 token 是否多空格
报 404 model not found模型名填错,或 small/fast 模型漏配置确认使用 deepseek-chat,两个模型变量都显式设置
能启动但回答很慢或超时上下文太长、请求临时波动用 /compact 压缩对话,或 /clear 开启新会话
环境变量改了但没生效终端没重启、export 写错文件、变量名拼写不一致新开终端,执行 env
Windows 下找不到 claudeNode 全局路径没进 PATH检查系统 PATH,重新安装 Node 时选择自动加入 PATH

排查环境变量有没有生效,我常用这行命令:

env | grep ANTHROPIC

它会列出当前终端实际加载的 ANTHROPIC 相关变量。如果这里看到的和你的预期不一致,那问题一定出在配置加载这一步,和 Claude Code 本身无关。很多人执着于在 Claude Code 里找设置项,其实它只是个命令行工具,环境变量是外部传入的,排查顺序要从终端开始。

5.2 我踩过的几个典型坑

第一个坑是漏掉ANTHROPIC_SMALL_FAST_MODEL。最初我只设置了主模型,结果 Claude Code 在内部步骤里请求了默认轻量模型,返回 404,整个会话没法用。当时我还以为是 Key 问题,换了三四个 Key 才反应过来。后面我干脆把两个模型名固定写进配置,再也没出过这个错。这个变量官方文档里有提到,但它藏得比较深,教程类文章又经常忽略。

第二个坑是 Base URL 末尾少了/anthropic。有段时间我省略了子路径,结果能连通但一直提示协议不匹配,错误信息很抽象。后来才发现,DeepSeek 同时提供多种兼容接口,Claude Code 必须用 anthropic 这个子路径,它才会把请求格式转换成 Claude Code 能读懂的结构。所以填地址的时候一定看仔细,不要想当然。

第三个坑和密钥管理有关。我曾经把 Key 临时写在项目里的环境变量文件里,结果忘记加入.gitignore,差点提交到仓库。后来我养成了一个习惯:任何密钥都只放在用户级环境变量里,项目内只用占位符。这个习惯帮你省下的可能不止是钱,还有麻烦。

5.3 用量与安全控制

能用起来之后,就要关注成本和安全性。

DeepSeek 是按 token 计费的,而 Claude Code 这类工具在会话中会反复读取文件和做上下文压缩,token 消耗比单纯聊天高不少。我的建议是:开始跑大任务前,先去开放平台看一眼余额并设置预警,不要让它无限制跑下去。另外,长时间对话后上下文膨胀,既慢又贵,优先用/compact压缩上下文,而不是无限延长同一个会话。

安全方面,尽量在可控目录中使用,不要一上来就给它在整个文件系统里乱逛。Claude Code 执行的命令是真实命令,虽然它有权限确认机制,但你仍然要为最终结果负责。尤其是删除操作、覆盖文件、批量替换这类行为,合入前务必看 diff。记住一个原则:AI 负责快,人负责对。

6. 把它固化到日常开发工作流里

6.1 用启动参数固化常用配置

每次手动 export 环境变量略显繁琐。我推荐在 shell 配置文件中写好默认值,之后任何终端都能直接使用。如果你希望不同项目用不同模型,可以准备几个 shell 函数或脚本,一键切换到对应配置。比如:

alias claude-ds='ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_API_KEY" ANTHROPIC_MODEL="deepseek-chat" ANTHROPIC_SMALL_FAST_MODEL="deepseek-chat" claude'

这个别名把 DeepSeek 的 Key 从环境变量DEEPSEEK_API_KEY读取,避免在配置里明文写死。不同项目甚至可以用不同模型名切换,比如某些分析型任务临时切到 reasoner。把这个别名写进 shell 配置以后,每次想用 Claude Code + DeepSeek,直接敲claude-ds就行,少打好几个 export。

6.2 和 Git 流程配合

Claude Code 和 Git 是天然搭档。它在读取项目、分析 diff、生成提交信息方面非常顺手。我通常的流程是:先用 AI 完成功能修改,再用git diff自己审一遍改动,最后让 Claude Code 根据 diff 生成规范的提交信息。这样做的原因是提交信息往往需要概括多文件改动,人工写容易漏,而 AI 正好擅长做这类总结。

这套流程的好处是,AI 的产出始终有一个“人审”环节,而审查成本因为 diff 聚焦而变低。你不需要把整个项目重新读一遍,只需要看改了什么、为什么改。配合git log还能快速回溯每一次 AI 参与过的修改,出问题的时候定位非常方便。

6.3 后续还能怎么扩展

跑到这里,Claude Code + DeepSeek 的组合已经完全可以服务日常开发。你还可以继续扩展:

  • 写一个项目模板,让 Claude Code 在初始化时自动加载团队约定;
  • 把耗时的小任务做成脚本,比如批量格式化、批量补充测试;
  • 把常用斜杠命令整理成语录,沉淀成团队内的 AI 协作规范。

我现在的习惯是每周抽一天专门处理重复性工作。比如批量重命名、整理接口文档、生成示例数据,这些以前要手动翻文件的活,现在变成了几句自然语言指令。工具始终是工具,把它的边界和使用节奏摸清楚,你的效率自然会上一个台阶。配置这件事看起来繁琐,但它是一次性的投入,搞定之后每天都能省出不少时间。

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

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

立即咨询