如何将 DeepSeek 连接到 Claude Code

Written by

in

Claude Code 是 Anthropic 的控制台代理,可以读取项目文件、编辑代码、运行命令和测试、搜索存储库以及使用 git。使用它时的主要不便之处在于成本:具有大量上下文的长时间会话很快就会耗尽订阅预算。

有一个解决方案。 DeepSeek 提供与 Anthropic API 兼容的端点。更改基地址和令牌就足够了,Claude Code 将开始在 DeepSeek 模型上工作,无需任何重新安装或修补。在这篇文章中,我将描述如何在 macOS、Linux 和 Windows 上进行设置。

为什么需要这个

原因可能不同:
– 价格。 DeepSeek 模型明显比 Claude 便宜,并且对于日常代理任务 – 导航项目、较小的编辑、运行测试 – 并不总是需要最高的质量。
– 可用性。如果您没有订阅或由于某种原因无法使用 Anthropic 卡付款,DeepSeek 将成为一个可行的选择。
– 实验。比较不同的模型如何在相同的环境中处理相同的代码库是很有趣的。

你需要什么

您需要安装 Claude Code 和 DeepSeek API 密钥。如果尚未安装 Claude Code,则顺序如下:
1. 安装 Node.js 18 或更高版本。在 Windows 上,您还需要 Git for Windows。
2. 使用以下命令安装 Claude Code 本身。
3. 检查安装情况。

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

如果显示版本,则说明安装成功。 API 密钥是在您的 DeepSeek 个人帐户的密钥页面上创建的。

通过环境变量进行配置

所有集成都归结为环境变量。对于 macOS 和 Linux,它看起来像这样:

export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=ваш_ключ_deepseek

export ANTHROPIC_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash

export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432

对于 Windows 中的 PowerShell,语法不同,但变量名称相同:

$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="ваш_ключ_deepseek"
$env:ANTHROPIC_MODEL="deepseek-flash[1m]"

让我们弄清楚这里是什么。 `ANTHROPIC_BASE_URL` 变量将请求从 Anthropic 服务器重定向到 DeepSeek。 `ANTHROPIC_AUTH_TOKEN` 替换您的密钥。其余变量决定哪个模型用于哪个角色。有些模型带有“[1m]”后缀 – 这是一个具有大约一百万个令牌的上下文窗口的选项,它允许代理一次保存更多的项目文件。因此,“CLAUDE_CODE_AUTO_COMPACT_WINDOW”被设置为该窗口的大小,以便自动历史压缩不会过早起作用。

不用每次都手动导出变量,而是将它们注册到Claude Code配置中,很方便。然后启动时将自动获取设置。

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "ваш_ключ_deepseek",
    "ANTHROPIC_MODEL": "deepseek-flash[1m]",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-flash",
    "CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-flash"
  }
}

之后,进入项目目录并运行代理:

cd ваш_проект
claude

VS Code 中的克劳德代码

Claude Code 不仅可以在终端中使用,还可以作为 VS Code 的扩展。它以正常方式安装:使用 Cmd+Shift+X 打开扩展面板,找到“Claude Code”并单击安装。扩展是由 Anthropic 本身产生的。

该扩展包含自己的 CLI 副本,并且它读取与终端版本相同的 ~/.claude/settings.json 文件。上一节中的设置也适用于此处 – 但有一个警告,这通常会导致混乱。

启动前进行输入验证

在开始之前,扩展程序会检查其自己的“claudeCode.environmentVariables”设置中的凭据,而不是来自 settings.json 中的凭据。 settings.json 中的值到达正在运行的进程 – 也就是说,API 地址和选定的模型被正确拾取 – 但它们没有通过扩展程序自己的登录检查。如果您看到登录屏幕,即使终端中的一切都已正常工作,这就是原因。

这可以通过 VS Code 设置中的几行来解决:复制“claudeCode.environmentVariables”中的变量并禁用登录请求。

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://api.deepseek.com/anthropic" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "ваш_ключ_deepseek" },
    { "name": "ANTHROPIC_MODEL", "value": "deepseek-flash[1m]" }
  ],
  "claudeCode.disableLoginPrompt": true
}

