deepclaude架构剖析:两个Shell脚本加一个本地代理如何"换掉"Claude Code的大脑
【免费下载链接】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 是一个极简的开源项目:只用两个 Shell 启动脚本加一个本地 Node.js 代理,就能把 Claude Code 的"大脑"从昂贵的 Anthropic 模型换成 DeepSeek V4 Pro、OpenRouter 等 Anthropic 兼容后端——同样的自主编程体验,成本最高降低 17 倍。本文带你完整拆解这套架构:脚本改了什么、代理拦了什么、流量如何分流。
📁 deepclaude 项目结构一览
整个仓库非常小,每个文件职责单一:
| 文件 | 作用 |
|---|---|
| deepclaude.sh | macOS/Linux 启动脚本(约 278 行) |
| deepclaude.ps1 | Windows PowerShell 启动脚本 |
| proxy/model-proxy.js | 本地代理核心:分流、重映射、记账 |
| proxy/start-proxy.js | 代理启动入口(支持热切换模式) |
| proxy/README.md | 代理设计文档 |
🧠 核心思路:保留"身体",换掉"大脑"
Claude Code 的架构可以拆成两部分:CLI 本身是"身体"(工具循环、文件读写、bash 执行、git 操作),模型 API 是"大脑"(负责思考和决策)。deepclaude 的哲学就是"身体不动,只换大脑":
你的终端 └── Claude Code CLI(工具循环、文件编辑、bash、git —— 完全不变) └── API 调用 → DeepSeek V4 Pro($0.87/M)而非 Anthropic($15/M)这可行的前提是:Claude Code 允许通过环境变量指定 API 地址和模型名,而 DeepSeek 恰好提供了 Anthropic 协议兼容端点。于是"换模型"退化成了一次环境变量重定向,完全不用改 Claude Code 一行代码。
⚙️ Shell 脚本架构:只做三件事
以 deepclaude.sh 为例,它的全部工作流只有三步:
1️⃣ 解析参数—— 支持--backend(ds/or/fw/anthropic)、--remote、--status、--cost、--benchmark、--switch等选项。
2️⃣ 设置会话级环境变量—— 这是"换大脑"的关键动作:
| 环境变量 | 作用 |
|---|---|
ANTHROPIC_BASE_URL | 把 API 请求指向 DeepSeek / OpenRouter / Fireworks |
ANTHROPIC_AUTH_TOKEN | 对应后端的 API Key |
ANTHROPIC_DEFAULT_OPUS_MODEL/_SONNET_MODEL/_HAIKU_MODEL | 各档位任务使用的模型名 |
CLAUDE_CODE_SUBAGENT_MODEL | 子代理(subagent)使用的模型 |
3️⃣ 启动并交接—— 用exec claude直接把进程替换成 Claude Code(见 deepclaude.sh 启动逻辑),退出即结束;Windows 版则会在会话结束后显式清理这些变量,保证你的原始配置不被污染。
默认后端 DeepSeek 的映射规则在 resolve_backend 中:Opus/Sonnet 档位都映射到deepseek-v4-pro,Haiku 档位和子代理映射到更快的deepseek-v4-flash。
📡 本地代理架构:为什么还需要一个 proxy?
普通启动模式其实只靠脚本就够了——但远程控制模式(--remote,用手机浏览器操作 Claude Code)有个特殊问题:它存在两条独立通道:
- Bridge 通道:WebSocket 硬编码连向 Anthropic,必须走 Anthropic 的 OAuth 登录;
- 模型 API 通道:通过
ANTHROPIC_BASE_URL可配置。
如果直接把认证 Token 换成 DeepSeek 的 Key,Bridge 就会断掉。所以 deepclaude 启动了一个监听在127.0.0.1:3200的本地代理来拆分流量(设计说明见 proxy/README.md):
claude remote-control ├── Bridge WebSocket → Anthropic(保持 OAuth 登录) └── 模型 API 调用 → localhost:3200(本地代理) ├── /v1/messages → DeepSeek($0.87/M) └── 其他一切 → Anthropic(透明透传)代理由 start-proxy.js 拉起,端口被占用时会自动尝试+1顺延,会话结束时由脚本的退出钩子(cleanup_proxy)自动关闭,不残留任何进程。
🔍 代理内部细节:四个关键机制
model-proxy.js 看似只有一个文件,却藏着四个让"换脑"真正可用的工程细节:
- 模型名重映射:Claude Code 请求
claude-opus-4-6,代理在转发前改写成deepseek-v4-pro(见 MODEL_REMAP),对 CLI 完全透明。 - 清洗 thinking 块:DeepSeek 会拒绝它没生成过的思考块,代理会把请求体里的 thinking 内容块剥掉,避免上游返回 400。
- 补齐 usage 字段:DeepSeek 的流式响应可能缺少 token 用量字段,会导致 Claude Code 崩溃,代理里的
UsageNormalizer流式转换器会即时补上(见 UsageNormalizer)。 - 成本记账:每路请求的 input/output token 都被记录,访问
/_proxy/cost即可拿到真实花费、Anthropic 等价花费和节省金额。
此外还有/_proxy/mode(热切换后端)和/_proxy/status(当前模式与运行时长)两个控制端点,且/mode端点会校验请求来源仅限本机,防止被外部调用。
🔄 实测:会话中热切换模型后端
得益于/_proxy/mode端点,你可以在不重启Claude Code 的情况下随时换后端——在终端或 VS Code 插件里输入/deepseek斜杠命令即可:
deepclaude 在终端中通过本地代理热切换 DeepSeek 模型后端
日常任务跑 DeepSeek 省钱,遇到复杂推理难题时切回 Anthropic Opus 兜底,--backend anthropic或/anthropic命令一键完成。
💰 deepclaude 成本对比
DeepSeek 的自动上下文缓存(命中价 $0.004/M,比未缓存便宜 120 倍)让多步 Agent 循环变得极其便宜:
| 使用强度 | Anthropic Max | deepclaude (DeepSeek) | 节省 |
|---|---|---|---|
| 轻度(10 天/月) | $200/月(有上限) | 约 $20/月 | 90% |
| 重度(25 天/月) | $200/月(有上限) | 约 $50/月 | 75% |
| 带自动循环 | $200/月(有上限) | 约 $80/月 | 60% |
四个后端的价格与定位:DeepSeek(默认,支持自动缓存)、OpenRouter(最便宜)、Fireworks(最快)、Anthropic(难题兜底)。
🌐 远程控制:浏览器里跑 DeepSeek 版 Claude Code
deepclaude --remote会打印一个claude.ai/code/...链接,用手机、平板或任意浏览器打开即可操作本机会话——而模型调用走的是本地代理转发到 DeepSeek:
前提条件:已登录 Claude Code、有 claude.ai 订阅(Bridge 依赖 Anthropic 基础设施)、Node.js 18+。
⚖️ 适用场景与已知局限
| 正常工作 ✅ | 受限功能 ⚠️ |
|---|---|
| 文件读写、bash 执行、Glob/Grep 搜索 | 图像/视觉输入(DeepSeek 端点不支持) |
| 多步自主工具循环、子代理 | MCP 服务器工具 |
Git 操作、/init项目初始化 | Anthropic 的cache_control缓存标记被忽略 |
官方给出的定位很诚实:约 80% 的常规编码任务DeepSeek V4 Pro 与 Claude Opus 表现相当;剩下约 20% 的复杂推理任务建议切回--backend anthropic。
🚀 快速上手(2 分钟)
- 获取一个 DeepSeek API Key;
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/deepc/deepclaude - 设置环境变量:
export DEEPSEEK_API_KEY="sk-你的Key"(Windows 用setx DEEPSEEK_API_KEY) - 赋予执行权限并启动:
chmod +x deepclaude.sh && ./deepclaude.sh - 用
deepclaude --status检查后端状态,--cost查看价格对比,--benchmark测各家延迟
更完整的选项说明见 README.md 与 deepclaude.sh 帮助信息。
总结
deepclaude 用不到 1000 行代码演示了一个优雅的技巧:利用 Claude Code 的环境变量扩展点做"无侵入换脑",再用一个轻量本地代理解决协议兼容性和远程控制的双通道问题。如果你的日常是常规编码任务而非极限推理,这套"两个脚本 + 一个代理"的方案值得放进工具箱。
【免费下载链接】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),仅供参考