# Dev Buddy：为 Claude Code 构建多 AI 开发流水线

**Summary:** 一篇面向实践的 Dev Buddy 指南：这个开源 Claude Code 插件通过结构化开发流水线编排多个 AI 模型，支持基于任务的约束、并行专家分析，以及自动修复后重新评审的循环。

- Canonical: https://markhuang.ai/zh/blog/dev-buddy-multi-ai-pipelines-with-claude-code
- Language: zh-CN
- Author: [Mark Huang](https://markhuang.ai/about)
- Published: 2026-02-25
- Section: 教程
- Tags: claude-code, AI 工具, 代码质量, 多 AI, 开源
- License: https://creativecommons.org/licenses/by-nc/4.0/

---

让一个 AI 自己写代码、自己 review，问题很明显：它倾向于验证自己的假设，而不是推翻自己。数据也印证了这一点——单模型工作流产出的代码，漏洞率高出 **2.74 倍**（CodeRabbit 2025），**45% 的 AI 生成代码存在安全缺陷**（Veracode 2025）。

[Dev Buddy](https://github.com/Z-M-Huang/vcp) 是一个开源的 Claude Code 插件，核心思路是：**用多个 AI 模型跑结构化流水线**——需求梳理、方案设计、编码实现、代码审查，每个阶段可以分配不同的模型，各自带着独立视角来审视。它隶属于 [VCP (Vibe Coding Protocol)](https://github.com/Z-M-Huang/vcp) 项目，在 VCP 的代码标准执行能力之上，叠加了多模型流水线编排。

下面从头走一遍：怎么装 Dev Buddy、怎么配流水线，以及实际跑功能开发和 Bug 修复的完整输出示例。

## Dev Buddy 到底干什么

Dev Buddy 把 AI 模型编排进基于任务的流水线，核心约束是**任何阶段都不能跳过**——阶段间的依赖靠数据约束来强制，而不是靠 prompt 里写一句"请不要跳过"。

```text
功能流水线:
  需求 → 规划 → 方案审查 → 实现 → 代码审查
       ↑              ↑           ↑              ↑              ↑
   5 个专家       架构师      sonnet/opus      实现者       sonnet/opus
   并行探索       设计方案      审查方案          写代码       审查实现
```

目前内置两条流水线：

| 流水线        | 命令                             | 阶段                           |
| ---------- | ------------------------------ | ---------------------------- |
| **功能开发**   | `/dev-buddy-feature-implement` | 需求 → 规划 → 方案审查 → 实现 → 代码审查   |
| **Bug 修复** | `/dev-buddy-bug-fix`           | 根因分析 → 汇总 → 方案验证 → 实现 → 代码审查 |

每个阶段可以指定不同的模型或 provider。审查不通过的话，会自动生成修复任务和复审任务，循环往复，直到所有 reviewer 都放行。

## 前置条件

- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)（CLI）
- [Bun](https://bun.sh/) 运行时
- 已安装 [VCP 插件](/blog/vcp-enforce-code-standards-with-claude-code)（Dev Buddy 依赖 VCP 的标准体系）

如果想用团队模式做需求梳理（5 个专家并行），需要先设置环境变量：

```bash
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
```

## Step 1: 安装 Dev Buddy

如果还没添加 VCP marketplace：

```bash
/plugin marketplace add Z-M-Huang/vcp
```

安装两个插件：

```bash
/plugin install vcp@vcp
/plugin install vcp@dev-buddy
```

项目还没初始化过的话，跑一下：

```bash
/vcp-init
```

## Step 2: 看懂默认流水线配置

Dev Buddy 自带一套默认配置。首次运行后可以查看 `~/.vcp/dev-buddy.json`，也可以直接沿用默认值：

```json
{
  "feature_pipeline": [
    { "type": "requirements", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "planning", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "plan-review", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "plan-review", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "plan-review", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "implementation", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "sonnet" }
  ],
  "bugfix_pipeline": [
    { "type": "rca", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "rca", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "plan-review", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "implementation", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "sonnet" }
  ]
}
```

每个条目指定三样东西：

- **type** — 流水线阶段（`requirements`、`planning`、`plan-review`、`implementation`、`code-review`、`rca`）
- **provider** — 用哪个 AI 服务商
- **model** — 该服务商下的具体模型

条目数量直接决定流水线有多少个任务。想多审几轮？多加几个 `plan-review` 或 `code-review` 条目就行。觉得流程太长？删掉几个条目即可。

## Step 3: 跑第一个功能流水线

启动功能开发流水线：

```bash
/dev-buddy-feature-implement 给 /api/login 接口加限流
```

### Phase 1: 需求梳理（团队模式）

Dev Buddy 会拉起 5 个专家角色，并行扫描你的代码库：

```text
流水线: pipeline-myproject-a1b2c3
已创建包含 5 个专家的团队:
​
  技术分析员     → 探索代码库结构、依赖和既有模式
  UX/领域分析员  → 分析用户工作流、最佳实践和可访问性
  安全分析员     → 威胁建模、OWASP 分析、VCP 标准检查
  性能分析员     → 负载分析、扩展性和资源约束
  架构分析员     → 设计模式、SOLID 原则和可维护性
​
专家正在探索...（大约需要 1-2 分钟）
```

每个专家各输出一份分析文件：

| 专家       | 输出                                     |
| -------- | -------------------------------------- |
| 技术分析员    | `.vcp/task/analysis-technical.json`    |
| UX/领域分析员 | `.vcp/task/analysis-ux-domain.json`    |
| 安全分析员    | `.vcp/task/analysis-security.json`     |
| 性能分析员    | `.vcp/task/analysis-performance.json`  |
| 架构分析员    | `.vcp/task/analysis-architecture.json` |

协调者可能会根据专家发现向你追问几个问题。所有专家完成后，需求梳理 agent 会把各方意见综合成一份 `.vcp/task/user-story.json`：

```json
{
  "id": "story-20260225-143022",
  "title": "给登录接口加限流",
  "requirements": {
    "functional": [
      "每个 IP 在 15 分钟窗口内最多尝试 /api/login 5 次",
      "超限返回 429 Too Many Requests，带 Retry-After header",
      "登录成功后重置计数器"
    ],
    "non_functional": [
      "限流状态必须跨服务重启保留（Redis/数据库）",
      "每个请求的额外延迟低于 1 毫秒"
    ]
  },
  "acceptance_criteria": [
    "AC-1: 15 分钟内第 6 次登录尝试返回 429",
    "AC-2: Retry-After header 包含距窗口重置的秒数",
    "AC-3: 登录成功会重置尝试计数器",
    "AC-4: 限流状态能跨服务重启保留"
  ]
}
```

> **Info:**
>
> 如果安全分析员检测到 `.vcp/config.json` 里有合法的插件路径，它会自动加载 VCP 标准，作为结构化 checklist 配合 OWASP Top 10 一起使用。输出中的 `vcp_standards_referenced` 字段可以用来做溯源。

### Phase 2: 方案设计

架构师 agent 读取 user story，设计实现方案：

```text
任务: 规划 1 (opus)
读取: .vcp/task/user-story.json
​
正在设计实现方案...
```

输出是 `.vcp/task/plan-refined.json`，包含技术方案、实现步骤、测试计划和风险评估。

### Phase 3: 方案审查

配置里有几个 `plan-review` 条目，就会生成几个审查任务。默认串行执行——前一个 reviewer 通过了，下一个才开始：

```text
任务: 方案审查 1 (sonnet) — 审查 plan-refined.json
  检查: 可行性、完整性、验收标准覆盖
  结论: approved
​
任务: 方案审查 2 (opus) — 审查 plan-refined.json
  检查: 架构合理性、安全影响
  结论: needs_changes
  问题:
    - 没有考虑多实例部署下的分布式限流
    - Redis 不可用时缺少降级方案
​
  → 创建修复任务: "修复方案审查 2 v1"
  → 创建复审任务: "方案审查 2 v2"
```

reviewer 返回 `needs_changes` 后，Dev Buddy 会自动：

1. 把具体问题写进修复任务
2. 创建复审任务，阻塞到修复完成
3. 由同一个 reviewer 验证修复结果，通过后流水线才继续往下走

这个循环会一直转，要么审过，要么达到最大迭代次数。

### Phase 4: 编码实现

方案审查全部通过后，实现 agent 开始写代码：

```text
任务: 实现 1 (sonnet)
读取: .vcp/task/plan-refined.json
正在实现限流逻辑...
​
已修改文件:
  + src/middleware/rate-limit.ts (新增)
  M src/api/routes.ts (添加中间件)
  + src/__tests__/rate-limit.test.ts (新增)
​
输出: .vcp/task/impl-result.json
```

### Phase 5: 代码审查

代码审查和方案审查同样的套路——默认串行，不通过就自动进修复循环：

```text
任务: 代码审查 1 (sonnet)
  检查: 功能正确性、测试覆盖、错误处理
  结论: approved
  已验证验收标准: AC-1 ✓, AC-2 ✓, AC-3 ✓, AC-4 ✓
​
任务: 代码审查 2 (opus)
  检查: 安全、性能、架构
  结论: approved
​
任务: 代码审查 3 (sonnet)
  检查: 代码质量、可维护性
  结论: approved
​
流水线完成！所有审查均已通过。
```

## Step 4: 跑一个 Bug 修复流水线

Bug 修复流水线的前半段换了一套更适合问题诊断的流程：

```bash
/dev-buddy-bug-fix 用户反馈购物车超过 50 件商品时 /api/checkout 返回 500 错误
```

### 根因分析

多个 RCA agent 各自独立诊断问题：

```text
任务: RCA 1 (sonnet)
  正在调查: /api/checkout handler、购物车处理逻辑
  根因: calculateTotals 里的 Array.map 在处理大购物车折扣组合时
    产生了 O(n²) 的嵌套循环
  证据: stack trace 显示 cart.service.ts:142 超时
​
任务: RCA 2 (opus)
  正在调查: 数据库查询、内存 profiling
  根因: 确认 O(n²) 复杂度。另外发现每个商品都会单独发一次
    DB 查询来检查库存
    （cart.repository.ts:89 存在 N+1 查询问题）
```

### 诊断汇总

编排者把各方诊断结果合并：

```text
正在汇总 RCA 发现...
  RCA 1: O(n²) 折扣计算 — 两个 agent 均确认
  RCA 2: N+1 库存查询 — opus 额外发现的问题
​
合并诊断已写入 .vcp/task/user-story.json
修复方案已写入 .vcp/task/plan-refined.json
  - 用 Map 查找替换嵌套循环，复杂度降为 O(n)
  - 用 WHERE IN 子句批量查库存
```

之后流水线进入方案验证、编码实现、代码审查——和功能流水线的后半段一样。

## Step 5: 配置 AI Provider

Dev Buddy 支持三种 provider 类型。

### 订阅模式（默认）

走 Claude Code 内置的 Task tool，直接用你的 Claude 订阅，不需要 API key：

```json
{ "type": "code-review", "provider": "anthropic-subscription", "model": "opus" }
```

可选模型：`opus`、`sonnet`、`haiku`。

### API Provider

接入兼容 API 协议的外部服务——OpenRouter、MiniMax、自部署模型都行：

```bash
/dev-buddy-manage-presets
```

会打开一个交互式预设管理器：

```text
Dev Buddy — AI 预设管理器
​
当前预设:
  1. anthropic-subscription (subscription) — 内置
​
操作:
  [1] 添加新预设
  [2] 更新预设
  [3] 删除预设
​
> 1
​
预设名称: openrouter
类型: api
Base URL: https://openrouter.ai/api/v1
API Key: sk-or-***
模型: anthropic/claude-sonnet-4, anthropic/claude-opus-4
​
预设 "openrouter" 已保存。
```

然后在流水线配置里直接引用：

```json
{ "type": "code-review", "provider": "openrouter", "model": "anthropic/claude-opus-4" }
```

### CLI Provider

接入命令行 AI 工具，比如 OpenAI Codex：

```json
{
  "name": "codex",
  "type": "cli",
  "command": "codex",
  "args_template": "--model {model} --prompt {prompt} --output-file {output_file}",
  "one_shot_args_template": "--model {model} --prompt {prompt}",
  "models": ["o3-mini"]
}
```

这样就能把 Codex 当成一个独立的最终把关者——不同的 AI 家族，往往能抓到 Claude 看不到的问题。

## Step 6: 自定义流水线

直接编辑 `~/.vcp/dev-buddy.json`，按需调整流水线。

### 精简审查（快速迭代）

```json
{
  "feature_pipeline": [
    { "type": "requirements", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "planning", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "plan-review", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "implementation", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "opus" }
  ]
}
```

### 并行审查

加上 `"parallel": true`，审查就可以并发跑：

```json
{
  "feature_pipeline": [
    { "type": "requirements", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "planning", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "plan-review", "provider": "anthropic-subscription", "model": "sonnet", "parallel": true },
    { "type": "plan-review", "provider": "anthropic-subscription", "model": "opus", "parallel": true },
    { "type": "implementation", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "sonnet", "parallel": true },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "opus", "parallel": true }
  ]
}
```

同一组里的并行审查会同时启动，下一阶段会等这组全部完成后再开始。

### 混合 Provider（跨模型审查）

不同阶段用不同 provider，获取真正独立的视角：

```json
{
  "feature_pipeline": [
    { "type": "requirements", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "planning", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "plan-review", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "plan-review", "provider": "openrouter", "model": "anthropic/claude-opus-4" },
    { "type": "implementation", "provider": "anthropic-subscription", "model": "sonnet" },
    { "type": "code-review", "provider": "anthropic-subscription", "model": "opus" },
    { "type": "code-review", "provider": "codex", "model": "o3-mini" }
  ]
}
```

## Step 7: 一次性任务

有些小活儿用不着跑完整流水线，直接 `/dev-buddy-once`：

```bash
/dev-buddy-once use anthropic-subscription model opus 审查这个 PR 的安全问题
```

```bash
/dev-buddy-once use openrouter model anthropic/claude-opus-4 重构认证模块
```

指定 provider 和模型，跑完就完事——没有流水线，没有审查循环，纯粹的单次执行。

## Web 配置面板

不想改配置文件的话，有可视化界面：

```bash
/dev-buddy-config
```

会在本地起一个 Web UI，三个 tab：

- **AI Presets** — 增删改 provider 配置
- **Pipeline Config** — 拖拽调整流水线阶段，设置并行组
- **Session Managers** — 查看正在运行的会话和状态

## 任务驱动的执行机制

Dev Buddy 保证流水线不被跳过的秘诀是**数据约束**，而不是靠 prompt 指令。

传统做法：

```text
指令: "先跑 Sonnet 审查，再跑 Opus 审查，然后实现"
问题: AI 可能自作主张跳过它觉得"多余"的步骤，或者自己改顺序
```

Dev Buddy 的做法：

```text
T1 = TaskCreate("方案审查 1")
T2 = TaskCreate("方案审查 2")  → blockedBy: [T1]
T3 = TaskCreate("实现")       → blockedBy: [T2]
```

编排者调用 `TaskList()` 时，被阻塞的任务根本不会出现在返回列表里。AI 只能看到、也只能领取下一个未阻塞的任务。这是数据查询层面的约束，不是"请你按顺序来"这种君子协定——从结构上就不可能跳步。

### 动态修复任务

当 reviewer 返回 `needs_changes` 时：

```text
代码审查 2 (opus): needs_changes
  问题: 购物车商品数量缺少输入校验
​
  → TaskCreate("修复代码审查 2 v1")           blockedBy: [review_task]
  → TaskCreate("代码审查 2 v2")               blockedBy: [fix_task]
  → TaskUpdate(next_stage, addBlockedBy: [v2])    重接任务链
```

修复→复审循环会持续进行，直到通过或达到最大迭代次数（默认 10 次），超出后会交给你人工处理。

## 流水线产物

所有流水线输出都落在 `.vcp/task/` 目录下：

| 文件                    | 内容                   |
| --------------------- | -------------------- |
| `pipeline-tasks.json` | 任务链，含 ID、配置快照、已解析的阶段 |
| `analysis-*.json`     | 各专家的探索发现（共 5 个文件）    |
| `user-story.json`     | 综合后的需求和验收标准          |
| `plan-refined.json`   | 技术方案、实现步骤、测试计划和风险    |
| `plan-review-N.json`  | 方案审查结论和反馈            |
| `impl-result.json`    | 实现摘要和变更文件列表          |
| `code-review-N.json`  | 代码审查结论和发现            |
| `rca-N.json`          | 根因分析发现（Bug 修复流水线）    |

这些产物构成了流水线中每个决策的完整审计链。

## 快速参考

| 命令                                                      | 用途                 |
| ------------------------------------------------------- | ------------------ |
| `/dev-buddy-feature-implement [描述]`                     | 启动功能开发流水线          |
| `/dev-buddy-bug-fix [描述]`                               | 启动 Bug 修复流水线       |
| `/dev-buddy-once use <provider> [model <model>] <task>` | 用指定 provider 跑单次任务 |
| `/dev-buddy-manage-presets`                             | 增删改 AI provider 预设 |
| `/dev-buddy-config`                                     | 打开 Web 配置面板        |

Dev Buddy 是 [VCP 项目](https://github.com/Z-M-Huang/vcp) 的一部分——和代码标准执行同一个 repo。VCP 负责主动执行规则，Dev Buddy 在此基础上叠加多模型审查。
