> 让 AI 写代码不难,难的是让它写对、写完、写得能用。 ## 灵感:胡渊鸣的 10 阶段 春节期间读到太极图形 CEO 胡渊鸣的文章《如何有效给 10 个 Claude Code 打工》,核心思路是逐步提高 agentic coding 的吞吐量: 1. Cursor Agent → Claude Code(SSH 友好,手机可派活) 2. 容器 + `--dangerously-skip-permissions`(不被权限弹窗打断) 3. Ralph Loop(任务列表自动取活,干完一个接一个) 4. Git worktree 并行化(多 CC 实例并行,1 分钟 1 个 commit) 5. CLAUDE.md + PROGRESS.md(让 AI 长记性) 他的关键洞察:**不看代码,只看结果。Context not control, servant leadership。** 我没有他那么激进(10 个并行 CC),但借鉴了容器化 + Ralph Loop + manager 模式的思路。 ## CC Sandbox 容器 Claude Code 直接跑在宿主机上风险太大——它有 `--dangerously-skip-permissions`,意味着可以执行任何命令。所以用 Docker 隔离: ```yaml # docker-compose.yml 核心配置 services: claude-code: image: claude-code-sandbox:latest container_name: claude-code-sandbox mem_limit: 3g cpus: 2 volumes: - ~/projects:/workspace - ~/.claude-backup:/backup - ~/.claude/settings.json:/home/coder/.claude/settings.json:ro working_dir: /workspace ``` 关键设计: - **3G 内存 / 2 核 CPU**:够用但不奢侈 - **CC 2.1.47 + Node 22 + Python 3.12**:完整开发环境 - **认证复用**:挂载宿主机的 `settings.json`,走 provider-d 中转,不需要单独配 API key - **项目隔离**:`~/projects` 挂载到 `/workspace`,CC 只能访问项目目录 ## Jarvis 作为 CC Manager 这是架构里最重要的设计决策:**Jarvis(OpenClaw)不自己写代码,只做 manager**。 分工: - Jarvis:理解需求 → 写任务描述 → 派给 CC → 轮询进度 → 验证结果 → 发现 bug 写新 task 派回 CC - CC:接任务 → 写代码 → 跑测试 → 提交 为什么不让 Jarvis 直接写?因为 CC 有完整的编辑器集成、文件系统访问、命令执行能力,专门为写代码优化。Jarvis 的强项是理解意图和协调,不是写代码。 ### 派活方式 ```bash # 单任务(非交互) sudo docker exec claude-code-sandbox claude \ -p "任务描述" \ --dangerously-skip-permissions \ --output-format stream-json # 交互式(需要 TTY) sudo docker exec -it claude-code-sandbox claude \ --dangerously-skip-permissions ``` ### 任务轮询机制 最初用"盲 poll"——派完活就不停检查。后来改成 cron 2 分钟轮询: 1. **派活**:后台启动 CC → 写 `active.json`(sessionId/task/project/startedAt)→ 创建 2 分钟 cron 2. **轮询**:收到 `CC_TASK_POLL` 时,`process poll` 检查 session → 未完成继续等 → 完成进入验证 3. **验证**:检查产出(curl API / 编译检查)→ 有 bug 写新 task 派回 CC → 通过汇报 4. **清理**:删除 cron → 清空 active.json 这个流程在 invest-platform 项目上首次完整跑通。 ## 实战:invest-platform invest-platform 是一个投资研究工作台 Web App(FastAPI + React),从 Phase 1 到 Phase 5 全部由 CC 执行,Jarvis 做 manager。 ### 成果 | Phase | 内容 | CC 花费 | | ----- | --------------------------------------------- | ------- | | 1 | 3 个回测策略(MA Cross/Bollinger/MACD) | ~$0.5 | | 2 | 基本面分析 + 技术指标(K 线/MACD/RSI/布林带) | ~$0.5 | | 3 | 学习中心(思源笔记代理 API + LearnPanel) | ~$0.5 | | 4 | UI 打磨 + K 线均线 + 学习进度 + 基准对比 | $3.58 | | 5 | 智能问答 + 财报解读 + 实战演练 + 策略学习 | ~$1.40 | 最终产出:7 个 tab 的完整平台,总花费约 $6。 ### CC 的 Subagent CC 自己也支持 subagent: ``` /home/coder/.claude/agents/ ├── researcher.md (haiku) — 搜索资料 ├── reviewer.md (haiku) — 代码审查 └── architect.md — 架构设计 ``` 但 CC 的 subagent 是**串行委派**,不是并行。真正并行需要多 CC 实例 + git worktree,我没走那么远。 ## 踩坑记录 ### OOM Kill 3G 内存对大项目不够。CC 在处理 invest-platform Phase 5 的模块 3(概念实战演练)时,内存耗尽被 SIGKILL。 ``` Container killed: OOM (Out of Memory) ``` 解决方案:大任务不派给 CC,手写。或者拆成更小的子任务。 ### 大项目目录卡住 CC 在大项目目录下容易卡住——它会读大量上下文文件(CLAUDE.md、package.json、tsconfig 等),token 消耗暴增。 解决方案:在干净目录创建文件,写完再复制回项目目录。 ### stream-json 参数 `--output-format stream-json` 需要配合 `--print` 和 `--verbose` 才能正确输出。文档没写清楚,试了几次才搞对。 ## CC 的适用边界 CC 擅长: - 明确需求的功能开发 - 有清晰 spec 的 bug 修复 - 重复性的代码修改(批量重构) - 有测试可验证的任务 CC 不擅长: - 模糊需求("做个好看的页面") - 需要大量上下文的架构决策 - 内存密集型任务(大项目编译) - 需要人类审美判断的 UI 设计 **经验法则:任务描述越具体,CC 的产出越好。** 花 5 分钟写清楚 TASK.md,比让 CC 猜你想要什么省 10 倍时间。 Loading... > 让 AI 写代码不难,难的是让它写对、写完、写得能用。 ## 灵感:胡渊鸣的 10 阶段 春节期间读到太极图形 CEO 胡渊鸣的文章《如何有效给 10 个 Claude Code 打工》,核心思路是逐步提高 agentic coding 的吞吐量: 1. Cursor Agent → Claude Code(SSH 友好,手机可派活) 2. 容器 + `--dangerously-skip-permissions`(不被权限弹窗打断) 3. Ralph Loop(任务列表自动取活,干完一个接一个) 4. Git worktree 并行化(多 CC 实例并行,1 分钟 1 个 commit) 5. CLAUDE.md + PROGRESS.md(让 AI 长记性) 他的关键洞察:**不看代码,只看结果。Context not control, servant leadership。** 我没有他那么激进(10 个并行 CC),但借鉴了容器化 + Ralph Loop + manager 模式的思路。 ## CC Sandbox 容器 Claude Code 直接跑在宿主机上风险太大——它有 `--dangerously-skip-permissions`,意味着可以执行任何命令。所以用 Docker 隔离: ```yaml # docker-compose.yml 核心配置 services: claude-code: image: claude-code-sandbox:latest container_name: claude-code-sandbox mem_limit: 3g cpus: 2 volumes: - ~/projects:/workspace - ~/.claude-backup:/backup - ~/.claude/settings.json:/home/coder/.claude/settings.json:ro working_dir: /workspace ``` 关键设计: - **3G 内存 / 2 核 CPU**:够用但不奢侈 - **CC 2.1.47 + Node 22 + Python 3.12**:完整开发环境 - **认证复用**:挂载宿主机的 `settings.json`,走 provider-d 中转,不需要单独配 API key - **项目隔离**:`~/projects` 挂载到 `/workspace`,CC 只能访问项目目录 ## Jarvis 作为 CC Manager 这是架构里最重要的设计决策:**Jarvis(OpenClaw)不自己写代码,只做 manager**。 分工: - Jarvis:理解需求 → 写任务描述 → 派给 CC → 轮询进度 → 验证结果 → 发现 bug 写新 task 派回 CC - CC:接任务 → 写代码 → 跑测试 → 提交 为什么不让 Jarvis 直接写?因为 CC 有完整的编辑器集成、文件系统访问、命令执行能力,专门为写代码优化。Jarvis 的强项是理解意图和协调,不是写代码。 ### 派活方式 ```bash # 单任务(非交互) sudo docker exec claude-code-sandbox claude \ -p "任务描述" \ --dangerously-skip-permissions \ --output-format stream-json # 交互式(需要 TTY) sudo docker exec -it claude-code-sandbox claude \ --dangerously-skip-permissions ``` ### 任务轮询机制 最初用"盲 poll"——派完活就不停检查。后来改成 cron 2 分钟轮询: 1. **派活**:后台启动 CC → 写 `active.json`(sessionId/task/project/startedAt)→ 创建 2 分钟 cron 2. **轮询**:收到 `CC_TASK_POLL` 时,`process poll` 检查 session → 未完成继续等 → 完成进入验证 3. **验证**:检查产出(curl API / 编译检查)→ 有 bug 写新 task 派回 CC → 通过汇报 4. **清理**:删除 cron → 清空 active.json 这个流程在 invest-platform 项目上首次完整跑通。 ## 实战:invest-platform invest-platform 是一个投资研究工作台 Web App(FastAPI + React),从 Phase 1 到 Phase 5 全部由 CC 执行,Jarvis 做 manager。 ### 成果 | Phase | 内容 | CC 花费 | | ----- | --------------------------------------------- | ------- | | 1 | 3 个回测策略(MA Cross/Bollinger/MACD) | ~$0.5 | | 2 | 基本面分析 + 技术指标(K 线/MACD/RSI/布林带) | ~$0.5 | | 3 | 学习中心(思源笔记代理 API + LearnPanel) | ~$0.5 | | 4 | UI 打磨 + K 线均线 + 学习进度 + 基准对比 | $3.58 | | 5 | 智能问答 + 财报解读 + 实战演练 + 策略学习 | ~$1.40 | 最终产出:7 个 tab 的完整平台,总花费约 $6。 ### CC 的 Subagent CC 自己也支持 subagent: ``` /home/coder/.claude/agents/ ├── researcher.md (haiku) — 搜索资料 ├── reviewer.md (haiku) — 代码审查 └── architect.md — 架构设计 ``` 但 CC 的 subagent 是**串行委派**,不是并行。真正并行需要多 CC 实例 + git worktree,我没走那么远。 ## 踩坑记录 ### OOM Kill 3G 内存对大项目不够。CC 在处理 invest-platform Phase 5 的模块 3(概念实战演练)时,内存耗尽被 SIGKILL。 ``` Container killed: OOM (Out of Memory) ``` 解决方案:大任务不派给 CC,手写。或者拆成更小的子任务。 ### 大项目目录卡住 CC 在大项目目录下容易卡住——它会读大量上下文文件(CLAUDE.md、package.json、tsconfig 等),token 消耗暴增。 解决方案:在干净目录创建文件,写完再复制回项目目录。 ### stream-json 参数 `--output-format stream-json` 需要配合 `--print` 和 `--verbose` 才能正确输出。文档没写清楚,试了几次才搞对。 ## CC 的适用边界 CC 擅长: - 明确需求的功能开发 - 有清晰 spec 的 bug 修复 - 重复性的代码修改(批量重构) - 有测试可验证的任务 CC 不擅长: - 模糊需求("做个好看的页面") - 需要大量上下文的架构决策 - 内存密集型任务(大项目编译) - 需要人类审美判断的 UI 设计 **经验法则:任务描述越具体,CC 的产出越好。** 花 5 分钟写清楚 TASK.md,比让 CC 猜你想要什么省 10 倍时间。 最后修改:2026 年 02 月 24 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