Opencode 工作流最佳实践:Build vs Plan 模式深度解析
掌握 Opencode 的工作流模式是从"会用"到"精通"的关键一步。本文将深入解析 Opencode 的两种核心工作模式:Build 和 Plan,以及如何在实际开发中应用最佳实践。
理解 Opencode 的工作流模式
Opencode 提供了两种主要的工作模式,它们适用于不同的开发场景:
Build 模式:快速执行
特点:
- AI 直接执行任务,立即生成代码
- 适合明确、简单的任务
- 快速迭代,即时反馈
适用场景:
- 简单的代码补全
- 函数重命名
- 格式化代码
- 添加注释
- 修复明显的 Bug
示例:
你:帮我重构这个函数,提取出重复的逻辑
AI:[直接生成重构后的代码]
Plan 模式:先规划后执行
特点:
- AI 先制定详细计划,等待你确认
- 适合复杂、多步骤的任务
- 可以在执行前调整方案
适用场景:
- 大规模重构
- 新功能开发
- 架构调整
- 多文件修改
- 复杂的 Bug 修复
示例:
你:实现用户认证功能
AI:我计划这样做:
1. 创建 User 模型
2. 实现 JWT 认证中间件
3. 添加登录/注册路由
4. 编写单元测试
你确认这个方案吗?
你:确认,开始执行
AI:[按计划逐步执行]
Build vs Plan:如何选择?
决策树
任务是否明确且简单?
├─ 是 → 使用 Build 模式
└─ 否 → 任务是否涉及多个文件?
├─ 是 → 使用 Plan 模式
└─ 否 → 任务是否有多种实现方案?
├─ 是 → 使用 Plan 模式
└─ 否 → 使用 Build 模式
对比表格
| 维度 | Build 模式 | Plan 模式 |
|---|---|---|
| 执行速度 | 快 | 慢(需要确认) |
| 适用复杂度 | 简单任务 | 复杂任务 |
| 可控性 | 低 | 高 |
| 适合新手 | 是 | 否 |
| 多文件操作 | 不推荐 | 推荐 |
| 可回滚性 | 依赖 Git | 执行前可调整 |
实际案例对比
案例 1:添加日志
❌ 不推荐 Plan 模式:
你:在所有函数中添加日志
AI:我计划修改 50 个文件...(过度规划)
✅ 推荐 Build 模式:
你:在所有函数中添加日志
AI:[直接执行,快速完成]
案例 2:实现支付功能
❌ 不推荐 Build 模式:
你:实现支付功能
AI:[直接开始写代码,可能方向不对]
✅ 推荐 Plan 模式:
你:实现支付功能
AI:我建议:
1. 集成 Stripe API
2. 创建 Payment 模型
3. 实现 webhook 处理
4. 添加支付状态管理
你觉得这个方案如何?
Opencode Agent 最佳实践
1. 清晰的任务描述
❌ 不好的描述:
"优化这段代码"
✅ 好的描述:
"重构 UserService.ts 中的 getUserById 方法:
1. 添加缓存层
2. 改善错误处理
3. 添加类型注解
4. 保持向后兼容"
2. 分解复杂任务
❌ 一次性大任务:
"实现完整的电商系统"
✅ 分步骤执行:
步骤 1:"创建商品模型和基础 CRUD API"
步骤 2:"实现购物车功能"
步骤 3:"添加订单管理"
步骤 4:"集成支付系统"
3. 提供上下文
❌ 缺少上下文:
"添加一个按钮"
✅ 提供完整上下文:
"在 UserProfile.tsx 组件中添加一个'编辑'按钮:
- 位置:头像右侧
- 样式:使用 Ant Design 的 Button 组件
- 点击后打开编辑模态框
- 遵循现有的设计规范"
4. 使用 AGENTS.md 文件
在项目根目录创建 AGENTS.md,让 AI 了解项目上下文:
# 项目上下文
## 技术栈
- React 18 + TypeScript
- 状态管理:Zustand
- UI 库:Ant Design 5.x
- 请求库:Axios + React Query
## 代码规范
- 组件使用函数式组件 + Hooks
- 文件命名:PascalCase.tsx
- 导出方式:命名导出
- 测试框架:Vitest
## 项目结构
src/
├── components/ # 公共组件
├── features/ # 功能模块
├── hooks/ # 自定义 Hooks
└── utils/ # 工具函数
## 常见任务
### 创建新组件
1. 在 components/ 或 features/ 下创建
2. 使用 TypeScript 定义 Props
3. 添加单元测试
4. 导出到 index.ts
5. 迭代式开发
❌ 追求一次完美:
"实现一个完美的用户管理系统,包含所有功能"
✅ 迭代式改进:
第 1 轮:"实现基础的用户列表和详情页"
第 2 轮:"添加搜索和筛选功能"
第 3 轮:"实现用户权限管理"
第 4 轮:"优化性能和用户体验"
高级工作流技巧
1. 使用 Checkpoints
在复杂任务中设置检查点:
你:实现用户认证功能,分三个阶段:
阶段 1:创建数据模型(完成后等待我确认)
阶段 2:实现 API 接口(完成后等待我确认)
阶段 3:添加前端集成(完成后等待我确认)
2. 并行任务处理
对于独立的任务,可以并行处理:
你:同时执行以下任务:
任务 A:重构 utils/date.ts
任务 B:添加 components/Loading.tsx
任务 C:更新 README.md
这三个任务互不依赖,可以并行
3. 使用模板化提示词
创建常用任务的提示词模板:
模板:创建 React 组件
创建一个 {组件名} 组件:
- 功能:{功能描述}
- Props:{Props 列表}
- 样式:使用 Ant Design
- 测试:包含基础单元测试
- 位置:src/components/{组件名}.tsx
模板:API 接口
创建 {接口名} API:
- 方法:{GET/POST/PUT/DELETE}
- 路径:/api/{路径}
- 参数:{参数列表}
- 返回:{返回值类型}
- 错误处理:统一错误格式
- 文档:添加 JSDoc 注释
4. 代码审查工作流
让 AI 帮你做 Code Review:
你:审查以下代码,检查:
1. 是否有潜在的 Bug
2. 是否符合最佳实践
3. 性能是否可以优化
4. 类型定义是否完整
5. 错误处理是否充分
[粘贴代码]
5. 测试驱动开发(TDD)
使用 AI 辅助 TDD 工作流:
步骤 1:"为 calculateDiscount 函数编写测试用例"
步骤 2:"实现 calculateDiscount 函数,通过所有测试"
步骤 3:"重构代码,保持测试通过"
团队协作工作流
1. 统一提示词规范
团队应该建立统一的提示词规范:
团队提示词指南:
# 提示词规范
## 格式
[动作] + [目标] + [要求]
## 示例
✅ "重构 UserService.ts,提取重复逻辑,保持接口不变"
❌ "改一下这个文件"
## 必须包含的信息
1. 明确的动作(创建/修改/删除/重构)
2. 具体的目标文件或功能
3. 清晰的要求和约束
## 可选信息
- 技术栈要求
- 性能要求
- 兼容性要求
- 测试要求
2. Code Review 流程
开发者 → AI 生成代码 → 开发者审查 → 提交 PR → 团队 Review → 合并
AI 生成代码的审查清单:
- [ ] 代码逻辑正确
- [ ] 符合团队规范
- [ ] 类型定义完整
- [ ] 错误处理充分
- [ ] 有必要的注释
- [ ] 通过所有测试
- [ ] 无安全隐患
3. 知识沉淀
将成功的工作流记录下来:
docs/workflows/
├── create-component.md # 创建组件工作流
├── add-api-endpoint.md # 添加 API 工作流
├── refactor-code.md # 重构代码工作流
└── fix-bug.md # 修复 Bug 工作流
性能优化工作流
1. 识别性能瓶颈
你:分析以下代码的性能瓶颈:
[粘贴代码]
重点关注:
1. 不必要的重渲染
2. 内存泄漏
3. 大数据处理
4. 网络请求优化
2. 优化建议
你:提供性能优化建议,包括:
1. 具体的优化方案
2. 预期的性能提升
3. 可能的副作用
4. 实现难度评估
3. 实施优化
你:实施以下优化(按优先级):
优先级 1:修复内存泄漏
优先级 2:添加 React.memo
优先级 3:优化大列表渲染
每完成一项,运行性能测试
常见工作流模式
模式 1:快速原型
1. "创建基础组件结构"
2. "添加核心功能"
3. "快速测试可行性"
4. "收集反馈"
5. "决定是否继续开发"
模式 2:稳健开发
1. "设计数据模型和接口"
2. "编写单元测试"
3. "实现核心逻辑"
4. "集成测试"
5. "性能优化"
6. "文档完善"
模式 3:重构优化
1. "分析现有代码问题"
2. "制定重构计划"
3. "编写测试保护"
4. "逐步重构"
5. "验证功能不变"
6. "清理旧代码"
模式 4:Bug 修复
1. "复现 Bug"
2. "定位问题代码"
3. "分析根本原因"
4. "编写测试用例"
5. "修复 Bug"
6. "验证修复效果"
7. "检查类似问题"
小结
掌握 Opencode 的工作流是提升效率的关键:
- 选择合适的模式:简单任务用 Build,复杂任务用 Plan
- 清晰的沟通:提供明确的任务描述和上下文
- 迭代式开发:分步骤执行,及时反馈
- 建立规范:团队统一工作流和提示词规范
- 持续优化:记录成功经验,不断改进
记住,AI 是你的助手,不是替代品。最好的工作流是人机协作,发挥各自的优势。
想了解更多最佳实践?查看实践指南。