第 17 期 | Claude Cowork:跨多步骤的自动任务分解
🎯 学习目标
学完本期你将掌握:
- Claude 如何自动将复杂任务分解为多步骤执行计划
- 多轮工具调用链的内部运作机制
- 如何观察和引导 Claude 的任务规划过程
- 复杂跨文件工作流的实战技巧
📖 核心概念讲解
17.1 什么是"任务分解"?
人类的做法:
"做一个带认证的 REST API"
→ 脑子里列出步骤:
1. 设计数据模型
2. 写路由
3. 加认证中间件
4. 写测试
→ 按顺序执行
Claude Code 的做法:
收到同样的指令
→ 内部推理出执行计划 (Agentic Reasoning)
→ 调用 40+ 次工具自动执行
→ 中途遇到问题自动调整计划
关键区别:
人类: 先规划 → 再执行(分开的)
Claude: 边规划 → 边执行 → 边调整(一体化的)
17.2 Claude 的内部执行循环
╭────────────── Agent Loop ──────────────────╮
│ │
│ 接收指令 │
│ │ │
│ ▼ │
│ 推理当前应该做什么 (Think) │
│ │ │
│ ▼ │
│ 选择工具并执行 (Act) │
│ │ │
│ ▼ │
│ 观察结果 (Observe) │
│ │ │
│ ├─ 成功 → 推理下一步 ──→ 回到 Think │
│ │ │
│ └─ 失败 → 调整策略 ──→ 回到 Think │
│ │
│ 直到所有步骤完成 → 输出总结 │
│ │
╰────────────────────────────────────────────╯
这就是 ReAct (Reasoning + Acting) 模式
17.3 复杂任务的典型分解
用户指令:
"给这个 Express 项目添加 JWT 用户认证"
Claude 的内部分解:
步骤 1: 理解现有架构
├─ Read package.json
├─ Glob src/**/*.ts
└─ Read src/index.ts, src/routes/...
步骤 2: 安装依赖
└─ Bash: npm install jsonwebtoken bcrypt
步骤 3: 创建数据模型
└─ Write src/models/User.ts
步骤 4: 创建认证服务
└─ Write src/services/auth.ts
步骤 5: 创建认证中间件
└─ Write src/middleware/auth.ts
步骤 6: 创建认证路由
└─ Write src/routes/auth.ts
步骤 7: 集成到主应用
└─ Edit src/index.ts
步骤 8: 保护现有路由
└─ Edit src/routes/users.ts (添加 auth 中间件)
步骤 9: 验证
├─ Bash: npx tsc --noEmit
└─ Bash: npm test
总计: ~20 次工具调用,全自动完成
💻 模拟 Claude TUI 交互
场景:观察 Claude 的多步骤执行过程
> 请为这个项目添加完整的 JWT 用户认证系统
╭─ Claude ─────────────────────────────────────────────╮
│ │
│ 让我先了解项目当前的架构。 │
│ │
│ 🔍 Tool: Read → package.json │
│ 框架: Express 4.18, TypeScript, Prisma ORM │
│ │
│ 🔍 Tool: Glob → src/**/*.ts │
│ 📁 项目结构: │
│ ├── src/index.ts │
│ ├── src/routes/users.ts │
│ ├── src/routes/products.ts │
│ └── src/db/prisma.ts │
│ │
│ 🔍 Tool: Read → prisma/schema.prisma │
│ 当前没有 User 模型,需要创建。 │
│ │
│ 好的,我的计划是: │
│ 1️⃣ 创建 User 模型 (Prisma) │
│ 2️⃣ 安装 JWT + bcrypt 依赖 │
│ 3️⃣ 实现认证服务 (注册/登录/验证) │
│ 4️⃣ 创建 auth 中间件 │
│ 5️⃣ 添加 auth 路由 │
│ 6️⃣ 保护已有路由 │
│ 7️⃣ 运行测试验证 │
│ │
│ 开始执行... │
│ │
│ ⚙️ Tool: Edit → prisma/schema.prisma │
│ Added User model with email, password, role fields │
│ │
│ ⚙️ Tool: Bash │
│ $ npm install jsonwebtoken bcrypt │
│ $ npm install -D @types/jsonwebtoken @types/bcrypt │
│ ✅ Dependencies installed │
│ │
│ ⚙️ Tool: Bash │
│ $ npx prisma migrate dev --name add-user │
│ ✅ Migration applied │
│ │
│ ⚙️ Tool: Write → src/services/auth.ts │
│ Created: register(), login(), verifyToken() │
│ │
│ ⚙️ Tool: Write → src/middleware/auth.ts │
│ Created: requireAuth middleware │
│ │
│ ⚙️ Tool: Write → src/routes/auth.ts │
│ POST /auth/register, POST /auth/login │
│ │
│ ⚙️ Tool: Edit → src/index.ts │
│ Added: import authRouter, app.use('/auth', ...) │
│ │
│ ⚙️ Tool: Edit → src/routes/users.ts │
│ Added: requireAuth middleware to all routes │
│ │
│ ⚙️ Tool: Bash │
│ $ npx tsc --noEmit │
│ ✅ No TypeScript errors │
│ │
│ ⚙️ Tool: Bash │
│ $ npm test │
│ ✅ 12 tests passed (3 new auth tests) │
│ │
│ 🎉 JWT 认证系统已完成! │
│ 共创建 3 个文件,修改 3 个文件。 │
│ │
╰──────────────────────────────────────────────────────╯
💻 代码演示
# ✅ 让 Claude 展示执行计划但不执行
# 切换到 Plan Mode (Shift+Tab)
> 描述你将如何添加支付系统集成
# Claude 会输出详细计划,但不执行
# ✅ 限制单次任务的复杂度
claude "只做步骤 1-3:创建数据模型和认证服务,
路由和中间件我下次再让你做"
# ✅ 观察工具调用详情
# Claude 的每次工具调用都会实时显示在终端
# 你可以随时按 Ctrl+C 中断
# ✅ 引导 Claude 的执行顺序
claude "按以下顺序执行:
1. 先创建测试文件(TDD方式)
2. 再写实现代码
3. 最后运行测试"
🔧 涉及的 Tools
| 工具 | 任务分解中的角色 | 说明 |
|---|---|---|
Read |
理解环节 | 读取现有代码理解架构 |
Glob |
发现环节 | 扫描项目结构 |
Bash |
执行环节 | 安装依赖、运行迁移、测试 |
Write |
创建环节 | 生成新文件 |
Edit |
集成环节 | 修改已有文件,连接新旧代码 |
📝 本期要点回顾
- Claude Code 使用 ReAct 模式:边推理边执行边观察
- 复杂任务自动分解为 多步骤工具调用链
- Plan Mode 可以预览执行计划而不实际执行
- 可以通过 限制步骤范围 来控制执行粒度
- 失败时 Claude 会 自动调整策略,而不是直接报错