Claude 穷鬼大救星:把脏活外包给 DeepSeek,让 Max 配额不再月底跪
月底跪三天,痛定思痛
我是个 Claude Code Max 重度依赖型选手。每月就这么 200 美刀的订阅,扛得住代码 review、写新 feature、跨服务 debug 这些"高知"活——结果死活扛不住一种活:批量机械操作。
i18n 提个 key、把 200 个 print 改成 logger、给 30 个 legacy 文件补 docstring……这种没大脑的力气活,让 Claude Opus 这种顶级模型来干,跟用法拉利送外卖完全是一个浪费法。
但 Claude Code 又只能用 Claude。有没有办法让 Claude 当包工头,把脏活外包出去?
调研一圈下来,发现现有方案集体跑偏——所以我自己做了个,开源到 GitHub 叫 deepseek-as-subagent。
先说效果:理论上能省 80%+ 主对话 token,定位特别清晰——Claude 留在主大脑当老板,DeepSeek 在沙箱里当小弟干活。下面把怎么做的、坑在哪、为啥便宜 50 倍还不一定真省钱说清楚。
现有 DeepSeek MCP 都在假省钱
我搜了 16 个 deepseek-mcp-server 类项目,发现集体都是同一个模式:
Claude 读完所有源码 → 把内容塞进 prompt → 调 deepseek.chat.completions → 拿回答
这个流程里 Claude 还是要读所有文件。文件进了 Claude 主对话上下文,token 已经烧了。再调 DeepSeek 顶多是"省下让 Claude 思考的钱"——读文件的钱一分没省。
更糟的是 DeepSeek 拿到的就是一段 chat completion,没法自主跑工具循环。让它"批量改 50 个文件",只能在一次 prompt 里把 50 个文件的新内容全输出出来——超长输出、容易截断、错一处全错。
所以现有方案的真实定位是"让 DeepSeek 帮 Claude 想问题",不是"让 DeepSeek 帮 Claude 干活"。
真子代理 vs LLM 端点
这个项目跟现有方案的本质区别只有一点:
给 DeepSeek 自己一个完整的 agent loop,配 7 个本地工具。
Claude(你的 Max OAuth,留在主对话里)
↓ 一句话派工
DeepSeek 子代理(独立进程,沙箱工作目录)
↓ 自己跑 10-30 轮 agent loop
Read / Write / Edit / Bash / Glob / Grep / NotebookEdit
↓ 干完
返回 final summary
↓
Claude 抽样验证,告诉你结果
DeepSeek 现在不是"被问问题",是"接到任务 → 自己读自己写自己跑测试自己改 bug → 给 Claude 交付报告"。
跟开外包公司一个逻辑:以前是把每个文件单独包给外包看一遍,现在是把整个项目甩给外包让他自己搞定。
怎么用(一键安装)
curl -sSL https://raw.githubusercontent.com/PsChina/deepseek-as-subagent/main/curl-install.sh | bash
这一行会:
- 装 Python venv(无 Python 自动走 uv 装一个)
- 注册 MCP server 到 Claude Code
- 部署 skill 让 Claude 知道何时派工
- 加
/dsslash command 让你能强制派工 - 交互式让你填 DeepSeek API key(platform.deepseek.com 注册,¥20 起够用很久)
跨平台 macOS / Linux / Windows MINGW64 都测过。
装完打开 Claude Code 试一下:
/ds 把 src/ 目录下所有 print() 调用改成 logger.info()
或者干脆不用 /ds——只要你的任务符合"批量 / 机械"特征,Claude 看到了会自己派工。
反派工税:为啥越拆越省是个谎
DeepSeek v4-pro 单价比 Claude Opus 便宜约 50 倍。但拆得太细反而比不派还贵。
我在 SKILL.md 里写了 5 个反派工税:
| 税种 | 怎么烧的 |
|---|---|
| 拆任务税 | Claude 想"怎么拆 / 给什么 context"本身烧 Claude token |
| 上下文重读税 | DS 每次 delegate 是独立进程,同样的文件要 N 次重读 |
| 验证税 | DS 每完成一次 Claude 都要抽样验证 |
| 起步费 | v4-pro thinking mode 每次启动 ~5-10k reasoning tokens |
| 碎片返工税 | 子任务之间缺全局视野,产物不一致 → 返工 |
按 Claude Opus 等价成本(X = 自己干一次):
| 策略 | 总成本 |
|---|---|
| Claude 自己干完 | 1.0X |
| 派 1 个完整逻辑单元给 DS | 0.13X(省 87%) |
| 拆 5 个子任务 | 0.50X(省 50%) |
| 拆 10 个微任务 | 0.95X(几乎不省) |
| 拆 20 个细任务 | 1.88X(比不派还贵!) |
所以核心原则:派"完整逻辑单元",让 DS 在内部跑 10-30 轮一次到位。
判断要不要再拆,问自己一句话:
"这个子任务能给一个 1 周新人,一次性给完所有 context,让他独立完成吗?"
能 → 派;不能(要中途来问问题 / 看前序结果)→ 不拆,跟前序合成更大的单元。
DS 不能联网,怎么知道最新文档?
DS 沙箱里不能联网(curl / wget 全拦了,怕它偷偷外发数据或被 prompt injection)。新框架 API 怎么用?
答案是 pre-flight web search:让 Claude 用它自己的 WebSearch / WebFetch(Anthropic 包了费用,不另收钱)先把外部资料查好,摘要塞进 task context 传给 DS。
举例:实现一个 FastAPI 0.115 的 SSE endpoint,没 pre-flight 时 DS 大概率写出 0.95 时代的旧 API。Pre-flight 后:
# 先 Claude 端
WebSearch("fastapi SSE EventSourceResponse 0.115 example")
# 拿到关键代码片段
# 然后派工
delegate_to_deepseek(
task="实现 fastapi SSE endpoint /events 推流。",
context="""项目 fastapi 0.115,参考用法:
- from sse_starlette.sse import EventSourceResponse
- 返回 EventSourceResponse(generator())
- generator 是 async def,yield dict {'event': 'msg', 'data': '...'}
放在 api/events.py,session = Depends(get_session)
成功标准:curl -N localhost:8000/events 拿到 SSE 流。"""
)
DS 一次写对的概率显著提升。
沙箱怎么防 DS "出格"
把 LLM 接入文件系统 + shell,安全要认真做:
- 路径沙箱:
Path.resolve() + relative_to(workspace)防..逃逸;symlink 指向外部目录 → Glob/Grep 重新验证后过滤 - 命令黑名单:token 解析(不是子串匹配),拦截
python -c/bash -c内联代码、pip3 install/npm install装包、curl/wget/nc/ssh出口流量、sudo任何位置、git push/npm publish推送动作 - 路径绕过防御:
\curl//usr/bin/curl/; curl/&& curl都拦 - 资源上限:Bash timeout 上限 600 秒,Write 上限 5MB,Read/Grep 二进制文件拒绝
- API key 不落日志:server.log / usage.log 自动 600 权限,敏感参数(
content/new_string)写日志前 redact
跑了 22 个必拦命令 + 13 个必放行命令 + 9 个工具功能 case + 4 个 config 边界 case,全过。
什么任务该派 vs 不该派
派工不是万能。SKILL.md 难度分级:
| 难度 | 例子 | 默认 |
|---|---|---|
| 🟢 简单 | 写脚本 / 单组件 / 单 endpoint CRUD / 写测试 | ✅ 派 |
| 🟡 中等 | 3-10 文件 batch / 实现完整 feature / 简单 refactor / ETL | ✅ 派 |
| 🟠 中等偏上 | 10+ 文件批量 / 单领域 refactor / i18n 提取 | ✅ 派(必要时拆批) |
| 🔴 困难 | 跨领域架构设计 / ADR / bug 根因分析 / 需要项目深度上下文 | ❌ 自己干 |
| 🌶️ 极小 | 单文件 < 200 行的 typo / rename | ❌ 自己干(DS 起步费不划算) |
简单 / 中等 / 中等偏上都派。不要因为"听起来简单我顺手就做了"省略派工——那省的是 5 分钟,烧的是几万 Claude token。
不擅长的几件事(诚实说)
- DS 不能联网——pre-flight 解决 90% 场景,但 DS 内部突然想搜东西不行
- 不能装新依赖——
pip install/npm install黑名单挡了。task 需要新 lib,要 Claude 端先装好 - 看不到 CLAUDE.md / 项目偏好——独立进程,所有 context 要塞进
task或context参数 - 不能中途问用户——sub-agent 模式必须自决,模糊需求 → 派工前要写清楚
项目链接
- GitHub:PsChina/deepseek-as-subagent
- 在等 awesome-mcp-servers 收录(PR #6190)
- MIT license,欢迎 issue / PR
也支持 Codex CLI(仓库里有 adapters/codex/),手动注册 + 复制 instructions.md 内容到 AGENTS.md 即可。
写在最后
这个项目本质回答一个问题:当你已经付费拿到 Claude Code 主对话的强推理能力,怎么让"读 50 个文件改一个 import"这种活不浪费这个能力?
答案不是切换模型(claude-code-router 那种),是给 Claude 装一个"外包公司"。它能干苦力,干完了交报告,Claude 抽查。
适合的人群:每个月 Claude Code Max 配额都被吃完的重度用户。不适合:每天就跑几个简单问题的轻度用户——直接用 Claude 完全没必要这套。
月底再也不用跪。
如果有用,去 GitHub 点个 star 让我知道。issue 区欢迎吐槽哪些任务派给 DS 翻车了,我会更新 SKILL.md 的反例。