2.3 Harness Engineering:先理解可控系统¶
Harness Engineering 关心的是 Agent 在什么系统里工作:它先读什么、能改什么、怎么证明完成、失败后从哪里恢复。
本节只讲概念边界。要按步骤搭一个最小 Harness,读 6.6 为一个项目搭最小 Harness;要直接复制项目模板,读 9.4 最小项目模板和执行步骤;要找日常执行提示词和检查清单,读 8. 实用做法。
一个 harness 包含什么¶
输入:issue / PRD / prompt
上下文:AGENTS.md / CLAUDE.md / docs / specs
工具:shell / Git / MCP / browser / code search
执行:Claude Code / Codex / OpenCode / subagents
验证:test / lint / typecheck / build / e2e
审查:diff 审查 / 代码审查 / 安全审查
恢复:Git / worktree / plan files / task state
沉淀:rules / skills / retrospectives
这是一套围绕 Agent 的工程环境。它不等于某个固定工具名,而是把任务入口、上下文、工具、验证、审查、恢复和记忆放到一起。
OpenSpec、Superpowers、GSD、OMC、ECC 和 Trellis 都可以放进这个框架理解:OpenSpec 偏规格,Superpowers 偏流程技能,GSD 偏长任务阶段治理,OMC 偏多 Agent 编排,ECC 偏 Claude Code 能力补齐,Trellis 偏长期任务和记忆骨架。
为什么需要 harness¶
任务变大后,单靠 prompt 常见的问题是:
- 上下文窗口超出限制。
- Agent 忘记测试。
- Agent 改了无关文件。
- 中途失败后无法恢复。
- 同类任务每次都重新教。
- 写代码和审代码混在一起。
- 多个 Agent 互相覆盖。
Harness 的作用是把这些风险提前放进流程里,而不是等 Agent 跑偏后再靠解释补救。
最小可用 harness¶
个人开发者可以从这套开始:
项目根目录:
AGENTS.md / CLAUDE.md / opencode.json
README.md
任务目录:
prd.md
plan.md
执行工具:
Claude Code、Codex 或 OpenCode
验证命令:
test
lint
typecheck
build
复盘:
每次重复错误沉淀到规范或 skill
不要一开始就追求复杂系统。最小 harness 稳定运行之后,再加 MCP、skills、Trellis、CCG、Superpowers。
可用 harness 的标志¶
你可以用下面清单检查:
- 任务入口清楚:每个任务都有目标、范围、验收。
- 上下文可复用:新会话不需要从零解释项目。
- 权限可控:高风险操作需要人工确认。
- 验证默认执行:完成前不会跳过测试。
- 状态可恢复:中断后能从文件继续。
- 经验可沉淀:重复错误会进入规则或 skill。
Harness 不是越重越好¶
如果任务很小:
prompt + 本地 Agent + diff 审查
即可。
如果任务复杂:
PRD + plan + Agent + MCP + skill + test + 审查 + worktree
才需要。
工具复杂度要跟任务复杂度匹配。小任务用重框架,会让维护成本比任务本身还高。