macOS 细微差别

如果从 Dock 或 Finder 启动 VS Code,它不会从 ~/.zshrc 继承环境变量。这是标准 macOS 行为,Claude 代码文档中对此进行了专门讨论。也就是说,在你的 shell 中为扩展使用 `export ANTHROPIC_BASE_URL=…` 根本不起作用 – 这个变量不会在它的环境中。

由此可以得出两个结论。首先,claudeCode.environmentVariables中的设置比shell变量更可靠。其次,如果您仍然喜欢 shell,请从终端启动编辑器,其中变量已导出:

code .

什么不起作用

在第三方提供商上,某些扩展功能不可用,因为它们需要 claude.ai 帐户:
– 云会话将没有计划使用栏、语音输入和 Web 选项卡;
– 注销命令不显示在菜单中;
– `/usage` 将显示当前会话的消耗和代币数量,而不是计划限制;
– 如果基地址不是 Anthropic,则远程控制不起作用。

这是预期行为,并不表示安装失败。

另外,我想补充一点,JetBrains 有自己的插件,但设计不同:它不包含内置 CLI,但启动已安装在集成终端中的插件。没有环境变量的设置,因此您应该使用已导出的变量从终端启动 IDE。

DeepSeek 如何理解 Claude 模型名称

Claude Code 在内部引用诸如 claude-opus、claude-sonnet 和 claude-haiku 等名称的模型。 DeepSeek 拦截这些名称并用自己的名称替换它们:
– 以 claude-opus 开头的所有内容都会转到 deepseek-v4-pro;
– 以 claude-sonnet 或 claude-haiku 开头的所有内容都会转到 deepseek-flash;
– 未知型号名称也简化为deepseek-flash。

这意味着即使没有明确指定模型,集成也将发挥作用 – 但最好明确控制哪些模型以及以什么费率来满足请求。这就是为什么在上面的设置中所有角色都是手动编写的。

需要注意什么

兼容性不完整,您应该提前了解这一点。 DeepSeek 简单地忽略了 Anthropic API 的一些功能:

– 缓存提示。 不支持 `cache_control` 字段。 Claude Code 主动使用缓存,以免重复发送相同的上下文而付出过多的代价。这种情况在这里不会发生,因此长时间会话的价格比您对每个代币价格的预期要高。定期开始新的对话,而不是无休止地继续旧的对话。
– 思考预算。 支持“thinking”参数,但忽略其中的“budget_tokens”。
– 杂项。 `top_k`、`service_tier`、`container` 字段以及来自 API 的 MCP 服务器连接也将被忽略。
– MCP。 尽管代理的常用工具(读取文件、编辑、运行命令、搜索)功能正常,但 DeepSeek 端的内置 MCP 服务器机制不起作用。

另外,值得一提的是代理。社区中有像“ds-cc-proxy”这样的项目,它们放置在 Claude Code 和 DeepSeek 之间,承担消除轻微不兼容性的任务,以及将主会话和子代理分离到不同的模型中。如果标准设置表现不稳定,这样的中间层可以提供帮助。

克劳德代码路由器

上述方法将一个模型应用于所有任务。但代理所做的事情却截然不同:他了解项目的结构,纠正一些小问题,有时还解决一个真正复杂的问题。不同类型的工作应该使用不同的模型是合乎逻辑的。这正是 claude-code-router (CCR) 可以做的事情 – 一个位于 Claude Code 和模型提供者之间的本地网关。

它给出了什么

– 按规则路由。您可以设置哪个模型服务于主会话,哪个模型服务于后台任务,哪个模型服务于调度模式。仅在进行复杂推理时才使用昂贵的模型,并将例程交给廉价的模型是有意义的。
– 备份选项。如果提供程序返回错误,则请求将转到链中的下一个模型,而不是删除会话。
– 可观察性。界面显示请求日志、延迟、令牌消耗和成本 – 您只能通过直接连接来猜测。
– 多个代理的一个地址。提供商、密钥和规则位于一处,客户端连接到一个本地地址。

首先关于版本 – 这很重要

