---
status: review
chapter-type: narrative
---

# 前言

2026 年，OpenAI 的 Codex 团队宣称：在一次为期 8 周的冲刺中，上线的生产代码约有 **一百万行**，而人类写的是 **零行**。同一时期，LangChain 团队在 Terminal Bench 2.0 上从第 30 名跃升至前 5 名，模型并未升级，他们改动的只是模型外围的脚手架。Anthropic 的研究团队在 *权限对话框、技能编写规范、MCP 服务契约* 上投入的工程人时，甚至超过了花在模型权重上的时间。某种重心已经悄然移动：AI 编程的杠杆支点，正从模型本身，转向围绕它的那个环境。

这个环境——智能体在敲下第一个字符之前所看到的一整套提示词、技能、工具、审批关卡、沙箱、规约、测试与度量——正是本书的主题。它如今有了一个名字：**Harness Engineering（驾驭工程）**。这个名字可以追溯到 1974 年：贝尔实验室的工程师把第一个自动化测试驱动器称作 "test harness"（测试马具），因为它就像缰绳与辔头之于一匹马那样 *驾驭* 着被测程序。这个比喻经受住了时间的考验。所谓 harness，既不是束缚，也不是装饰；它是一套经过精心装配的支持与约束，让一匹壮马能够踏实做工、而不致脱缰狂奔。

把这个比喻认真对待，就会推出三件事，而本书正是对这三件事逐一细致展开。第一，马具是 *为特定的牲口、特定的负载而设计的*；给盛装舞步马配的马具，套到克莱兹代尔重挽马上会崩，反过来也一样。你在个人副业项目里用得顺手的 `AGENTS.md`，放到一支五十人规模的平台团队里只会把方向带偏；一家银行必需的审批关卡，搬到研究原型里只会把它闷死。第二，马具会 *磨损*。智能体每跑一次，就会在规约、测试、仪表盘里留下一点点肉眼难见的漂移；一具九十天没人伺候的马具，往好里说只是装饰，往坏里说会主动把人带偏。第三，马具 *可以没坏但已经错了*。一份编排漂亮、却编码着上个季度架构的 `AGENTS.md`，会让智能体面对一个早已不存在的世界，写出流畅而自信的错误代码——而且所有测试都通过，因为测试已经跟着一起漂移了。

```{admonition} 陷阱——"驾驭工程不过是又一套流程"
:class: warning

一种颇具诱惑力的误读是：把马具当成更厚的检查清单、更长的 `AGENTS.md`、或者更严苛的 CI。它不是。一份没有智能体去读、也没有钩子去执行的更厚清单，是 *纯粹的熵*：它制造一种"合规"的幻觉、让评审者疲劳，然后产出和没有这份清单时一模一样的幻觉代码。马具是一小组 *能机械地拒绝坏工作* 的制品——除此之外的一切，都是装饰。如果本季度你的马具变厚了，但智能体的 lint 违规率却没有下降，那你加上去的是流程，不是马具。第 09 章把这种失败模式命名为 *harness theatre（马具剧场）*。
```

## 本书写给谁

本书写给 **正在一线写代码的工程师**。如果你是团队负责人，本周已经是第 10 次审阅 AI 生成的合并请求；如果你是资深个人贡献者，一次次在同一个模型身上看到同一种 bug 模式；如果你是平台工程师，被要求搭建"AI 基础设施"，却没人说清楚那到底是什么；又或者你只是一位怀疑论者，想知道这个流行词背后是否真有一门可以讲清楚的学科——那么，这本书就是写给你的。

它 *不是* 一本提示词写作教程，不是模型厂商的对比综述，也不是前沿研究论文。它不会教你如何训练一个智能体。它教你的，是如何 **塑造智能体所处的那个世界**，让智能体的产出满足我们早已对人类工程师提出的三条标准：一段软件必须是 **可验证的**（我们能证明它正确）、**可观测的**（我们能看见它在生产环境里的行为）、以及 **可理解的**（我们能说清楚它为什么长这样）。

本书对你的期望，和那些以"前沿大模型"为卖点的书不一样。那类书希望你相信：下一个版本就会把这个季度的问题一笔勾销。本书恰恰相反——它希望你把这些问题视为 *结构性* 的，用工程里最老派的那套工具来解决它们：契约、关卡、可观测性，以及一套每周一次的复盘节奏。如果你曾经用"把规约写好 10 倍，再加一个 pre-commit 钩子"替换掉"换一个聪明 10 倍的模型"，然后亲眼看到同一个智能体产出显著更好的代码，那你已经懂了本书押的这个注。

这三条标准，我们称之为 **三大护法**，它们是我们有意从传统软件工程那里借过来的。Harness Engineering 并不是什么新发明——它是把三门由来已久的学科（SDD、TDD、MDD），从代码写完 *之后* 的被动补救，**主动前置** 到智能体敲下第一个字符 *之前*。第 07 章将对三大护法逐一展开。第 08 章则会说明：当三大护法与一个 harness 的四个区域——缰绳（Bridle）、护栏（Fence）、牧场（Paddock）、梳理（Groom）——纵横交织时，就得到了本书的分析骨架：一个由 12 个工程单元组成的 3 × 4 矩阵。

## 如何阅读本书

全书 12 章按六部分组织：

