Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 必须定义“什么时候算完成“:

  1. 相关测试通过。
  2. 构建/lint/type check 通过。
  3. diff 符合需求,没有范围外改动。
  4. 验证证据被记录。
  5. 代码审查级验收通过。

只说“测试过了“不够,还要说明跑了什么命令、输出是什么、哪些没跑以及原因。

六、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 在没有验证命令的项目里自由发挥。