AI时代的软件工程新范式:《Harness Engineering》解读

引言:AI 时代的软件工程新范式
2026 年 2 月,软件开发领域迎来了一个震撼性的概念 ——Harness Engineering(驾驭工程)。OpenAI 在其官方博客上发布了一篇题为《Harness engineering: leveraging Codex in an agent-first world》的文章,描述了一个看似不可能的实验:一个 3 人团队用 5 个月时间,构建了一个拥有百万行代码的生产级产品,而其中没有一行代码是人工编写的。这一突破性实践立即在全球技术社区引发了激烈讨论。
作为软件开发领域的思想领袖,Martin Fowler在其官方网站上发表了由Birgitta Böckeler撰写的深度分析文章,对这一新兴工程范式进行了系统解读。这篇文章不仅是对 OpenAI 实验的专业评析,更是对整个软件工程行业未来发展方向的前瞻性思考。本文将从作者背景出发,深入解读这篇具有里程碑意义的技术文章,探讨 Harness Engineering 如何重新定义软件开发的本质。
一、作者背景:两位技术巨匠的智慧碰撞
1.1 Martin Fowler:软件开发领域的 “教父”
Martin Fowler(1963 年 12 月 18 日出生)是当今世界软件开发领域最具影响力的人物之一,被誉为软件开发的 “教父”。作为 ThoughtWorks 公司的首席科学家,他在过去四十年的职业生涯中,深刻影响了整个软件工程行业的发展轨迹。
Fowler 的主要贡献涵盖了软件开发的多个关键领域。他是敏捷软件开发方法的早期开拓者和敏捷宣言的创始人之一,这一革命性的方法论彻底改变了软件项目的管理方式。在技术层面,他是面向对象分析设计、UML(统一建模语言)、设计模式等领域的权威专家。特别是他在 1999 年出版的经典著作《重构》(Refactoring),不仅普及了代码重构的实践,更成为了每个程序员案头必备的参考书。
Fowler 的影响力还体现在他对新兴技术趋势的敏锐洞察上。近年来,他积极关注人工智能对软件工程的影响,提出了许多前瞻性的观点。正如他在一次深度访谈中所说:”大模型把非确定性引入了软件开发的核心路径,这是历史性的第一次”。这种对技术变革本质的深刻理解,使他成为解读 Harness Engineering 这一新兴概念的最佳人选。
1.2 Birgitta Böckeler:AI-first 时代的技术先锋
Birgitta Böckeler是 ThoughtWorks 的杰出工程师(Distinguished Engineer),现任AI-first 软件交付全球负责人。她在软件开发领域拥有超过 15 年的丰富经验,专注于大型定制化网站的全栈开发。作为一位充满激情的软件开发者、架构师和技术领导者,她致力于帮助团队和组织分解复杂性,寻找看待系统的新视角。
Böckeler 在 AI 辅助软件开发领域的专业深度令人瞩目。过去两年,她全职投入研究 AI 工具在软件工程中的应用,特别关注如何将这些工具整合到软件交付流程中。她的研究涵盖了从 AI 代理协作的心智模型到团队效能影响的广泛领域。
在技术社区中,Böckeler 以其对架构培养与治理、结对编程作为高绩效团队催化剂,以及技术行业多元化等主题的深入见解而闻名。她定期在各种技术会议上演讲,并在 Martin Fowler 网站上发表多篇具有影响力的文章,包括与 Nina Siessegger 合著的关于结对编程的深度分析。
值得注意的是,Böckeler 与 Martin Fowler 有着密切的合作关系。他们不仅同为 ThoughtWorks 的同事,还经常在各种技术主题上进行深度对话。例如,他们曾共同探讨 Conway’s Law 在现代软件开发中的意义。这种深厚的合作基础,使 Böckeler 成为在 Martin Fowler 网站上解读 Harness Engineering 的理想作者。
二、Harness Engineering 文章深度解读
2.1 文章概述与核心观点
Martin Fowler 网站上的《Harness Engineering》一文发表于2026 年 2 月 17 日,是对 OpenAI 最新技术文章的深度评析。文章开篇即指出了一个有趣的细节:OpenAI 的原文标题虽然提到了 “Harness engineering”,但在正文中却只提到了一次 “harness”,暗示这一术语可能是后来才确定的。
Böckeler 在文章中首先梳理了 OpenAI 提出的Harness 组件的三大类别:
-
1. Context engineering(上下文工程):持续增强的代码库知识库,以及代理对动态上下文(如可观测性数据和浏览器导航)的访问能力 -
2. Architectural constraints(架构约束):不仅由基于 LLM 的代理监控,还包括确定性的自定义代码检查器和结构测试 -
3. “Garbage collection”(垃圾收集):定期运行的代理,用于发现文档不一致或架构约束违规,对抗熵增和系统衰退
文章的核心观点是:Harness Engineering 代表了 AI 时代软件工程的范式转变。正如 Böckeler 所指出的,OpenAI 团队的实验表明,构建软件仍然需要纪律,但这种纪律更多地体现在支撑结构上,而不是代码上。这一观点颠覆了传统的 “代码即纪律” 的认知,提出了 “环境即纪律” 的新理念。
2.2 核心概念解析
2.2.1 Harness 的本质:从马具到控制系统
“Harness” 一词的本义是马具,包括缰绳、马鞍、嚼子等整套用来驾驭马匹的装备。Böckeler 巧妙地运用了这一隐喻:
-
• 马代表 AI 模型(强大、快速,但自己不知道往哪走) -
• 骑手代表人类工程师(提供方向,不亲自跑) -
• Harness代表控制系统(连接模型和目标的桥梁)
在技术层面,Harness 被定义为围绕 LLM 的一切代码、配置和执行逻辑,包括状态管理、工具调度、反馈回路、验证机制、上下文压缩等。它不是一个单一的工具或组件,而是一个完整的工程体系。
2.2.2 Context Engineering:让 AI”看见” 和 “理解”
上下文工程是 Harness Engineering 的基础支柱之一。OpenAI 的实践表明,他们在代码仓库中散布了88 个 AGENTS.md 文件作为 “导航地图”。Böckeler 特别强调了一个关键原则:给 Agent 一张地图,而不是一本百科全书。
这一原则的背后有着深刻的技术洞察。Böckeler 解释道,当团队尝试使用一个巨大的 AGENTS.md 文件时,实验失败了,原因包括:
-
• 上下文是稀缺资源 —— 巨大的指令文件会挤掉任务、代码和相关文档的空间 -
• 当一切都 “重要” 时,一切都不重要了 ——Agent 最终只会进行局部模式匹配 -
• 它会立即腐烂 —— 人类无法持续维护如此庞大的文档
正确的做法是采用 渐进式披露(progressive disclosure) 策略:AGENTS.md 保持在约 100 行,作为目录指向结构化的知识库。这种设计让 Agent 从小而稳定的切入点开始,被指导下一步该去哪里查看,而不是一开始就被大量信息淹没。
2.2.3 Architectural Constraints:用机器守护架构边界
架构约束是确保大规模 AI 生成代码可维护性的关键。OpenAI 实施了严格的分层架构规则:
Types → Config → Repo → Service → Runtime → UI
在每个业务领域内,代码只能 “向前” 依赖于这组固定的层。横切关注点(认证、连接器、遥测、功能标志)通过一个单一的显式接口 Providers 进入,其他任何依赖路径都被禁止,并通过自动化方式强制执行。
Böckeler 特别指出,这种通常要等到拥有数百名工程师时才会实施的架构,对于编码智能体来说是早期的先决条件。有了约束,速度才不会下降,架构才不会漂移。
这些约束通过多种方式实现:
-
• 自定义代码检查器(linter):由 Codex 自己生成,用于静态强制执行各种规则 -
• 结构测试:验证代码库是否符合预设的架构模式 -
• 品味不变式(taste invariants):包括结构化日志记录、命名约定、文件大小限制等
更重要的是,这些自定义 linter 的错误消息中嵌入了修复指令,让 Agent 读到报错就知道如何修改。Böckeler 形象地说,在人类工作流中,这些规则可能显得吹毛求疵;但对 Agent 来说,它们是乘数 —— 编码一次,全局生效。
2.2.4 “Garbage Collection”:对抗系统熵增的持续战斗
“垃圾收集” 机制是 OpenAI 应对 AI 生成代码熵增问题的创新解决方案。Böckeler 解释道,Agent 会复现代码仓库中已存在的所有模式 —— 甚至包括那些不均衡或不够理想的模式。随着时间的推移,这不可避免地导致系统漂移。
OpenAI 团队最初每周五要花费20% 的时间(约一个工作日)来清理 “AI 残渣”,但这种方式显然不具备可扩展性。于是他们开发了自动化的垃圾收集机制:
-
1. 黄金原则(Golden Principles):将人类的品味标准编码为机械规则,例如:
-
• 优先使用共享的实用程序包,而不是手工编写的辅助工具 -
• 不使用 “YOLO 式” 探测数据 —— 必须验证边界或依赖类型化的 SDK
-
1. 定期扫描和修复:后台 Codex 任务定期运行,扫描偏差、更新质量等级,并发起有针对性的重构 Pull Request。这些 PR 大多数可以在一分钟内完成审查并自动合并。 -
2. 持续改进循环:系统像垃圾回收一样持续运行,小增量清理,让代码库保持自我清洁。技术债务被视为高息贷款 —— 持续小额偿还比让债务累积后痛苦地一次解决要好得多。
2.3 实践案例:OpenAI 的百万行代码实验
Böckeler 在文章中详细分析了 OpenAI 的实验过程和成果。这个实验的规则极其严格:
-
• 零手写代码:所有代码必须由 Codex 编写,包括应用逻辑、测试、CI 配置、文档、内部工具、生产看板定义 -
• 真实产品:拥有内部日常活跃用户和外部 Alpha 测试者 -
• 团队规模:起初 3 名工程师,后来扩展到 7 名 -
• 时间周期:5 个月(2025 年 8 月至 2026 年 1 月)
实验的成果令人震撼:
-
• 代码量:约 100 万行 -
• Pull Request 数量:1,500+ -
• 人均日 PR:3.5 个(且随团队增长还在加速) -
• 效率提升:预估比手写快 10 倍 -
• 单次 Agent 运行时长:最长 6 + 小时(人类睡觉时仍在运行)
Böckeler 特别强调了几个关键发现:
1. 人类角色的根本转变
工程师的主要工作不再是写代码,而是:
-
• 设计环境、表达意图、构建反馈循环 -
• 当任务失败时,分析 “Agent 缺少什么能力” 并补上 -
• 将代码审查标准编码成自动 lint -
• 维护 Agent 可读的知识库
2. Agent 的自主验证能力
Codex 通过Chrome DevTools Protocol直接驱动应用,可以:
-
• 启动应用实例(每个任务一个独立的 git worktree) -
• 截图、检查 DOM、操作页面元素 -
• 复现 bug 并录制视频 -
• 实现修复后再录制一个视频 -
• 对比两个视频验证修复效果
3. 完整的可观测性支持
每个 worktree 都有独立的可观测性栈(日志 + 指标 + 追踪),任务完成后自动销毁。Agent 可以使用 LogQL 查询日志,使用 PromQL 查询指标。这使得类似 “确保服务启动在 800ms 内完成” 或 “这四个关键用户旅程中的任何跨度都不得超过两秒” 这样的提示变得可执行。
2.4 未来展望:Harness 作为新的服务模板
Böckeler 在文章结尾提出了一个极具前瞻性的观点:Harness 可能成为未来的服务模板。她写道:”大多数组织只有两到三个主要技术栈 —— 不是每个应用都是独特的雪花。这篇文章让我想象未来团队可以从一组针对常见应用拓扑的 Harness 中进行选择来开始项目”。
这个想法的革命性在于:
-
• Harness 将包含自定义 linter、结构测试、基本上下文和知识文档,以及额外的上下文提供器 -
• 团队可以将其作为起点,然后根据应用的具体需求逐步调整 -
• 这类似于今天的服务模板,帮助团队在 “黄金路径” 上实例化新服务
然而,Böckeler 也指出了潜在的挑战。就像服务模板一样,团队在获得经验后会贡献回模板,但其他团队往往难以整合更新。Harness 是否会面临类似的分支和同步挑战?这个问题值得深思。
三、Harness Engineering 的技术内涵与创新
3.1 与传统软件工程的根本差异
Böckeler 在分析中明确指出,虽然 Harness Engineering 借鉴了大量传统软件工程的概念(模块化设计、状态管理、输入输出处理、测试等),但存在一个根本性差异:传统组件对相同输入产生相同输出,而 AI 驱动的组件具有不确定性。
这种不确定性带来了新的工程挑战和机遇:
-
• 确定性与灵活性的权衡:为了实现可维护的、可信赖的大规模 AI 生成代码,必须约束解空间,采用特定的架构模式、强制边界和标准化结构。这意味着放弃一些 “生成任何内容” 的灵活性,换取提示、规则和充满技术细节的 Harness -
• 角色的根本转变:人类工程师从 “实现者” 转变为 “环境设计者”,不再直接解决问题,而是构建一个让 AI 代理能够自主、可靠解决问题的系统 -
• 纪律的体现形式:”做软件还是需要纪律,但纪律现在体现在脚手架上而不是代码本身”
3.2 三大核心支柱的协同机制
Böckeler 将 Harness Engineering 的技术架构归纳为三大核心支柱,它们相互支撑,共同构成了完整的控制系统:
|
|
|
|
|
|---|---|---|---|
| 约束机制(Constraints) |
|
|
|
| 反馈回路(Feedback Loops) |
|
|
|
| 控制平面(Control Plane) |
|
|
|
这三大支柱形成了一个闭环系统:约束→执行→反馈→优化→新的约束。控制平面是大脑,约束和反馈是双手,共同驾驭 Agent 完成复杂任务。
3.3 技术栈选择的新逻辑
Böckeler 在分析中提出了一个颠覆性的观点:AI 可能推动我们走向更少的技术栈。她写道:”随着编码变得不再是打字,而更多是引导代码生成,AI 可能推动我们走向更少的技术栈。框架和 SDK 的可用性仍然重要 —— 我们反复看到对人类好的东西对 AI 也好。但在那个细节层面,开发者的品味影响会更小”。
这种变化的驱动力包括:
-
• “无聊” 技术的胜利:可组合、API 稳定、在训练集中大量存在的技术往往更容易被 AI 建模。Böckeler 提到,有时让 Agent 重新实现部分功能子集比绕过公共库中不透明的上游行为更便宜 -
• AI 友好性优先:团队可能会选择具有良好 Harness 支持的技术栈,并优先考虑 “AI 友好性” -
• 架构模式的收敛:不仅技术栈会收敛,代码库结构和拓扑也可能收敛。团队可能默认采用更容易用 AI 维护的结构,因为它们更容易被 Harness 管理
四、行业影响与发展趋势
4.1 从实验到规模化应用
Böckeler 的分析揭示了 Harness Engineering 从实验走向规模化应用的趋势。OpenAI 的实验虽然极端(零手写代码),但它证明了一个重要事实:当正确的 Harness 就位时,AI 可以实现前所未有的开发效率。
其他公司的实践也印证了这一趋势:
-
• Stripe Minion:工程师在 Slack 里用自然语言描述任务,Minion 就会在隔离环境中自动完成编码、测试、提交 PR,整个过程无需人工介入 -
• 腾讯云 ADP 平台:覆盖传媒、医疗、零售等重点行业,超 50% 头部媒体在腾讯云搭建 Agent 工作台。广东广播电视台基于 ADP 打造 AI 内容中台,在全运会期间 AI 辅助生产百余条爆款内容,内容生产效率提升 40% -
• 龙湖集团:全量使用 CodeBuddy,AI 辅助产出占比达 43%,中等复杂编码任务时长平均缩短 34%
4.2 对软件工程职业的深远影响
Böckeler 的分析触及了一个敏感而重要的话题:Harness Engineering 对软件工程师角色的根本性重塑。她引用的研究数据显示,工程师不写代码后,80% 的时间花在了构建 Harness上 —— 那套让 AI 能够自主、可靠、可持续工作的基础设施。
这种转变体现在多个层面:
1. 角色定位的转变
-
• 从 “写代码的人” 变成 “设计笼子的人” -
• 从 “砖瓦匠” 升级为 “城市规划师” -
• 从 “实现者” 转变为 “环境设计者”
2. 能力要求的升级
Böckeler 指出,未来的工程师需要:
-
• 更强的抽象能力和系统思维 -
• 从 “怎么做” 转向 “做什么” 的思维转变 -
• 从 “看 diff” 到 “看系统信号” 的观察能力
3. 新职业机会的涌现
Harness Engineering 催生了一系列新岗位:
-
• AI 系统管控师 -
• AI 运维工程师 -
• AI 可信专家 -
• AI 工程化顾问 -
• AI 应用工程师(市场需求旺盛,2.5 个岗位抢 1 个人,缺口超 120 万)
4.3 技术演进的未来方向
Böckeler 在文章中对 Harness Engineering 的未来发展提出了多个前瞻性观点:
1. Harness 标准化趋势
她预测 Harness 将成为新的服务模板。”未来企业会直接选用预制的 Harness 模板,像现在的 CI/CD 模板一样普及”。这种标准化将带来:
-
• 降低 AI 开发的入门门槛 -
• 提高团队间的协作效率 -
• 加速最佳实践的传播
2. 技术栈的收敛
“技术栈选择标准将变为 ‘AI 友好性 ‘ 和’Harness 支撑度 ‘”。这意味着:
-
• 流行框架和库将更加注重 AI 可预测性 -
• 新的技术评估维度将出现 -
• 开发工具链将围绕 Harness 进行设计
3. 学科化发展
Böckeler 观察到,Harness Engineering 正在从行业热词转变为正式的工程学科,”已有专门的学术赛道和论文”。这表明:
-
• 大学将开设相关课程 -
• 专业认证体系将建立 -
• 标准化的方法论将形成
4. 与其他技术的融合
文章暗示了 Harness Engineering 与其他前沿技术的潜在融合:
-
• 与多智能体系统的结合 -
• 与边缘计算的协同 -
• 与量子计算的未来集成
五、实践建议与行动指南
5.1 实施路径建议
基于 Böckeler 的分析,Harness Engineering 的实施应该遵循渐进式路径。她特别强调:”这不是你可以快速上手获得快速结果的事情。这个团队在他们的 Harness 上工作了 5 个月,这表明这需要持续的努力”。
分阶段实施策略:
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Böckeler 建议的具体行动包括:
-
1. 起步阶段:把同一个任务做两遍,先手动完成,再让 Agent 重新做一遍,建立对 Agent 能力边界的直觉 -
2. 上下文管理:维护 AGENTS.md 目录结构,建立 docs / 下的架构规范与设计文档 -
3. 工具建设:编写自定义 Linter(错误消息要对 Agent 可读且包含修复建议),建立可观测性基础设施 -
4. 持续改进:随着模型能力提升,周期性审视并精简 Harness,避免过度工程
5.2 团队转型建议
Böckeler 的分析揭示了团队转型的关键成功因素:
1. 角色重新定义
-
• 传统开发者→AI 系统设计师:设计让 Agent 能写出好代码的环境 -
• 传统测试工程师→质量体系架构师:把测试标准编码成自动验证 -
• 传统架构师→Harness 架构师:定义和维护高层次约束 -
• 传统项目经理→价值流设计师:专注于业务价值交付
2. 能力建设重点
-
• 系统思维:理解复杂系统的涌现行为 -
• 抽象能力:能够定义高层次规则和模式 -
• 领域知识:深入理解业务领域,将其转化为 AI 可理解的规则 -
• 实验精神:接受迭代和试错,快速从失败中学习
3. 组织文化变革
Böckeler 的分析暗示了组织文化需要的转变:
-
• 从 “代码即价值” 到 “环境即价值” -
• 从 “个人英雄” 到 “系统思维” -
• 从 “完美主义” 到 “快速迭代” -
• 从 “风险规避” 到 “可控实验”
5.3 技术选型考量
基于文章分析,技术选型应该考虑以下因素:
1. “AI 友好性” 评估
Böckeler 提到的评估维度:
-
• 技术在训练集中的出现频率 -
• API 的可预测性和稳定性 -
• 文档的结构化程度 -
• 社区活跃度(影响训练数据质量)
2. Harness 支持度
需要评估的方面:
-
• 是否有现成的 Harness 模板 -
• 工具链的可扩展性 -
• 与监控系统的集成能力 -
• 自动化测试的支持程度
3. 长期演进考虑
Böckeler 暗示的长期因素:
-
• 技术的标准化趋势 -
• 与新兴技术的兼容性 -
• 人才市场的可获得性 -
• 成本效益比
结语:拥抱 AI 时代的工程革命
Martin Fowler 网站上 Birgitta Böckeler 撰写的《Harness Engineering》一文,不仅是对 OpenAI 技术实验的专业解读,更是对整个软件工程行业未来发展的深刻洞察。文章通过系统分析 Harness Engineering 的核心概念、技术内涵和实践案例,为我们描绘了一幅 AI 时代软件工程的新图景。
核心洞察总结:
-
1. 范式转变已成现实:从 “人类写代码” 到 “人类设计环境,AI 生成代码” 的转变不再是科幻,而是正在发生的现实。OpenAI 的百万行代码实验证明了这一模式的可行性。 -
2. Harness 是新的竞争壁垒:未来的软件开发竞争,不再仅仅是代码质量和开发速度的竞争,更是 Harness 设计能力的竞争。优秀的 Harness 可以将开发效率提升 10 倍甚至更多。 -
3. 工程师角色的根本性重塑:软件工程师正在从 “码农” 转变为 “系统设计师” 和 “AI 协作者”。这种转变不是威胁,而是机遇 —— 它释放了人类的创造力,让我们专注于更高价值的工作。 -
4. 技术栈的收敛趋势:AI 的普及将推动技术栈的收敛,”AI 友好性” 将成为技术选型的重要标准。这既是挑战,也是简化开发复杂性的机遇。 -
5. 持续演进的必要性:Harness Engineering 不是一次性的工程,而是需要持续优化的活系统。成功的关键在于建立迭代改进的机制。
对不同群体的建议:
-
• 技术领导者:立即开始 Harness Engineering 的战略规划,培养相关能力,抢占 AI 时代的先机 -
• 软件工程师:主动学习 Harness 设计理念,提升系统思维和抽象能力,为角色转型做好准备 -
• 企业决策者:将 Harness Engineering 纳入数字化转型战略,投资相关工具和人才,避免在未来竞争中落后 -
• 教育工作者:更新课程体系,将 Harness Engineering 纳入软件工程教育,培养面向未来的技术人才
Böckeler 在文章结尾写道:”最后,我喜欢这个领域的一个术语。虽然它只有 2 周大 —— 我可能要屏住呼吸直到有人称他们的单提示、基于 LLM 的代码审查代理为 Harness……” 这种幽默的表达背后,是对一个新时代的期待和信心。
Harness Engineering 代表的不仅是一种新的技术方法,更是一种新的思维方式。它要求我们重新思考软件是什么、如何构建软件、以及软件工程师的价值何在。这是一场深刻的变革,但也是一个充满机遇的时代。
正如文章所揭示的,真正的挑战不是 AI 会不会取代程序员,而是我们能否拥抱变化,成为 AI 时代的 “系统设计师” 和 “价值创造者”。那些能够掌握 Harness Engineering 精髓的个人和组织,将在未来的技术竞争中占据有利位置。而那些固步自封的人,则可能被时代的浪潮所淘汰。
让我们以开放的心态迎接这个变革的时代,共同探索 Harness Engineering 的无限可能,创造更加美好的软件未来。
夜雨聆风