这里值得警告,因为它会节省您的时间。 CCR 在其历史上经过了大幅重新设计,您在搜索中找到的几乎所有文章都描述了过时的版本。

在旧版本中,配置位于文件 ~/.claude-code-router/config.json 中,其中包含 Providers 和 Router 块,并且所有内容都是使用“ccr code”命令启动的。现在不再那样了。当前版本 (3.x) 将设置存储在 SQLite 数据库中,并通过 Web 界面进行管理。如果还没有数据库,旧的 config.json 将被读取一次作为迁移源 – 之后,对其进行编辑不会影响任何内容。

也就是说,如果您在互联网上找到了有关编辑 config.json 和“ccr code”命令的说明,但没有任何效果,那么您正在编辑一个不再有人读取的文件。这不是你的错。

安装

您将需要 Node.js 22 或更高版本。

npm install -g @musistudio/claude-code-router
ccr ui

`ccr ui` 命令在后台启动服务并在浏览器中打开管理界面。了解其他命令很有用:“ccr start”启动服务,“ccr stop”停止服务,“ccrserve”在前台工作,当您需要查看日志时很方便。

默认情况下,管理接口位于端口 3458 上,模型的网关本身位于端口 3456 上。

设置

一切都在 Web 界面中完成,无需手动编辑文件:
1. 在 Providers 部分中,添加 DeepSeek 提供程序并指定其密钥。请注意:此处需要直到聊天/完成点的完整地址,而不仅仅是域名。
2. 在“模型”部分中,描述此模型是什么 – 该描述有助于路由。
3. 在代理配置部分,设置默认模型。
4. 在“路由”部分中,配置规则:哪个模型响应哪个请求。
5. 在 API 密钥页面上,创建 CCR 客户端密钥 – 这是 Claude Code 将使用的密钥,而不是 DeepSeek 密钥。

之后,剩下的就是将 Claude Code 发送到网关:指定界面中显示的网关地址作为基地址,并将 CCR 客户端密钥作为令牌。

一件好事:如果逻辑比比较一个字段更复杂,路由规则不仅可以使用字段编写,还可以使用 JavaScript 脚本编写。

值得使用吗

将 DeepSeek 连接到 Claude Code 主要是一种在不放弃方便的代理环境的情况下降低成本的方法。您可以获得相同的界面、相同的工具和相同的工作流程,但模型不同。设置需要几分钟,并且是完全可逆的:只需删除环境变量即可返回人类模型。

局限性也很明显:没有提示缓存、API 字段兼容性不完全、对于复杂的架构任务,模型的质量可能会有所不同。对于存储库中的日常工作 – 导航、重构、运行测试 – 这已经足够了。

示例:Oni 扩展

这种组合的一个活生生的例子是我的项目 Oni-Extended,它是 Apple Silicon 游戏 Oni(Bungie,2001)移植版的一个分支。游戏源代码是用C语言编写的,已经存在了二十多年;其中从未进行过任何测试,文件大小以数万行为单位。然而,新功能已通过 DeepSeek 的 Claude Code 添加到该项目中:通过 F5/F9 快速保存和加载、按键保持块以及禁用损坏的 -nodamage 启动标志。

这很好地说明了上面所说的内容。所有任务都与大型存储库中的日常工作相关 – 代理检查其他人的代码,找到模块之间的联系并测试假设,而不是从头开始设计架构。尽管结果是通过项目自己的基础设施(装配、水平运行台和离线测试)进行验证的,但 DeepSeek 上此类会话的成本明显低于 Anthropic 模型。

链接

https://platform.deepseek.com/api_keys
https://api-docs.deepseek.com
https://docs.anthropic.com/en/docs/claude-code
https://github.com/anthropics/claude-code
https://github.com/musistudio/claude-code-router
https://ccrdesk.top/en/guides/cli/
https://github.com/zefir1990/Oni-Extended

来源

https://api-docs.deepseek.com/guides/anthropic_api
https://api-docs.deepseek.com/quick_start/agent_integrations/claude_code
https://ccrdesk.top/en/routing/
https://code.claude.com/docs/en/vs-code

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

DemensDeum
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.