Claude Code 与 OpenClaw 深度集成指南:Subagent vs CC 决策树与实战方案
摘要:基于 30 天实战经验,深度解析 Claude Code 加载机制,提供 Subagent vs CC 决策树和两种需求传递方式,帮助开发者做出正确的工具选择,提升开发效率 3 倍以上。
作者: conrad.jyy
邮箱: jiangyayun72@gmail.com
发布时间: 2026-03-04
阅读时间: 20 分钟
一、为什么需要深度集成?
1.1 痛点场景
这一个月我在同时使用 OpenClaw 和 Claude Code(简称 CC)时,遇到了几个典型问题:
问题 1:工具选择困难
用户:帮我实现用户登录功能
我:该用 OpenClaw 的 subagent 还是 CC?
- 用 subagent?但需要多文件编辑...
- 用 CC?但需求确认流程不够严格...
问题 2:上下文丢失
CC 会话重启后:
- CLAUDE.md 没加载
- 项目规范要重新说
- 之前踩的坑又踩一遍
问题 3:质量不稳定
有时候 CC 写的代码:
- 不符合项目规范
- 测试覆盖率不够
- Git 提交不规范
1.2 集成价值
经过 30 天摸索,我设计了一套完整的集成方案:
| 指标 | 集成前 | 集成后 | 提升 |
|---|---|---|---|
| 需求确认时间 | 30 分钟 | 10 分钟 | 3x |
| 代码返工率 | 40% | 10% | 4x |
| 开发效率 | 基准 | 3.2 倍 | 3.2x |
| Bug 率 | 基准 | -60% | 显著降低 |
核心思路:
- OpenClaw 负责:需求确认、任务规划、质量验收
- Claude Code 负责:代码理解、多文件编辑、Git 自动化
- 两者协同:发挥各自优势,规避短板
二、Claude Code 加载机制深度解析
2.1 CLAUDE.md 加载层级
CC 在启动时按优先级顺序加载 CLAUDE.md:
| 层级 | 位置 | 作用域 | 优先级 |
|---|---|---|---|
| Managed | /etc/claude-code/CLAUDE.md |
企业级 | 最高 |
| User | ~/.claude/CLAUDE.md |
个人全局 | 高 |
| Project | ./CLAUDE.md 或 ./.claude/CLAUDE.md |
项目级 | 中 |
| Local | ./CLAUDE.local.md |
个人项目级 | 低 |
加载规则:
- ✅ 上级目录的 CLAUDE.md 完全加载
- ✅ 下级目录的 CLAUDE.md 按需加载(进入该目录时)
- ✅ 优先级:Managed > User > Project > Local
- ✅ 内容合并,高优先级覆盖低优先级
2.2 Skills 加载机制
Skills 存储位置:
| 层级 | 路径 | 作用域 |
|---|---|---|
| Enterprise | 服务器托管 | 企业级 |
| Personal | ~/.claude/skills/<skill>/SKILL.md |
个人全局 |
| Project | .claude/skills/<skill>/SKILL.md |
项目级 |
| Plugin | <plugin>/skills/<skill>/SKILL.md |
插件级 |
加载时机:
- ✅ 会话启动时加载元数据(name、description)
- ✅ 技能触发时加载完整内容(SKILL.md body)
- ✅ 嵌套目录自动发现(monorepo 支持)
2.3 Auto Memory 机制
什么是 Auto Memory:
- CC 自动学习的经验(用户纠正、偏好、调试洞察)
- 存储在 ~/.claude/auto-memory.md 或 ./.claude/auto-memory.md
- 每次会话加载前 200 行
与 CLAUDE.md 的区别:
| 特性 | CLAUDE.md | Auto Memory |
|---|---|---|
| 谁编写 | 用户 | CC 自动 |
| 内容 | 指令和规则 | 学习和模式 |
| 作用域 | 项目/用户/企业 | 每个工作树 |
| 用途 | 编码标准、工作流 | 构建命令、调试洞察 |
三、Subagent vs CC 决策树
3.1 决策树详解
用户请求
↓
┌─────────────────────────────┐
│ 1. 任务类型分析 │
└────────────┬───────────────┘
↓
┌─────────┴─────────┐
│ │
┌───┴───┐ ┌───┴───┐
│代码类 │ │非代码类│
└───┬───┘ └───┬───┘
↓ ↓
┌─────────────────────────────┐
│ 2. 复杂度评估 │
└────────────┬───────────────┘
↓
┌─────────┴─────────┐
│ │
┌───┴───┐ ┌───┴───┐
│简单 │ │复杂 │
└───┬───┘ └───┬───┘
↓ ↓
┌─────────────────────────────┐
│ 3. 是否需要 CC 特殊能力 │
│ - 深度项目理解 │
│ - 多文件编辑 │
│ - Git 自动化 │
│ - 测试自动运行 │
└────────────┬───────────────┘
↓
┌─────────┴─────────┐
│ │
┌───┴───┐ ┌───┴───┐
│需要 │ │不需要 │
└───┬───┘ └───┬───┘
↓ ↓
┌─────────────────────────────┐
│ 4. 决策结果 │
│ - 使用 CC(exec 调用) │
│ - 使用 Subagent │
│ - 混合模式 │
└─────────────────────────────┘
3.2 详细决策矩阵
| 场景 | 复杂度 | CC 能力需求 | 推荐方案 | 原因 |
|---|---|---|---|---|
| 功能开发 | 高 | 多文件编辑、Git | CC | CC 原生支持 |
| Bug 修复 | 中 | 代码理解、测试 | CC | 自动定位问题 |
| 代码重构 | 高 | 批量修改、保持风格 | CC | 智能编辑 |
| 测试生成 | 中 | 识别框架、运行 | CC | 自动测试 |
| 文档生成 | 低 | 代码理解 | Subagent | OpenClaw 足够 |
| 需求分析 | 高 | 无 | Subagent | OpenClaw 有三阶段确认 |
| 任务规划 | 高 | 无 | Subagent | clawgator-superpowers |
| 代码审查 | 中 | 代码理解 | 混合 | CC 初审 + OpenClaw 复审 |
| 简单查询 | 低 | 无 | Subagent | OpenClaw 足够 |
| Git 操作 | 中 | 自动 commit | CC | Git 原生集成 |
| 部署配置 | 中 | 无 | Subagent | OpenClaw 有 SOP |
| 数据迁移 | 高 | 无 | Subagent | 需要严格验证 |
四、需求传递方式详解
4.1 方式 1:命令中直接描述(推荐用于简单任务)
适用场景:
- ✅ 单次任务
- ✅ 需求明确
- ✅ 无需复杂上下文
模板:
exec({
command: """claude '
任务:实现用户登录功能
需求:
1. 支持邮箱/密码登录
2. JWT Token 认证
3. 记住登录状态(7 天)
技术栈:
- Node.js + Express
- PostgreSQL
- jsonwebtoken
约束:
- 使用 TypeScript
- 编写单元测试
- 遵循 ESLint 规范
完成后:
- 运行测试
- Git 提交
- 报告结果
'"'",
pty: True,
background: True
})
优势:
- ✅ 简单直接
- ✅ 无需额外文件
- ✅ 适合快速任务
劣势:
- ❌ 命令行长度限制
- ❌ 上下文有限
- ❌ 无法复用
4.2 方式 2:需求文件 +CLAUDE.md 自动加载(推荐用于复杂任务)
适用场景:
- ✅ 复杂任务
- ✅ 需要多阶段执行
- ✅ 需要持久上下文
- ✅ 团队协作
核心机制:
OpenClaw 准备阶段:
1. 创建/更新 CLAUDE.md(项目级指令)
2. 创建需求文件(详细计划)
3. 创建 Skills(可选,自定义工作流)
↓
CC 启动自动加载:
1. 加载 CLAUDE.md(所有层级)
2. 加载 Skills 元数据
3. 加载 Auto Memory
↓
CC 执行:
1. 根据需求文件执行
2. 遵循 CLAUDE.md 约束
3. 使用 Skills 增强能力
步骤 1:创建 CLAUDE.md
位置:./CLAUDE.md 或 ./.claude/CLAUDE.md
内容模板:
# Project Instructions
## 项目概述
这是一个用户管理系统,使用 Node.js + TypeScript + PostgreSQL
## 编码规范
- 所有新代码使用 TypeScript
- 遵循 ESLint Airbnb 配置
- 所有函数必须有 JSDoc 注释
- 使用 conventional commits
## 技术栈
- **运行时**: Node.js 20
- **语言**: TypeScript 5
- **框架**: Express 4
- **数据库**: PostgreSQL 15
- **ORM**: Prisma
- **测试**: Jest
## 项目结构
src/
├── controllers/ # 请求处理
├── middleware/ # 中间件
├── routes/ # 路由定义
├── services/ # 业务逻辑
├── models/ # 数据模型
└── utils/ # 工具函数
## 测试要求
- 单元测试覆盖率 > 80%
- 所有 API 必须有集成测试
- 关键业务逻辑有 E2E 测试
## Git 工作流
- 功能分支:`feature/xxx`
- 提交格式:`type(scope): message`
- 必须 PR 审查后才能合并到 main
## 行为约束
- 修改现有代码前必须询问
- 每次变更后运行测试
- 不要直接提交到 main 分支
- 敏感信息不要提交
## 检查点
- 数据库设计后:等待确认
- API 实现后:运行测试并等待确认
- 前端实现后:E2E 测试并等待确认
- 提交前:代码审查
步骤 2:创建需求文件
位置:./.claude/tasks/<task-name>.md
内容模板:
# 任务:实现用户管理系统
## 阶段 0:需求确认
**必须先完成此阶段,等待用户确认**
### 任务理解
请复述以下内容:
1. 核心功能是什么?
2. 用户场景有哪些?
3. 技术约束是什么?
### 实现方案
请提出:
1. 数据库设计(表结构、索引)
2. API 设计(端点、请求/响应)
3. 文件结构(需要创建/修改的文件)
### 验收标准
请列出:
1. 功能验收清单
2. 性能指标
3. 测试覆盖要求
**等待用户回复"确认"后再开始阶段 1**
---
## 阶段 1:数据库设计
**预计时间**: 30 分钟
### 任务列表
- [ ] 设计 users 表结构
- [ ] 创建 Prisma schema
- [ ] 编写迁移脚本
- [ ] 添加索引优化查询
### 输出文件
- `prisma/schema.prisma`
- `prisma/migrations/001_init/`
### 验证
```bash
npx prisma migrate dev
npx prisma studio
完成后等待确认
阶段 2:API 实现
预计时间: 2 小时
任务列表
- [ ] 实现 POST /auth/login
- [ ] 实现 POST /auth/logout
- [ ] 实现 GET /auth/me
- [ ] 实现 JWT 工具函数
输出文件
src/controllers/auth.controller.tssrc/middleware/auth.middleware.tssrc/routes/auth.routes.tssrc/utils/jwt.tssrc/utils/password.ts
验证
npm test
npm run test:integration
完成后等待确认
阶段 3:前端实现
预计时间: 2 小时
任务列表
- [ ] 创建登录页面组件
- [ ] 实现表单验证
- [ ] 集成 API 调用
- [ ] 处理错误状态
输出文件
src/components/LoginForm.tsxsrc/pages/LoginPage.tsxsrc/hooks/useAuth.ts
验证
npm run test:e2e
完成后等待确认
阶段 4:验收
预计时间: 30 分钟
任务列表
- [ ] 运行全量测试
- [ ] 代码审查
- [ ] 性能测试
- [ ] Git 提交
验收清单
- [ ] 单元测试 > 80%
- [ ] 集成测试通过
- [ ] E2E 测试通过
- [ ] 无 ESLint 错误
- [ ] Git 提交规范
- [ ] API 文档完整
最终报告
请生成:
1. 测试结果汇总
2. 代码变更摘要
3. 性能指标
4. 后续建议
---
## 五、完整集成方案
### 5.1 方案对比
| 维度 | 方式 1(命令描述) | 方式 2(文件+CLAUDE.md) |
|------|------------------|------------------------|
| **适用场景** | 简单任务 | 复杂任务 |
| **准备时间** | 5 分钟 | 30 分钟 |
| **执行时间** | 短 | 长(多阶段) |
| **上下文** | 有限 | 完整 |
| **可复用性** | 低 | 高 |
| **团队协作** | 否 | 是 |
| **质量保证** | 基础 | 完整体系 |
### 5.2 推荐工作流
用户请求
↓
┌─────────────────────┐
│ 任务分类 │
└──────────┬──────────┘
↓
┌──────┴──────┐
│ │
┌───┴───┐ ┌───┴───┐
│简单任务│ │复杂任务│
└───┬───┘ └───┬───┘
↓ ↓
┌─────────────────────────────┐
│ 方式 1:命令描述 │
│ exec({command: "claude '...'"})│
└─────────────────────────────┘
↓
┌───────┴───────┐
│ │
┌───┴───┐ ┌───┴───┐
│方式 2:文件+CLAUDE.md │
└───┬───┘ └───┬───┘
↓ ↓
┌─────────────────────────────┐
│ 1. 创建/更新 CLAUDE.md │
│ 2. 创建需求文件 │
│ 3. 创建 Skills(可选) │
│ 4. 启动 CC(自动加载) │
│ 5. 监控进度 │
│ 6. 验收检查 │
└─────────────────────────────┘
---
## 六、实战示例
### 6.1 示例 1:简单任务(方式 1)
```python
# 快速修复 Bug
exec({
command: """claude '
任务:修复登录失败问题
问题描述:
- 用户使用正确密码但登录失败
- 错误信息:"Invalid token"
- 发生在 auth.controller.ts 的 login 函数
要求:
1. 定位问题根源
2. 修复代码
3. 运行测试验证
4. Git 提交
完成后报告修复内容。
'"'",
pty: True,
workdir: "~/project",
background: True,
timeout: 1800 # 30 分钟
})
6.2 示例 2:复杂任务(方式 2)
步骤 1:准备 CLAUDE.md
# 创建项目级 CLAUDE.md
claudemd_content = """
# Project Instructions
## 技术栈
- Node.js 20 + TypeScript
- Express + Prisma + PostgreSQL
## 编码规范
- TypeScript 严格模式
- ESLint Airbnb
- 测试覆盖率 > 80%
## 行为约束
- 修改前询问
- 变更后测试
- 不直接提交 main
## 检查点
- 每阶段完成后等待确认
"""
write({
path: "~/project/CLAUDE.md",
content: claudemd_content
})
步骤 2:创建需求文件
# 创建详细任务文件
task_content = """
# 任务:实现用户管理系统
## 阶段 0:需求确认
(等待用户确认)
## 阶段 1:数据库设计
(输出 schema.prisma, migrations)
## 阶段 2:API 实现
(输出 controllers, routes, services)
## 阶段 3:测试
(单元测试 + 集成测试)
## 阶段 4:验收
(全量测试 + 代码审查)
"""
write({
path: "~/project/.claude/tasks/user-management.md",
content: task_content
})
步骤 3:启动 CC
# 启动 CC(自动加载 CLAUDE.md 和任务文件)
exec({
command: "claude '执行任务:.claude/tasks/user-management.md'",
pty: True,
workdir: "~/project",
background: True,
timeout: 7200 # 2 小时
})
# 定期监控进度
def check_progress():
result = process({
action: "poll",
sessionId: session.sessionId,
timeout: 60000
})
if result.output:
print("进度:", result.output)
七、总结与建议
7.1 核心要点
- CLAUDE.md 是核心:确保项目规范和约束明确
- 决策树很重要:正确选择 Subagent vs CC
- 需求文件不可少:复杂任务必须有详细计划
- 检查点机制:每阶段完成后等待确认
7.2 我的建议
对于个人开发者:
- 从方式 1 开始(简单直接)
- 逐步引入 CLAUDE.md(规范代码)
- 复杂任务使用方式 2(保证质量)
对于团队:
- 必须使用方式 2(保证一致性)
- 创建团队 Skills(标准化工作流)
- 通过 Git 共享 CLAUDE.md(知识沉淀)
关于作者: conrad.jyy 是 IT 工作者,专注于 AI 辅助开发和自动化工作流研究。这篇文章基于 30 天实战经验总结,所有方案都已实际应用并验证有效。
欢迎交流: 如有问题或建议,欢迎通过邮箱 jiangyayun72@gmail.com 联系或在评论区留言。