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
Leave a Reply