2.2 VibeCoding 工作流
阅读完本节后,你将会收获:
- 掌握 VibeCoding 标准五步工作流:探索 → 规划 → 执行 → 验证 → 提交
- 理解 Agent Native 开发思维,学会从"怎么做"转向"做什么"的产品导向思维
- 学会编写高质量提示词:直接描述任务、提供上下文、给出具体约束
- 掌握权限模式、斜杠命令、检查点功能等 Claude Code 核心交互方式
- 了解多 Agent 并行协作机制,学会利用 AI 自动化能力提升开发效率
序言中提到的"Workflow(工具流)"是 Vibecoding 的核心,以及 VibeCoding 的标准开发流程。
前置知识
什么是 Claude Code
Claude Code 是一个 AI 命令行工具,能直接读取项目文件、执行命令、自动修改代码和完成任务。
什么是 工作流
工作流(Workflow)是完成任务的标准化流程。AI 开发的工作流包含探索、规划、编码、提交等环节。
什么是 提示词
提示词(Prompt)是发送给 AI 的文本指令,描述你希望 AI 完成的任务。好的提示词是工作流的一部分。
点击查看 Agent Native 开发思维
Agent Native = 以 AI Agent 为中心的开发思维
传统开发中,AI 是辅助工具(Copilot);Agent Native 中,AI 是自主执行者(Autopilot)。
传统思维 vs Agent Native
| 维度 | 传统 AI 辅助开发 | Agent Native 开发 |
|---|---|---|
| 核心角色 | 人写代码,AI 帮忙 | AI 为主,代码是 AI 的实现细节 |
| 工作方式 | AI 是 Copilot | AI 是 Autopilot |
| 交互模式 | 人写 Prompt 指挥 AI | AI 主动提问、规划、执行 |
| 输出形态 | AI 生成代码片段,人来整合 | AI 自主完成完整任务 |
| 你的关注点 | 怎么写代码 | 写什么产品 |
Agent Native 的三大原则
1. 意图驱动
告诉 AI 目标,让它自己决定实现方式:
❌ 传统思维:
"帮我写一个函数,接收数组参数,用 for 循环遍历,
遇到大于 10 的就 push 到新数组里..."
✅ Agent Native:
"过滤数组中大于 10 的元素,返回新数组"2. 异步协作
AI 可以在你睡觉时工作:
# 你设定目标,AI 自主执行
"实现用户评论功能,包括:
1. 数据库 schema(Comment 模型)
2. CRUD API
3. 前端评论表单
4. 评论列表展示
完成后告诉我,我先去忙别的。"3. 信任但验证
不要逐行检查 AI 的代码,而是:
验证方式:
- 功能测试:跑一下看看能不能用
- 类型检查:
tsc有没有报错 - 代码审查:只看关键逻辑,不看实现细节
从开发者到编排者
Agent Native 时代,你的角色转变:
| 传统开发者 | Agent Native 编排者 |
|---|---|
| 手写代码 | 描述需求 |
| 逐个修复 | 反馈问题 |
| 关注语法 | 关注产品 |
| 是工匠 | 是指挥官 |
记住:代码是实现细节,产品才是目的。Agent Native 让你从"怎么做"中解放出来,专注于"做什么"。
核心概念
Vibecoding 的核心理念
Vibecoding = Prompt(提示词) + Workflow(工具流)Prompt 告诉 AI 做什么Workflow 决定怎么做
提示词的核心原则
AI 是一个强大的编程助手,它理解技术术语、熟悉各种框架、能快速分析代码。
沟通的关键是:直接、具体、有上下文。
❌ 绕弯子:
"你是一位资深的全栈工程师,精通各种技术栈..."→ AI 不需要角色扮演,它知道自己能做什么
✅ 直接说事:
"检测这个 React 组件的类型安全问题"→ 一句话讲清楚要做什么
❌ 模糊描述:
"帮我优化一下代码"→ AI 不知道优化什么方向
✅ 具体需求:
"优化登录页面的加载性能:
1. 添加图片懒加载
2. 延迟加载非关键资源
3. 使用 Next.js 的动态导入"→ 明确优化目标和实现方式
提示词原则
好提示词的特征
提示词对比:欠佳 vs 推荐
| 类型 | 欠佳 | 推荐 |
|---|---|---|
| 角色扮演 | "你是一位拥有 20 年经验的全栈工程师,精通 React、Vue、Angular、Node.js、Python..." | 直接说任务:"实现用户登录功能" |
| 模糊指令 | "帮我优化一下代码" | "优化登录页面的加载性能:添加图片懒加载、延迟加载非关键资源" |
| 无边界限制 | "写一个完整的电商系统" | "实现用户评论功能,包括:评论表单、列表展示、数据持久化" |
| 强行要求 | "你必须给出正确答案,不能说不知道" | "如果不确定,请明确说'我不确定',而不是编造答案" |
| 具体任务 | "帮我写一个登录功能" | "实现用户登录功能:用户名+密码登录,使用 Next.js 16 App Router,Prisma + PostgreSQL,包含表单验证和错误处理" |
| 提供上下文 | "修复这个 Bug" | "修复 Bug:文件 app/login/page.tsx,问题:用户登录后没有跳转到首页,预期:跳转到 /dashboard" |
| 指令要具体 | "添加测试" | "为 app/login/page.tsx 编写测试用例,框架:Playwright,覆盖场景:密码错误、账号不存在、网络错误" |
核心原则:
- 不要让 AI 猜 → 提供明确上下文
- 不要含糊其辞 → 给出具体要求
- 不要强行编造 → 给 AI 一个"不确定"的出口
让 AI 反复提问
"我要开发一个任务管理应用。
请反复问我问题,直到你完全理解我的需求。
不要猜测,直接问。"提示词模板
代码生成模板
"实现 [功能名称]
技术栈:
- Next.js [版本]
- TypeScript
- Prisma
- [其他技术]
需求:
1. [具体需求1]
2. [具体需求2]
3. [具体需求3]
注意事项:
- 遵循项目现有代码风格
- 不要引入新依赖,除非必要
- 包含错误处理"Bug 修复模板
"修复 Bug
文件路径: [完整路径]
错误信息:
[完整报错日志]
当前代码:
[相关代码片段]
期望行为: [描述]
实际行为: [描述]
请分析原因并提供修复方案"标准工作流
AI 的自动化能力
在开始工作流之前,记住:AI 能自动处理很多任务。
Claude Code vs 其他 AI 工具
关键区别:
| 特性 | Claude Code | Cursor/Windsurf | ChatGPT 网页版 |
|---|---|---|---|
| 项目上下文 | ✅ 自动读取整个项目 | ✅ 自动读取 | ❌ 手动粘贴 |
| 命令执行 | ✅ 直接运行 bash | ✅ 集成终端 | ❌ 复制到终端 |
| 文件修改 | ✅ 自动编辑多个文件 | ✅ 多文件编辑 | ⚠️ 逐个复制 |
| 版本控制 | ✅ 自动提交 | ✅ Git 集成 | ❌ 手动操作 |
| 工作流 | ✅ 标准化流程 | ⚠️ 需要手动 | ❌ 随意对话 |
为什么 Claude Code 更适合 Vibecoding:
- CLI 原生:命令行是开发者的原生环境
- 自动化程度高:减少手动操作
- 标准化流程:探索 → 规划 → 实现 → 验证 → 提交
- 完整上下文:理解整个项目结构
AI 的自动化能力:
- ✅ 自动探索项目结构(你不需要告诉它看哪些文件)
- ✅ 自动选择合适的工具(Read、Edit、Bash)
- ✅ 自动处理错误(失败会重试或换方案)
- ✅ 自动生成提交信息(根据修改内容)
- ✅ 自动识别依赖关系(知道修改会影响哪些文件)
你需要做的:
- 清楚描述任务目标
- 提供必要的上下文
- 验证结果并反馈
不需要做:
- ❌ 指定具体步骤("先读文件A,再读文件B")
- ❌ 告诉它用哪个工具("用 Read 工具读取")
- ❌ 手动组合命令("运行 git add 然后 git commit")
- ❌ 手动处理错误("如果失败就重试")
权限模式
什么是权限模式
权限模式控制 AI 执行操作前是否需要你确认,平衡效率与安全。
三种权限模式
| 模式 | 快捷键 | 特点 | 适用场景 |
|---|---|---|---|
| Default | Shift+Tab 循环切换 | 自动批准安全操作,询问危险操作 | 日常开发(推荐) |
| Plan | Shift+Tab | 仅允许读取操作 | 代码审查、探索 |
| Accept Edits | Shift+Tab | 编辑操作需确认,其他自动 | 高度信任的编辑场景 |
Default 模式(推荐)
只读操作(读取文件、搜索代码、查看状态、列出文件)自动批准,修改操作(编辑文件、删除文件、运行命令、网络请求、Git push)需要确认。
权限弹窗选项:
- Yes:同意本次操作
- Yes, don't ask again for this tool:同意本次,且后续同类操作不再询问
- No, and tell AI what to do differently:拒绝并告诉 AI 换个方式
Plan 模式(代码审查)
仅允许只读操作,所有修改操作都会被阻止。
适用场景:
- 代码审查
- 了解代码库结构
- 探索性分析
Accept Edits 模式(高效编辑)
编辑操作需要确认,其他操作自动批准。
# 示例行为
"读取配置文件"
"运行测试"
# AI 直接执行(非编辑操作)
"修改函数签名"
"删除这个文件"
# AI 会询问(编辑操作需确认)适用场景:
- 需要频繁运行命令/测试
- 对文件修改要谨慎
- 高度信任的自动化工作流
模式切换
快捷键
Shift+Tab # 在三种模式间循环切换
常用交互命令
在 Claude Code 中,以 / 开头的命令称为斜杠命令,用于快速执行特定操作:
| 命令 | 功能 | 使用场景 |
|---|---|---|
| /clear | 清空对话上下文 | 开始新任务时 |
| /model | 切换 AI 模型 | 需要更强能力时切换到 Opus |
| /status | 查看使用额度和计费 | 检查剩余额度 |
| /config | 打开配置界面 | 修改设置 |
| /resume | 恢复最近的会话 | 重启后继续之前的工作 |
| /rewind | 恢复到上一个检查点 | 代码改错需要回退 |
| /agents | 管理 Agent | 创建/查看自定义 Agent |
| /init | 生成 CLAUDE.md 模板 | 新项目快速配置 |
| /compact | 压缩对话上下文 | 上下文太多时精简 |
| /export | 导出对话记录 | 分享或保存对话 |
| /statusline | 自定义状态栏显示 | 隐藏/显示状态信息 |
| /vim | 启用 Vim 键绑定 | 熟悉 Vim 的用户 |
常用场景:
# 开新任务时清空上下文
/clear
# 查看剩余额度
/status
# 切换到更强模型
/model opus
# 恢复到之前的状态
/rewindCLI 命令与启动选项
基本命令(必读)
| 命令 | 描述 | 示例 |
|---|---|---|
| claude | 启动交互式 REPL | claude |
| claude "query" | 使用初始提示启动 REPL | claude "解释这个项目" |
| claude -p "query" | 查询后退出(无头模式) | claude -p "检查代码类型错误" |
| claude -c | 继续上一次对话 | claude -c |
| claude -r "id" | 恢复指定会话 | claude -r "abc123" |
| claude --continue | 加载最近的对话 | claude --continue |
| claude --resume | 显示会话选择器 | claude --resume |
常用启动选项
| 选项 | 功能 | 示例 |
|---|---|---|
| -p "query" | 执行查询后退出 | claude -p "运行测试" |
| --model | 指定模型 | claude --model opus |
| --permission-mode | 设置权限模式 | claude --permission-mode plan |
| --add-dir | 添加工作目录 | claude --add-dir ../shared |
快捷键与输入控制(必读)
| 快捷键 | 功能 | 上下文 |
|---|---|---|
| Ctrl+C | 取消当前输入或生成 | 标准中断 |
| Ctrl+D | 退出会话 | EOF 信号 |
| Ctrl+L | 清除终端屏幕 | 保留对话历史 |
| Ctrl+R | 反向搜索命令历史 | 搜索以前的命令 |
| Esc+Esc | 回退代码/对话 | 恢复到之前状态 |
| Tab | 切换扩展思考 | 开启/关闭思考模式 |
| Shift+Tab | 切换权限模式 | 循环切换权限模式 |
多行输入方法:
| 快捷键 | 上下文 |
|---|---|
| \ + Enter | 适用于所有终端 |
| Option+Enter (macOS) | macOS 默认设置 |
| Shift+Enter | 配置后可用 |
快速命令前缀:
| 前缀 | 功能 | 示例 |
|---|---|---|
| # | 内存快捷方式,添加到 CLAUDE.md | # 添加项目上下文 |
| / | 斜杠命令 | /clear |
| ! | Bash 模式,直接运行命令 | ! npm test |
| @ | 文件路径引用 | @src/app/page.tsx |
进阶:高级 CLI 标志
完整 CLI 标志列表:
| 标志 | 描述 | 示例 |
|---|---|---|
--add-dir | 添加额外工作目录 | claude --add-dir ../apps |
--agents | JSON 格式定义 Agent | claude --agents '{...}' |
--allowedTools | 允许的工具列表 | claude --allowedTools "Read,Bash" |
--disallowedTools | 禁止的工具列表 | claude --disallowedTools "Edit" |
--system-prompt | 替换整个系统提示 | claude --system-prompt "..." |
--system-prompt-file | 从文件加载系统提示 | claude -p --system-prompt-file ./prompt.txt |
--append-system-prompt | 附加到默认提示 | claude --append-system-prompt "..." |
--output-format | 输出格式(text/json/stream-json) | claude -p --output-format json |
--input-format | 输入格式(text/stream-json) | claude -p --input-format stream-json |
--verbose | 启用详细日志 | claude --verbose |
--max-turns | 限制轮数 | claude -p --max-turns 3 |
--dangerously-skip-permissions | 跳过权限提示 | claude --dangerously-skip-permissions |
系统提示标志区别:
| 标志 | 行为 | 模式 | 用例 |
|---|---|---|---|
--system-prompt | 替换整个默认提示 | 交互 + 打印 | 完全控制行为 |
--system-prompt-file | 替换为文件内容 | 仅打印 | 从文件加载 |
--append-system-prompt | 附加到默认提示 | 交互 + 打印 | 添加特定指令 |
进阶:Vim 模式
使用 /vim 启用或通过 /config 永久配置。
模式切换:
| 命令 | 操作 | 来自模式 |
|---|---|---|
Esc | 进入 NORMAL 模式 | INSERT |
i | 在光标前插入 | NORMAL |
a | 在光标后插入 | NORMAL |
o | 在下方打开行 | NORMAL |
导航(NORMAL 模式):
| 命令 | 操作 |
|---|---|
h/j/k/l | 左/下/上/右移动 |
w | 下一个单词 |
b | 上一个单词 |
0/$ | 行首/行尾 |
gg/G | 输入开始/结束 |
进阶:后台 Bash 命令
后台运行的工作原理:
- 异步运行命令,立即返回任务 ID
- 输出被缓冲,可用 BashOutput 工具检索
- Claude Code 退出时自动清理
常见后台命令:
- 构建工具(webpack, vite, make)
- 包管理器(npm, yarn, pnpm)
- 测试运行器(jest, pytest)
- 开发服务器
按 Ctrl+B 将常规 Bash 调用移到后台。
Bash 模式(! 前缀):
! npm test
! git status
! ls -la- 将命令和输出添加到对话上下文
- 显示实时进度
- 支持 Ctrl+B 后台运行
进阶:Agent 配置格式
--agents 标志接受 JSON(通常不需要手动使用,/agents 命令会自动处理):
claude --agents '{
"code-reviewer": {
"description": "Expert code reviewer",
"prompt": "You are a senior code reviewer",
"tools": ["Read", "Grep", "Glob", "Bash"],
"model": "sonnet"
}
}'必需字段:
description:何时调用(自然语言)prompt:系统提示
可选字段:
tools:可用工具数组model:模型别名(sonnet/opus/haiku)
五步工作流
工作流是建议而非强制
VibeCoding 五步工作流是一个推荐的实践模式,适合大多数开发场景。但你可以根据实际情况灵活调整:
- ✅ 推荐遵循:复杂功能、不熟悉的项目、团队协作
- 🔄 可以简化:简单修改、熟悉的项目、个人开发
- ⚡ 可以跳过:微小改动、明显的问题修复
核心原则:理解每步的目的后,根据实际情况灵活应用,而非机械执行。
1. 探索项目结构
目的:了解现有代码组织,避免重复工作
# 让 AI 探索项目
"探索这个项目的结构,告诉我:
1. 使用的技术栈
2. 文件组织方式
3. 现有的功能模块
4. 配置文件的作用"输出示例:
项目使用 Next.js 16 + TypeScript + Prisma
- app/: 页面和 API
- components/: 可复用组件
- lib/: 工具函数
- prisma/: 数据库模型2. 规划实现步骤
目的: 先想清楚再动手,减少返工
"我要添加用户评论功能。
请规划实现步骤,包括:
1. 需要创建哪些文件
2. 需要修改哪些现有文件
3. 数据库 schema 变更
4. 实现顺序"输出示例:
步骤:
1. 更新 Prisma schema (添加 Comment 模型)
2. 运行 prisma migrate
3. 创建 API route (app/api/comments/route.ts)
4. 创建评论组件 (components/CommentForm.tsx)
5. 集成到详情页3. 编写代码
目的:按计划实现功能
AI 的自动拆分能力:
复杂任务会被自动拆解:
# 你只需要说
"实现用户评论功能"
# AI 会自动拆分为:
1. 更新 Prisma schema
2. 运行数据库迁移
3. 创建 API 端点
4. 编写前端组件
5. 集成到页面
6. 测试验证你不需要手动指定每个步骤,AI 会:
- 识别任务依赖关系
- 确定执行顺序
- 并行处理独立部分
- 验证每个步骤的结果
当然,你也可以分步执行:
"按照步骤 1,更新 Prisma schema""按照步骤 2,生成并运行迁移""按照步骤 3,创建评论 API"4. 测试验证
目的:确保功能正常
"测试评论功能:
1. 验证 API 能正常创建评论
2. 验证评论能正确显示
3. 验证错误处理"5. 提交代码
目的: 建立版本记录
"评论功能开发完成,提交代码"让 AI 自动维护 Git 记录
AI 开发非常激进,可能为了修一个 Bug 而破坏旧功能。因此需要高频的版本记录来保护成果。
在项目规则或 CLAUDE.md 中添加这条指令:
"每当你完成一个独立功能的开发,或修复完一个 Bug 并验证通过后,请自动运行 git commit 提交代码,并生成一句简洁的中文 commit message。"
从此,开发流程变成:
- AI 写完登录功能 -> 自动存档
- AI 写完首页 -> 自动存档
- AI 搞崩了代码 -> 随时回退到上一个版本
为什么需要自动提交:
- AI 可能为了修复一个问题而破坏三个旧功能
- 没有版本控制,错误的修改可能导致之前的成果无法恢复
- 你不需要记住每次手动提交,AI 会自动处理
6. 检查点功能
目的: 自动跟踪文件修改,支持快速回退
Claude Code 自动跟踪文件修改,支持快速回退。
自动创建: 每次发送提示时自动创建检查点,无需手动保存
回退方法: 按 Esc+Esc 或运行 /rewind,选择:
- 仅对话:回退用户消息,保留代码更改
- 仅代码:恢复文件更改,保留对话
- 代码和对话:两者都恢复
进阶:检查点工作原理
自动跟踪:
- 每个用户提示创建新检查点
- 检查点在会话间持久存在
- 30 天后自动清理(可配置)
限制:
- Bash 命令更改(rm、mv、cp)无法回退
- 外部编辑无法回退
- 检查点用于快速恢复,Git 用于永久历史
理解 Agent
什么是 Agent
Agent = AI 本身
AI 本身就是一个 Agent,它的工作是:
- 理解你的意图和需求
- 做决策(用什么工具、先做什么后做什么)
- 协调各种工具完成任务
可以把 Agent 理解为一个任务执行器:
- 接收你的指令(提示词)
- 调用各种工具完成任务
- 返回执行结果
与普通 AI 对话的区别:
| 普通 AI 对话 | Agent |
|---|---|
| 只能聊天 | 能调用工具 |
| 被动回答 | 主动决策 |
| 单轮交互 | 持续执行 |
什么是自定义 Agent
自定义 Agent = 你创建的专门 Agent
自定义 Agent 是主 Agent 可以调用的"专门助手"。每个自定义 Agent:
- 有特定的用途和专业领域
- 有独立的上下文窗口(不污染主对话)
- 有自定义的系统提示(专门训练)
- 可以限制工具访问权限
使用自定义 Agent 的优势:
| 优势 | 说明 |
|---|---|
| 上下文保留 | 主对话保持简洁,自定义 Agent 独立处理复杂任务 |
| 专业分工 | 针对特定任务优化(如代码审查、调试) |
| 并行处理 | 多个 Agent 可同时工作,提高效率 |
| 灵活权限 | 可限制 Agent 只能用特定工具,提高安全性 |
Agent 类型:
| 类型 | 说明 | 示例 |
|---|---|---|
| 官方内置 | 系统自带,自动调用 | Plan(计划模式专用) |
| 用户自定义 | 你创建的专门 Agent | code-reviewer、debugger |
| 通用 Agent | Task 工具调用的通用 Agent | general-purpose、Explore |
官方内置 Agent:Plan
Plan Agent 是 Claude Code 自带的专门 Agent,专门用于计划模式:
- 模型:使用 Sonnet 进行更强大的分析
- 工具:Read、Glob、Grep、Bash(代码库探索)
- 目的:搜索文件、分析代码结构、收集上下文
- 自动调用:在计划模式中研究代码库时自动使用
工作原理:
你:[在计划模式] 帮我重构认证模块
我:让我先研究一下你的认证实现...
[内部调用 Plan Agent 探索认证相关文件]
[Plan Agent 搜索代码库并返回发现]
我:基于研究,这是我的建议方案...创建自定义 Agent
使用 /agents 命令创建你自己的自定义 Agent。
第0步:在 Claude 内输入 /agents 回车
第一步:选择创建方式 (Creation Method)
这里决定了 Agent 的"大脑"(系统提示词)是如何生成的。
| 选项 | 含义 | 适用场景 |
|---|---|---|
| Generate with Claude | 让 Claude 帮你生成 | 90% 的情况推荐。用自然语言描述需求,Claude 自动转化为专业 Prompt |
| Manual configuration | 手动配置 | 高级用户。已有写好的 Prompt,或需要精确控制每个字符 |
快捷方式:直接对话修改
创建 Agent 后,你可以直接在对话中用 @agent名字 来修改或者使用它:
# 直接告诉 AI 你的需求
"@code-reviewer 以后检查代码时,特别关注安全性问题"
@翻译agent 把这段翻译成英文,但保持技术术语不变AI 会自动更新 Agent 的配置,无需手动编辑配置文件。
完整流程(第二步至最后一步)
第二步:选择底层模型 (Select Model)
这里决定了 Agent 运行时的"智商"、速度和成本。
| 选项 | 说明 |
|---|---|
| Sonnet | 平衡性能和速度 |
| Opus | 最强能力,成本较高 |
| Haiku | 最快速度,简单任务 |
| Inherit from parent | 继承父级模型,跟随主对话切换 |
第三步:选择工具权限 (Select Tools)
这里决定了 Agent 能干什么(安全管控的关键)。
| 选项 | 权限 | 适用场景 |
|---|---|---|
| All tools | 全权授权 | 需要完整能力的 Agent |
| Read-only tools | 只读权限 | 代码审查、文档分析 |
| Edit tools | 编辑权限 | 修改代码、创建文件 |
| Execution tools | 执行权限 | 运行终端命令(风险最高) |
| MCP tools | 外部工具 | 调用 MCP 服务器连接的服务 |
第四步:选择存储位置 (Choose Location)
这里决定了 Agent 在哪里可以被看见和使用。
| 选项 | 含义 | 适用场景 |
|---|---|---|
| Project (.claude/agents/) | 项目级私有 | 专门为当前项目服务的 Agent |
| Personal (~/.claude/agents/) | 用户级全局 | 通用工具(翻译、发邮件等),随处可用 |
第五步:选择背景颜色 (Choose background color)
纯视觉设置,用于在终端里区分不同的 Agent。建议按功能分类:
- 红色:危险操作(删除文件)
- 蓝色:辅助查询
- 粉色/紫色:创意写作
最后一步:确认并保存 (Confirm and save)
| 按键 | 操作 |
|---|---|
s 或 Enter | 保存并创建 |
e | 保存后立刻进入编辑器(微调 Prompt) |
Esc | 放弃创建 |
多 Agent 并行协作
什么是多 Agent 协作
Claude Code 会自动启用多 Agent来并行处理独立任务,每个 Agent 有独立的上下文窗口,专注完成特定工作。
两种方式:
- 自动并行:我识别到独立任务,自动创建通用 Agent 并行处理
- 专门协作:调用你创建的自定义 Agent(如 code-reviewer)
自动启用
Claude Code 根据任务描述主动委派任务,使用 Task 工具创建通用 Agent 并行处理:
- 任务描述中的关键词:"并行"、"同时"、"多 Agent"
- 自定义 Agent 配置中的
description字段 - 当前上下文和可用工具
Task 工具
当 Claude Code 识别到独立任务时,会自动使用 Task 工具创建通用 Agent 来并行处理。
通用 Agent vs 自定义 Agent:
| 类型 | 调用方式 | 用途 |
|---|---|---|
| 通用 Agent | Task 工具自动创建 | 通用任务(探索、搜索、读取文件) |
| 自定义 Agent | /agents 命令创建 | 特定领域(代码审查、调试、测试) |
特点:
- 处理大量文件读取和搜索时更高效
- 多个通用 Agent 可以并行工作,加快速度
- 不需要预先配置,Claude 自动创建
多个并行 Agent
| 关键词 | 效果 |
|---|---|
| "并行" | 同时执行多个独立任务 |
| "同时" | 多个 Agent 一起工作 |
| "多 Agent" | 明确使用多个 Agent 协作 |
并行能力说明
Claude 的并行能力:
在单个响应中,Claude 最多可以并行调用 5-10 个独立工具/子代理。
这意味着如果你有多个独立的任务(比如同时读取多个文件、执行多个独立的搜索等),Claude 可以在一条消息里一次性发出所有请求,大大提高效率。
举例 1:并行调研多个技术文档
任务:了解 Prisma、Drizzle、Supabase 三种数据持久化方案
串行方式:
读 Prisma 文档 → 等待 → 读 Drizzle 文档 → 等待 → 读 Supabase 文档 → 等待 → 总结对比
并行方式:
1 个消息 → 同时发起 3 个文档调研请求 → 收集所有信息 → 生成对比报告举例 2:并行编写多个相关组件
任务:开发用户设置页面的多个功能模块
串行方式:
写头像上传 → 等待 → 写密码修改 → 等待 → 写通知偏好 → 等待 → 集成测试
并行方式:
1 个消息 → 同时启动 3 个 Agent 分别编写 3 个模块 → 收集所有代码 → 统一集成测试最佳实践:
- 确保任务之间没有依赖关系
- 在提示词中使用"同时"、"并行"等关键词
- 让 Claude 自动识别哪些任务可以并行
使用示例
# 自动并行 - AI 自动识别独立任务
"同时做这三件事:
1. 编写后端 API(用户认证)
2. 编写前端 UI(登录表单)
3. 编写数据库 schema(User 表)"
# 明确使用多 Agent
"使用多 Agent 并行开发任务模块:
- 后端团队做 CRUD API
- 前端团队做任务列表和表单
- 数据库团队做 Task 模型"进阶:恢复之前的对话
两个选项:
--continue:自动继续最近的对话--resume:显示对话选择器
使用示例:
# 继续最近的对话
claude --continue
# 使用特定提示继续
claude --continue -p "显示我们的进度"
# 显示对话选择器
claude --resume
# 非交互模式继续
claude --continue -p "再次运行测试"工作原理:
- 对话自动保存在本地
- 恢复时加载完整消息历史
- 工具状态和结果被保留
- 上下文完整恢复
进阶:并行会话与 Git Worktrees
使用场景:同时处理多个任务,完全隔离代码
创建 worktree:
# 使用新分支创建
git worktree add ../project-feature-a -b feature-a
# 使用现有分支创建
git worktree add ../project-bugfix bugfix-123在每个 worktree 中运行 AI:
cd ../project-feature-a
claude管理 worktrees:
# 列出所有 worktrees
git worktree list
# 删除 worktree
git worktree remove ../project-feature-a优势:
- 每个工作目录完全隔离
- 更改不会相互影响
- 共享相同的 Git 历史
进阶:Unix 风格实用程序用法
添加到验证流程:
// package.json
{
"scripts": {
"lint:claude": "claude -p '你是 linter。检查 vs main 的更改,报告拼写错误。每行一个文件名和行号,第二行描述问题。不返回其他文本。'"
}
}管道输入输出:
# 管道数据
cat build-error.txt | claude -p '简明解释构建错误的根本原因' > output.txt
# 控制输出格式
cat data.txt | claude -p '总结数据' --output-format text > summary.txt
cat code.py | claude -p '分析代码 bug' --output-format json > analysis.json
cat log.txt | claude -p '解析日志错误' --output-format stream-json输出格式:
text:纯文本响应(默认)json:完整对话日志的 JSON 数组stream-json:实时 JSON 对象流
人在环路
AI 能够自主完成很多任务,但以下场景建议保持人工审查:
| 场景 | 原因 | 建议做法 |
|---|---|---|
| 生产环境部署 | 影响所有用户 | AI 生成方案,人工审核后执行 |
| 数据库结构变更 | 难以回滚,影响数据 | 先 review schema,再执行迁移 |
| 安全相关代码 | 漏洞后果严重 | 代码审查必不可少 |
| 支付/财务逻辑 | 涉及资金安全 | 测试+双人验证 |
| 性能关键路径 | 影响用户体验 | 性能测试+基准对比 |
| API 兼容性变更 | 影响第三方集成 | 版本管理+通知机制 |
小白提示
如果你是编程新手,遇到上述场景不确定如何处理:
不要独自承担风险
- 寻求团队中有经验的人帮助 review
- 在测试环境先验证
- 询问 AI 风险点和注意事项
渐进式信任
- 从简单任务开始让 AI 自主完成
- 复杂/高风险任务逐步增加人类审查
- 建立 checklist 确保关键点都被检查
寻找帮助的途径
- 团队 senior 成员
- 技术社区(Stack Overflow、GitHub Issues)
- 让 AI 解释风险点:"这样做有什么风险?"
需要人工审查的信号
AI 建议时保持警惕:
- AI 说"可能破坏XXX"
- AI 建议删除大量代码
- AI 修改核心配置文件
- AI 建议重构核心模块
操作建议:
- 要求 AI 解释改动原因
- 检查受影响的文件列表
- 考虑先在分支测试
- 必要时寻求第二意见
Hooks 自动化
什么是 Hooks
Hooks = 在特定事件时自动执行的 Shell 命令
当 Claude Code 触发某些事件(如工具调用、用户提交提示)时,可以自动执行你注册的脚本命令。
常见用途:
- 代码写完后自动格式化(运行 prettier/eslint)
- AI 要删除重要文件时先拦截确认
- 提交代码前自动运行测试
安全提示
Hooks 会以你的用户权限执行 Shell 命令,配置前请理解它在做什么。
新手建议:
- 🟢 从简单场景开始(如自动格式化)
- 🟡 复杂场景寻求有经验的人帮助
- 🔴 只使用可信来源的 Hooks
使用 Hooks
运行 /hooks 打开交互式配置界面,这是最推荐的创建方式。
配置流程:
选择 Hook 事件类型:
PreToolUse- 工具调用前PostToolUse- 工具调用后PostToolUseFailure- 工具执行失败后Notification- 发送通知时UserPromptSubmit- 用户提交提示时(推荐)
配置 Hook 行为:
- 选择触发条件(matcher)
- 编写执行的 Shell 命令
- 设置超时时间(默认 60 秒)
保存并生效
重要说明
- 每个事件可注册多个 Hooks,并行执行
/hooks目录外的修改需要重启才能生效- 超时时间:60 秒
- 权限:以你的完整用户权限执行
常用场景
| 场景 | 事件 | 触发时机 | 执行命令 |
|---|---|---|---|
| 自动格式化 | PostToolUse | Write/Edit 后 | prettier --write $FILE |
| 保护敏感文件 | PreToolUse | 要修改 .env 时 | 拦截并警告 |
| 运行测试 | UserPromptSubmit | 提交包含"测试"的提示时 | npm test |
| 添加上下文 | UserPromptSubmit | 每次提交提示前 | 自动加载项目信息 |
进阶:配置文件说明
注意:以下内容仅供参考,一般不需要手动编辑配置文件。
配置位置(优先级从高到低):
.claude/settings.local.json- 本地项目设置(不提交).claude/settings.json- 项目设置~/.claude/settings.json- 用户全局设置
常用事件对照:
| 事件 | 触发时机 | 典型用途 |
|---|---|---|
PreToolUse | 工具调用前 | 验证、修改输入、权限控制 |
PostToolUse | 工具调用后 | 格式化、通知、验证结果 |
PostToolUseFailure | 工具执行失败后 | 错误处理、回滚操作 |
SessionStart | 会话开始时 | 加载环境、安装依赖 |
SessionEnd | 会话结束时 | 清理、记录统计 |
UserPromptSubmit | 用户提交提示时 | 验证提示、添加上下文 |
实用示例
自动格式化
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/format-code.sh"
}]
}
]
}
}除了执行命令(type: "command"),还可以用 LLM 做智能决策(type: "prompt")。
适用场景:需要理解内容后再决定是否放行。
敏感文件保护
#!/usr/bin/env python3
# .claude/hooks/protect-files.py
import json, sys
data = json.load(sys.stdin)
path = data.get('tool_input', {}).get('file_path', '')
# 阻止写入敏感文件
if any(p in path for p in ['.env', '.key', '.pem']):
print("受保护:不允许写入敏感文件", file=sys.stderr)
sys.exit(2)进阶:Hook 输入输出格式
输入(通过 stdin 接收 JSON):
{
"session_id": "会话ID",
"cwd": "当前工作目录",
"hook_event_name": "事件名称",
"tool_name": "工具名称",
"tool_input": {...}
}输出方式:
- 退出代码:0=成功,2=阻止操作
- JSON 输出:可返回 decision、reason 等字段
安全注意事项
安全注意事项
不要把敏感信息发送给 AI:
- ❌ API 密钥、密码
- ❌ 生产数据库连接字符串
- ❌ 用户隐私数据
使用环境变量:
# .env 文件(不要提交到 Git)
DATABASE_URL="postgresql://..."
OPENAI_API_KEY="sk-..."
# .gitignore
.env不要让 AI 修改敏感配置文件:
- 项目根目录的 .env
- SSH 密钥
- 生产环境配置
核心理念
Workflow 让 AI 开发可预测、可复现。
记住工作流五步曲(根据情况灵活应用):
- 探索:了解现状(简单改动可跳过)
- 规划:想清楚再干(明确任务可简化)
- 执行:按步骤实现(核心步骤)
- 验证:确保正确(重要环节)
- 提交:建立记录(建议自动提交)
灵活应用
工作流是工具,不是目的。理解每步的价值后:
- 复杂任务:严格遵循五步,减少返工
- 简单修改:可以跳过探索,直接执行
- 紧急修复:最小化流程,快速解决
- 团队协作:规范流程,保证质量
关键是有意识地思考每一步是否需要,而不是机械执行。
好提示词的特征:
- 具体:不含糊
- 有上下文:让 AI 知道背景
- 有约束:明确边界
- 有出口:允许不确定性
记住:
- ❌ 不要角色扮演:"你是一个资深工程师"
- ✅ 直接说任务:"实现这个功能"
Claude Code 的优势:
- 能读取整个项目上下文
- 能直接执行命令
- 能自动修改文件
- 能自动提交代码
这是网页版 AI 对话框无法做到的。
提示词自检清单
发送提示词前检查:
- [ ] 任务描述清晰具体
- [ ] 提供了必要的上下文
- [ ] 明确了输出格式
- [ ] 给了 AI"不确定"的出口
- [ ] 包含了必要的约束条件
- [ ] 避免了冗长的角色设定
- [ ] 没有包含敏感信息(API Key、密码等)
常见问题
Q1: 提示词越长越好吗?
A: 不是。
提示词的质量在于精确,不在于长度。
简洁但具体的提示词 > 冗长但模糊的提示词
Q2: AI 还是会编造答案怎么办?
A: 加强约束:
"只使用项目已有的依赖。
如果需要新功能,先告诉我。
不要编造不存在的 API。"Q3: 为什么不直接让 AI 写代码?
A: 直接写容易返工。
探索 → 规划 → 编写,这个流程能让你:
- 避免重复造轮子
- 发现潜在问题
- 保持代码风格一致
Q4: 工作流会不会太慢?
A: 不会。
看似多了步骤,实际上减少了返工时间。整体效率更高。
对比:
- 直接写:10 分钟,返工 30 分钟
- 按流程:15 分钟,一次通过
Q5: 什么时候该停止对话?
A: 信号:
- 连续 3 轮没有进展
- AI 开始重复相同的建议
- 问题需要更多信息(如查看生产环境日志)
策略:切换模型或换思路
相关内容
- 详见:2.3 MCP、插件与 Skills
- 详见:2.4 项目规则配置
- 前置:2.1 AI 编程的经济学
- 后续:2.5 高效调试心法
