跳转至

6.9 从轻量到生产级 Harness 的落地路线

Harness 不应该一次性搭满。你可以把它当成四个阶段:能交代、能验证、能复用、能恢复。

阶段图

flowchart LR
  A["V0<br/>单次任务"] --> B["V1<br/>项目规则"]
  B --> C["V2<br/>任务工件"]
  C --> D["V3<br/>工具与流程"]
  D --> E["V4<br/>团队系统"]

每个阶段都应该能独立产生价值。不要为了“看起来工程化”而增加文件。

注意:V0 到 V4 是采用成熟度递进,不是框架排名。OpenSpec、Superpowers、GSD、OMC、ECC、Trellis 的定位差异见 10-six-harness-routes.md,组合方式见 11-harness-composition-patterns.md

V0:单次任务可交代

目标:让 Agent 做完一次任务后,你能知道它做了什么、怎么验证。

需要的东西:

  • 一个清楚 prompt。
  • 一个文件范围。
  • 一个验证命令。
  • 一段最终总结。

适合:

  • 小 bug。
  • 单文件改动。
  • 小脚本。
  • 文档修正。

最小 prompt:

目标:修复 <现象>。
范围:优先检查 <文件/模块>,不要改无关文件。
约束:保持现有风格,不引入新依赖。
完成标准:复现问题,修复后运行 <命令>,最后总结改动和验证结果。

如果 V0 都做不好,不要急着加 MCP 或多 Agent。

V1:项目规则可复用

目标:不用每次重复告诉 Agent 项目基本规则。

新增资产:

AGENTS.md
CLAUDE.md
docs/architecture.md
docs/testing.md
docs/pitfalls.md

AGENTS.md / CLAUDE.md 的职责是入口地图,而不是百科全书。

应该写:

  • 项目怎么启动、测试、构建。
  • 常见目录和模块。
  • 重要约束和禁止事项。
  • 任务前必须读取哪些文档。
  • 高风险操作的停手条件。

不应该写:

  • 大段业务细节。
  • 过期的架构说明。
  • 泛泛的“写高质量代码”。
  • 与项目无关的个人偏好。

V2:任务工件可追溯

目标:让每次复杂变更都有独立记录。

新增资产:

tasks/
  <date>-<slug>/
    prd.md
    plan.md
    journal.md
    verification.md
    handoff.md

职责:

  • prd.md:目标、范围、验收标准。
  • plan.md:实现步骤、文件范围、风险。
  • journal.md:关键过程、决策、阻塞。
  • verification.md:运行过什么检查、结果是什么。
  • handoff.md:如果换会话,下一位 Agent 如何接手。

适合:

  • 多文件功能。
  • 重构。
  • 需要用户确认的需求。
  • 有多个实现方案的任务。

关键规则:

  • 需求变化先改 PRD,再改代码。
  • Agent 跑偏时先回任务文件,不要在聊天里继续补丁式解释。
  • 每次重要决策都落盘。

V3:工具与流程可控

目标:让 Agent 不只会写代码,还能按固定流程使用工具。

新增资产:

.codex/skills/ 或 .claude/skills/
mcp.json / config.toml / settings.json
scripts/check-*.sh
scripts/guard-*.py

适合接入:

  • 只读代码搜索。
  • 浏览器自动化。
  • GitHub/PR 信息。
  • 文档检索。
  • 日志检索。
  • 轻量 eval。

暂缓接入:

  • 生产数据库写权限。
  • 发布权限。
  • 账单和付款系统。
  • 会修改外部状态的批量操作。

流程:

sequenceDiagram
  participant H as Human
  participant A as Agent
  participant S as Skill
  participant M as MCP
  participant V as Verification

  H->>A: 给出任务和范围
  A->>S: 选择或调用对应流程
  S->>M: 按需读取外部事实
  A->>A: 实现或整理方案
  A->>V: 运行检查
  A->>H: 提交证据、风险、未完成项

关键规则:

  • MCP 负责事实,skill 负责流程。
  • 写操作必须有确认点。
  • 工具输出要写入任务记录。
  • Agent 不能因为工具可用就跳过人工判断。

V4:团队系统可恢复

目标:让团队成员和多个 Agent 都能在同一套系统里工作。

新增资产:

docs/adr/
docs/domain/
docs/runbooks/
specs/
reviews/
retrospectives/
shared-skills/

需要明确:

  • 谁可以改规则。
  • 什么时候更新 AGENTS/CLAUDE。
  • 哪些 skills 是团队标准。
  • 哪些 MCP 是批准过的。
  • 多 Agent 如何划分写入范围。
  • PR 前必须有哪些证据。
  • 任务失败后怎么回滚和复盘。

团队级 harness 的关键不是“更多自动化”,而是“更少口头约定”。

一条推荐采用路线

flowchart TD
  A[先写 AGENTS.md] --> B[补 docs/testing.md 和 docs/pitfalls.md]
  B --> C["复杂任务进入 tasks/{slug}/"]
  C --> D[把重复流程提炼成 1-2 个 skills]
  D --> E[接入只读 MCP]
  E --> F[引入 worktree / subagent 并行]
  F --> G[建立验证和复盘机制]

不要反过来。先多 Agent、再补规则,通常只会把混乱并行化。

什么时候该升级

从 V0 到 V1:

  • 你每次都在重复说明测试命令、目录结构、风格规则。

从 V1 到 V2:

  • 任务开始跨多个文件,需求或设计需要确认。

从 V2 到 V3:

  • 你反复让 Agent 做同一种流程,或者需要外部系统事实。

从 V3 到 V4:

  • 多人、多 Agent、多项目开始共享这套工作流。

什么时候不要升级

  • 项目还只是一次性脚本。
  • 你没有稳定测试命令。
  • 团队还没有共同质量标准。
  • 你只是因为看到别人用了某个框架。

Harness 是为交付服务的,不是为仪式感服务的。

最小落地 checklist

  • [ ] 根目录有 AGENTS.md 或等价项目规则。
  • [ ] 有一个文档说明怎么测试和构建。
  • [ ] 复杂任务有任务目录。
  • [ ] Agent 开始前会先只读分析。
  • [ ] Agent 完成后必须给出验证证据。
  • [ ] 高风险文件有停手条件。
  • [ ] 至少有一个 review 或 pre-review 流程。
  • [ ] 复盘发现的新规则会进入文档或 skill。