如何把任意Anthropic兼容后端接入Claude Code:deepclaude后端扩展与二次开发教程
【免费下载链接】deepclaudeUse Claude Code's autonomous agent loop with DeepSeek V4 Pro, OpenRouter, or any Anthropic-compatible backend. Same UX, 17x cheaper.项目地址: https://gitcode.com/gh_mirrors/deepc/deepclaude
deepclaude 是一款 Claude Code 后端切换工具:保留 Claude Code 的完整终端体验,只把模型调用改道到 DeepSeek V4 Pro、OpenRouter 或任意 Anthropic 兼容后端——同样的使用体验,成本便宜 17 倍。本文从环境变量原理讲起,带你完成一键接入与后端挑选,再深入本地模型代理,学会给 deepclaude 扩展新后端的二次开发方法。
1. 原理:靠 6 个环境变量完成 Claude Code 后端替换
Claude Code 读取固定的环境变量来决定"把 API 请求发往哪里、用哪个模型名"。deepclaude 的全部魔法就在于:按会话设置这 6 个变量 → 启动 Claude Code → 退出后自动还原,不污染你的全局配置。
| 环境变量 | 作用 |
|---|---|
ANTHROPIC_BASE_URL | API 端点(默认指向 Anthropic) |
ANTHROPIC_AUTH_TOKEN | 后端 API Key |
ANTHROPIC_DEFAULT_OPUS_MODEL | Opus 档任务使用的模型名 |
ANTHROPIC_DEFAULT_SONNET_MODEL | Sonnet 档任务使用的模型名 |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Haiku 档(子代理)模型名 |
CLAUDE_CODE_SUBAGENT_MODEL | 派生子代理使用的模型 |
💡 所以"接入任意 Anthropic 兼容后端"的本质是:只要你的后端提供
/v1/messages兼容端点,改这几个变量即可。deepclaude 把这个过程脚本化、并加了一层本地代理解决兼容细节。入口脚本见 deepclaude.sh 与 deepclaude.ps1。
2. 一键接入步骤:2 分钟把 Claude Code 换成 DeepSeek
第 1 步:获取 API Key。注册 DeepSeek 开放平台并充值,复制你的 API Key。
第 2 步:设置环境变量(macOS/Linux 为例,Windows 用setx):
export DEEPSEEK_API_KEY="sk-your-key-here"第 3 步:克隆并安装:
git clone https://gitcode.com/gh_mirrors/deepc/deepclaude cd deepclaude chmod +x deepclaude.sh sudo ln -s "$(pwd)/deepclaude.sh" /usr/local/bin/deepclaude第 4 步:直接使用:
deepclaude # 用 DeepSeek 启动 Claude Code deepclaude --status # 查看可用后端与 Key 状态 deepclaude --backend or # 改用 OpenRouter(最便宜) deepclaude --backend fw # 改用 Fireworks AI(最快) deepclaude --benchmark # 各供应商延迟测试 deepclaude --cost # 查看价格对比3. 内置 4 个后端:按成本与速度挑选
| 后端 | 标志 | 输入 $/M | 输出 $/M | 特点 |
|---|---|---|---|---|
| DeepSeek(默认) | --backend ds | 0.44 | 0.87 | 自动上下文缓存,多轮循环成本再降 120 倍 |
| OpenRouter | --backend or | 0.44 | 0.87 | 最便宜,美欧延迟最低 |
| Fireworks AI | --backend fw | 1.74 | 3.48 | 推理最快 |
| Anthropic | --backend anthropic | 3.00 | 15.00 | 原 Opus,留给难题 |
重度使用下月成本从 $200 封顶套餐降到 $30–80。后端的模型映射逻辑在 deepclaude.sh 的resolve_backend中:每个后端为 Opus/Sonnet/Haiku/子代理四个档位分别指定模型名。
4. 本地模型代理:deepclaude 二次开发核心 🛠️
仅改环境变量还不够——第三方后端的响应和 Anthropic 存在细微差异。deepclaude 在localhost:3200起了一个模型代理,负责抹平这些差异。
4.1 代理架构:一个端点、三条流量
核心实现在 proxy/model-proxy.js,启动入口 proxy/start-proxy.js,技术文档见 proxy/README.md:
Claude Code → localhost:3200 (代理) ├── /_proxy/mode → 后端热切换控制 ├── /_proxy/status → 当前模式/运行时长/请求数 ├── /_proxy/cost → 各后端 token 用量与省钱统计 ├── /v1/messages → 当前激活的后端(DeepSeek/OpenRouter/…) └── 其余流量 → 直通 Anthropic(passthrough)代理替你处理了三件容易踩坑的事:
- 模型名重写:Claude Code 发
claude-opus-4-6,代理按 MODEL_REMAP 改写为后端真实模型名(如deepseek-v4-pro); - SSE 用量归一化:部分兼容后端在流式响应里省略
usage字段,直接会让 Claude Code 崩溃,代理会用 UsageNormalizer 自动补齐; - 成本核算:按 PRICING_PER_M 的单价表,逐请求累计各后端花费并对比 Anthropic 等价成本。
端口被占用时会自动从 3200 向后递增(最多 +20),见 model-proxy.js。
4.2 给代理加一个新后端(只需 4 处改动)
以接入你自己的 Anthropic 兼容服务myai为例:
① 注册后端定义—— 在 start-proxy.js 的BACKEND_DEFS增加一行:
// 在 BACKEND_DEFS 中追加(原有 deepseek / openrouter / fireworks 定义保持不变) myai: { url: 'https://api.your-backend.com/v1', keyEnv: 'MYAI_API_KEY' },② 配置模型名映射—— 在 model-proxy.js 的MODEL_REMAP增加myai条目,把claude-opus-4-6/claude-sonnet-4-6等映射到你的模型 ID。
③ 登记单价—— 在 model-proxy.js 的PRICING_PER_M加myai: { input, output },/_proxy/cost即可统计新后端花费。
④(可选)加 CLI 快捷方式—— 在 deepclaude.sh 的resolve_backendcase 分支加myai,为四个模型档位指定名称,之后deepclaude -b myai即可启动。
4.3 独立启动代理:对接你自己的 Anthropic 兼容服务
代理可脱离 deepclaude 单独运行。两种方式(示例来自 proxy/README.md):
import { startModelProxy } from './model-proxy.js'; const proxy = await startModelProxy({ targetUrl: 'https://api.your-backend.com/v1', apiKey: process.env.MYAI_API_KEY, }); // 然后给 Claude Code 设置 ANTHROPIC_BASE_URL=http://127.0.0.1:${proxy.port}或者用 legacy 命令行模式(start-proxy.js):node proxy/start-proxy.js <targetUrl> <apiKey>,成功后端口号直接打印到 stdout。
5. 免重启切换后端:/_proxy 控制接口实战 ⚡
[switchMode](https://link.gitcode.com/i/a792366545648a70d00a39d64b50201f#L189-L208)支持会话中途即时切换后端,无需重启 Claude Code。控制端点见 model-proxy.js:
curl -sX POST http://127.0.0.1:3200/_proxy/mode -d "backend=deepseek" curl -s http://127.0.0.1:3200/_proxy/status更顺滑的方式是添加自定义斜杠命令:把deepseek.md、anthropic.md等写入~/.claude/commands/,内容只有一条 curl 指令,之后在任意会话里敲/deepseek即完成切换:
Claude Code 终端中 deepclaude 切换 DeepSeek 后端的界面
也可以直接用 CLI 标志:deepclaude --switch ds(见 deepclaude.sh 的do_switch)。切换 Anthropic 模式时,代理还会自动清理历史消息中其他后端生成的 thinking 块,避免 400 错误。
6. 浏览器远程控制:--remote 模式的流量分流 📱
deepclaude --remote可在任意浏览器(含手机)打开 Claude Code 会话,而"大脑"依然是 DeepSeek。难点在于:远程控制的 WebSocket 桥接必须走 Anthropic OAuth(硬编码),直接把 Token 换成 DeepSeek 的会弄断桥接。
代理把两类流量拆开(逻辑见 deepclaude.sh 的launch_remote):
claude remote-control ├── 桥接 WebSocket → Anthropic 桥(OAuth 认证) └── 模型 API 调用 → 本地代理 :3200 ├── /v1/messages → DeepSeek($0.87/M) └── 其余流量 → Anthropic(直通)前置条件:已执行claude auth login、拥有 claude.ai 订阅、Node.js 18+。代理随会话自动启停。
7. 能力边界:哪些功能可用,哪些会降级
完整可用:文件读写编辑、Bash 执行、Glob/Grep 搜索、多步自主工具循环、子代理派生、Git 操作、/init、思考模式。
不可用或降级:
| 功能 | 原因 |
|---|---|
| 图片/视觉输入 | DeepSeek 兼容端点不支持图片 |
| MCP 服务器工具 | 兼容层未支持 |
Anthropic 的cache_control | 被忽略(DeepSeek 有自己的自动缓存) |
智能水平方面:约 80% 的常规任务中 DeepSeek V4 Pro 与 Claude Opus 表现相当;剩下 20% 的复杂推理任务,用--backend anthropic或/anthropic切回原模型即可。
8. 小结
- 接入的本质:Claude Code 由 6 个环境变量决定后端,deepclaude 把它脚本化并自动还原;
- 二次开发的入口:
BACKEND_DEFS(注册)+MODEL_REMAP(模型映射)+PRICING_PER_M(计价)三处改动,即可把任意 Anthropic 兼容后端纳入统一管理; - 代理的额外价值:SSE 用量归一化、免重启热切换(
/_proxy/mode)、逐后端成本统计(/_proxy/cost),以及远程控制场景下的流量分流。
从"换大脑"到"改代理",你现在已掌握 deepclaude 后端扩展与二次开发的完整路径。
【免费下载链接】deepclaudeUse Claude Code's autonomous agent loop with DeepSeek V4 Pro, OpenRouter, or any Anthropic-compatible backend. Same UX, 17x cheaper.项目地址: https://gitcode.com/gh_mirrors/deepc/deepclaude
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考