* **第一部分 · 为什么**——动机篇（第 01 章 前言），以及从 Prompt → Context → Skill → Harness 的四阶段演进（第 02 章）。
* **第二部分 · 是什么**——先给 Harness Engineering 下定义（第 03 章），再拆开 AI Agent 与 AI 编程工具的 loop、memory、tools、context、skill 与 controller（插章）。如果你只有 15 分钟，又需要对"这到底是个什么东西？"给出一个可以引用的答案，那么只读第 03 章就够了；如果你要动手设计马具，请接着读这篇插章。
* **第三部分 · 怎么做**——三大护法（第 07 章）、完整的 3 × 4 矩阵（第 08 章），以及让一个 harness 能够长期存活的日常运营议题——熵的治理、可观测性实践、审批关卡、元 harness 的演进（第 09 章，同时附带一条 Tauri-Todo 的动手演练线索）。
* **第四部分 · 样本**——五则案例研究：OpenHarness（第 10 章）、Superpowers（第 11 章）、lazy-scrum-team（第 12 章）、借由张汉东 《马书》 的视角审视 Claude Code（第 13 章），以及托管本书的这个仓库本身（第 15 章）——一出四幕的完整演练：先审视本仓库，点出它的短板，再把真实的 harness 修复提交到 ``main`` 分支上，最后度量改进前后的差距。
* **第五部分 · 结论**——一页纸的核心论点回顾，外加一份可以在合上本书的那一周就开始执行的 30/60/90 天行动清单（第 16 章）。
* **第六部分 · 参考资料**——五篇字母编号的附录（A FAQ、B 术语表、C 推荐阅读、D HarnessCard 模板、E ``CLAUDE.md`` 兼容样板），一个由本书 BibTeX 源文件自动生成的集中参考文献页，以及一份记录本书构建方式的版权页（Colophon）。

从第 02 章起，每一章都遵循 **双轨骨架**：``## 研究脉络`` 把本章的论点扎根于前人工作之上（3 到 7 条带引用的要点，每条都附上一句作者自己的总结）；``## 动手环节`` 则至少交付一件可以直接运行的工件（一个 pre-commit 钩子、一段 ``AGENTS.md`` 片段、一份 HarnessCard、或是一张可以直接拷走的 Mermaid 图）。这份双轨契约由 ``make book-lint`` 强制执行。如果某一章的理论太单薄，你会发现；如果它的实践是空架子，linter 也会发现。

## 关于定义的一则说明，以及关于分析框架的一则说明

有两章值得在前言里特别指出来，先提个醒。

**第 03 章负责回答"Harness Engineering 到底是什么"。** 如果你怀疑它根本算不上一门自洽的学科，那就从这一章开始读。该章给出一个一句话的定义、一条把 harness 与运行时推理栈区分开的操作性边界、一张把它与四个相邻实践并排对比的表格，以及一个 30 行、单人开发者一下午就能跑起来的最小示例。这一章要证明的，是 Harness Engineering 属于 *结构性* 概念，而不是 *规模性* 概念——它既不需要一支大团队，也不需要一笔云开销预算。

**第 08 章对自己采用的分析框架开诚布公。** 全书使用的 Bridle（缰绳）／Fence（护栏）／Paddock（牧场）／Groom（梳理）这套词汇，是作者在 2026-03-28 那篇博客里提出的从业者框架，并不是同行评议过的学术分类。第 08 章开头专门设了一节 Provenance（源流），点名三个相邻的同类框架：一是 *Harness Engineering for Language Agents* 立场论文里提出的 CAR（Control／Agency／Runtime）三层分解与配套的 HarnessCard 披露格式；二是 Thoughtworks 的三段式划分；三是 LangChain 的五段式 harness 解剖——并说明为什么在这些可选项之外，本书仍然选择三护法 × 四区域这个矩阵。我们认为这个选择有它的教学价值，同时也认为把理由说清楚的成本并不高。

## 关于《马书》

张汉东的 *《驾驭工程：从 Claude Code 源码到 AI 编程》*——中文读者习惯称之为《马书》——在本书大纲尚未定稿时就已经出版。它是对一个成熟闭源 harness 进行纵深式解剖的范本，本书并不打算在那个维度上与之竞争。本书走的是横向路线：跨 harness 的方法论。在这个框架里，Claude Code 只是五则案例之一，要与 OpenHarness、Superpowers、lazy-scrum-team 和 Lazy AI Coder 并排阅读。第 13 章从三大护法的视角穿越 Claude Code，开篇附有一份逆向工程免责声明，指明《马书》是其主要的一手材料，并承诺：如果日后任何官方披露与本书结论相冲突，相关论断立即撤回。这两本书是彼此的同伴，而不是对手。

## 两颗种子

本书的论点来自两篇早先的博客。第一篇是 *《从 Prompt Engineering 到 Harness Engineering》*（2026-03-28），它首次给出了我们今天所说的缰绳／护栏／牧场／梳理这个四区域比喻。第二篇是 *《AI 辅助编程的三大护法：可验证性、可观测性、可理解性》*（2026-01-30），它首次提出了三大护法这一说法。读者不必先读过这两篇博客。如果你只想要 30 分钟的热身，而不想投入 200 页的承诺，那就读这两篇；如果你想要的是一份带引用、带动手工件、带案例研究的正式论述，请翻到下一页。

让我们开始吧。
