乐于分享
好东西不私藏

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

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. 1. Context engineering(上下文工程):持续增强的代码库知识库,以及代理对动态上下文(如可观测性数据和浏览器导航)的访问能力
  2. 2. Architectural constraints(架构约束):不仅由基于 LLM 的代理监控,还包括确定性的自定义代码检查器和结构测试
  3. 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. 1. 黄金原则(Golden Principles):将人类的品味标准编码为机械规则,例如:
  • • 优先使用共享的实用程序包,而不是手工编写的辅助工具
  • • 不使用 “YOLO 式” 探测数据 —— 必须验证边界或依赖类型化的 SDK
  1. 1. 定期扫描和修复:后台 Codex 任务定期运行,扫描偏差、更新质量等级,并发起有针对性的重构 Pull Request。这些 PR 大多数可以在一分钟内完成审查并自动合并。
  2. 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)
定义边界,让 Agent 知道什么能做、什么不能做
分层设计(架构→代码→安全→业务)清晰可验证适度不过度可进化
项目模板、Linter、静态扫描、自定义验证
反馈回路(Feedback Loops)
验证结果,让 Agent 知道输出是否正确
三层结构(即时→功能→深度)快速失败清晰具体可行动
语法检查、单元测试、端到端测试、性能测试
控制平面(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 个月,这表明这需要持续的努力”。

分阶段实施策略

阶段
时间周期
核心任务
关键交付物
第一阶段:起步探索
1-2 周
建立 AGENTS.md记录 Agent 错误识别约束需求
AGENTS.md 文件错误日志约束清单
第二阶段:基础建设
2-4 周
创建自定义 Linter实施架构约束建立反馈回路
自动化检查工具架构规则集CI/CD 流程
第三阶段:能力提升
1-2 个月
实现上下文工程部署 GC 机制优化控制平面
结构化知识库自动化清理流程监控仪表盘
第四阶段:持续优化
长期
定期审视 Harness精简规则拥抱 “可撕裂” 原则
优化的 Harness最佳实践文档改进流程

Böckeler 建议的具体行动包括:

  1. 1. 起步阶段:把同一个任务做两遍,先手动完成,再让 Agent 重新做一遍,建立对 Agent 能力边界的直觉
  2. 2. 上下文管理:维护 AGENTS.md 目录结构,建立 docs / 下的架构规范与设计文档
  3. 3. 工具建设:编写自定义 Linter(错误消息要对 Agent 可读且包含修复建议),建立可观测性基础设施
  4. 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. 1. 范式转变已成现实:从 “人类写代码” 到 “人类设计环境,AI 生成代码” 的转变不再是科幻,而是正在发生的现实。OpenAI 的百万行代码实验证明了这一模式的可行性。
  2. 2. Harness 是新的竞争壁垒:未来的软件开发竞争,不再仅仅是代码质量和开发速度的竞争,更是 Harness 设计能力的竞争。优秀的 Harness 可以将开发效率提升 10 倍甚至更多。
  3. 3. 工程师角色的根本性重塑:软件工程师正在从 “码农” 转变为 “系统设计师” 和 “AI 协作者”。这种转变不是威胁,而是机遇 —— 它释放了人类的创造力,让我们专注于更高价值的工作。
  4. 4. 技术栈的收敛趋势:AI 的普及将推动技术栈的收敛,”AI 友好性” 将成为技术选型的重要标准。这既是挑战,也是简化开发复杂性的机遇。
  5. 5. 持续演进的必要性:Harness Engineering 不是一次性的工程,而是需要持续优化的活系统。成功的关键在于建立迭代改进的机制。

对不同群体的建议

  • • 技术领导者:立即开始 Harness Engineering 的战略规划,培养相关能力,抢占 AI 时代的先机
  • • 软件工程师:主动学习 Harness 设计理念,提升系统思维和抽象能力,为角色转型做好准备
  • • 企业决策者:将 Harness Engineering 纳入数字化转型战略,投资相关工具和人才,避免在未来竞争中落后
  • • 教育工作者:更新课程体系,将 Harness Engineering 纳入软件工程教育,培养面向未来的技术人才

Böckeler 在文章结尾写道:”最后,我喜欢这个领域的一个术语。虽然它只有 2 周大 —— 我可能要屏住呼吸直到有人称他们的单提示、基于 LLM 的代码审查代理为 Harness……” 这种幽默的表达背后,是对一个新时代的期待和信心。

Harness Engineering 代表的不仅是一种新的技术方法,更是一种新的思维方式。它要求我们重新思考软件是什么、如何构建软件、以及软件工程师的价值何在。这是一场深刻的变革,但也是一个充满机遇的时代。

正如文章所揭示的,真正的挑战不是 AI 会不会取代程序员,而是我们能否拥抱变化,成为 AI 时代的 “系统设计师” 和 “价值创造者”。那些能够掌握 Harness Engineering 精髓的个人和组织,将在未来的技术竞争中占据有利位置。而那些固步自封的人,则可能被时代的浪潮所淘汰。

让我们以开放的心态迎接这个变革的时代,共同探索 Harness Engineering 的无限可能,创造更加美好的软件未来。