Harness Engineering
Harness Engineering 是比“会用 AI 写代码“更高一层的能力:给 coding agent 搭建可靠的上下文、工具、验证和边界,让 AI 能长期、稳定、可审计地工作。
一、什么是 Harness Engineering
Harness 是围绕 AI coding agent 的工程脚手架。它不是模型本身,也不是简单 prompt,而是让 agent 在真实项目里知道规则、记住状态、正确使用工具、按验证闭环完成任务的一整套系统。
二、五个子系统
| 子系统 | 类比 | 作用 |
|---|---|---|
| Instructions | 菜谱架 | AGENTS.md/CLAUDE.md、项目规则、架构说明 |
| State | 备餐台 | feature_list.json、progress.md、session-handoff.md |
| Verification | 出餐质检口 | 测试、lint、build、验收证据 |
| Scope | 任务边界 | one-feature-at-a-time、Definition of Done |
| Lifecycle | 班次管理 | init.sh、启动检查、交接流程 |
三、为什么 AGENTS.md / CLAUDE.md 重要
这类文件是 agent 的项目级路由层,用于告诉 AI:
- 先读哪些文档。
- 哪些文件能改、哪些不能改。
- 运行什么验证命令。
- 完成前必须做什么检查。
- 当前项目的架构和命名约定。
四、状态与会话连续性
长任务容易跨会话,所以需要持久状态:
feature_list.json:记录功能、状态、依赖、证据。progress.md:记录当前进度和阻塞。session-handoff.md:让下一轮 agent 接上上下文。
原则:能从代码/仓库推导出的内容不放进记忆;只记录决策、进度、验证结果和非显然约束。
五、验证工作流与 completion gate
Harness 必须定义“什么时候算完成“:
- 相关测试通过。
- 构建/lint/type check 通过。
- diff 符合需求,没有范围外改动。
- 验证证据被记录。
- 代码审查级验收通过。
只说“测试过了“不够,还要说明跑了什么命令、输出是什么、哪些没跑以及原因。
六、Scope 控制与安全
Agent 最常见问题是过度改动、忘记上下文、为了修一个问题重构半个项目。Harness 通过权限、任务边界、计划、提交粒度和 review gate 限制风险。
七、面试怎么讲
可以说:“我不只是用 AI 生成代码,还会给 AI 建执行边界:项目说明、任务状态、验证命令、完成门禁和 handoff。这样 AI 适合做重复、检索、草稿和局部实现,但质量由工程化流程兜底。”
高频面试题
Q1:Harness Engineering 和 prompt engineering 区别? 答:prompt engineering 关注一次对话怎么问;Harness Engineering 关注长期项目里 agent 的规则、状态、工具、安全、验证和生命周期。
Q2:一个最小可用 harness 包含什么? 答:AGENTS.md/CLAUDE.md 项目规则、明确验证命令、任务状态记录、完成定义、session handoff。复杂项目再加多 agent 协作和权限控制。
Q3:为什么需要 completion gate? 答:防止 agent 只凭感觉宣布完成。完成必须有构建/测试/审查证据,并确认没有范围外改动。
易错点 / 追问
- 不要把 harness 讲成“写一个超长 prompt“。
- 不要让记忆保存可从仓库推导的信息。
- 不要让 agent 在没有验证命令的项目里自由发挥。