四、什么是 Harness Engineering?当人类从写代码转向设计 Agent 的工作环境》

4 阅读1分钟

一、引言:一个根本性的问题

2025年,当 OpenAI 的 Codex 能够独立完成编程任务,当 Cursor 的 AI 可以自主修改代码库,一个根本性的问题浮现出来:

如果 AI 能写代码,软件工程师还有什么价值?

OpenAI 的 Harness 团队给出了一个令人深思的答案:

工程师的价值不在于写代码,而在于设计让 AI 能够高效、可靠、可持续工作的环境。

这就是 Harness Engineering(驾驭工程) 的核心理念。

二、Harness Engineering 的定义与本质

2.1 什么是 Harness?

"Harness"一词的本意是马具——用来驾驭和控制马匹的工具。它包含:

  • 缰绳:引导方向
  • 马鞍:提供支撑
  • 马镫:稳定平衡
  • 束缚带:安全约束

在 Harness Engineering 中,Harness 是人类为 AI Agent 设计的工作环境、约束条件和控制系统

2.2 Harness Engineering 的定义

Harness Engineering 是一门设计和构建 AI Agent 工作环境的工程学科。它通过定义约束机制、建立反馈回路、构建控制平面,让 AI Agent 能够自主、可靠、可持续地完成任务。

2.3 核心理念:Agent-First

┌─────────────────────────────────────────────────────────┐
│                 从 Human-First 到 Agent-First            │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   Human-First(传统)        Agent-First(Harness)       │
│   ┌─────────────────┐        ┌─────────────────┐       │
│   │                 │        │                 │       │
│   │   人类工程师     │        │   人类工程师     │       │
│   │   ┌─────────┐   │        │   ┌─────────┐   │       │
│   │   │ 写代码   │   │        │   │ 设计环境 │   │       │
│   │   │ 调试程序 │   │   →    │   │ 定义约束 │   │       │
│   │   │ Code Review│  │        │   │ 监控系统 │   │       │
│   │   └─────────┘   │        │   └─────────┘   │       │
│   │        ↓        │        │        ↓        │       │
│   │   ┌─────────┐   │        │   ┌─────────┐   │       │
│   │   │ AI 辅助  │   │        │   │ AI Agent │   │       │
│   │   │ (Copilot)│   │        │   │ (Codex)  │   │       │
│   │   └─────────┘   │        │   └─────────┘   │       │
│   │                 │        │                 │       │
│   └─────────────────┘        └─────────────────┘       │
│                                                         │
│   人类是代码生产者            人类是环境设计师             │
│   AI 是辅助工具              AI 是代码生产者              │
│                                                         │
└─────────────────────────────────────────────────────────┘

三、为什么需要 Harness Engineering?

3.1 AI Agent 编程的现实挑战

当 AI Agent 开始承担主要编码工作时,我们面临一系列新挑战:

挑战

具体表现

Harness 的解决

不可控性

Agent 可能生成不符合预期的代码

通过约束机制限制行为边界

不一致性

不同任务生成的代码风格迥异

通过规范确保一致性

质量波动

代码质量时好时坏

通过反馈回路持续改进

长时运行

复杂任务需要长时间执行

通过持久化机制保证可靠性

错误处理

Agent 可能陷入死循环或错误

通过监控和干预机制兜底

3.2 传统方法的局限

Prompt EngineeringContext Engineering 解决了"如何让 AI 听懂"和"如何让 AI 有更多知识"的问题,但它们都假设:

人类是主导者,AI 是响应者。

而在 Harness Engineering 中,假设是:

AI 是执行者,人类是环境设计师。

这是根本性的范式转变。

四、Harness Engineering 的核心组件

4.1 四大核心组件

┌─────────────────────────────────────────────────────────┐
│           Harness Engineering 四大核心组件               │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  1. 约束机制 (Constraints)                       │   │
│  │                                                 │   │
│  │  作用:定义 Agent 能做什么、不能做什么             │   │
│  │                                                 │   │
│  │  • 架构约束:项目结构、模块划分、接口规范          │   │
│  │  • 代码规范:编码风格、命名约定、注释标准          │   │
│  │  • 安全约束:禁止的操作、敏感数据处理规则          │   │
│  │  • 资源约束:计算资源、时间限制、成本控制          │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  2. 反馈回路 (Feedback Loops)                    │   │
│  │                                                 │   │
│  │  作用:让 Agent 知道自己的输出是否正确           │   │
│  │                                                 │   │
│  │  • 自动化测试:单元测试、集成测试、端到端测试      │   │
│  │  • 静态分析:代码质量检查、安全扫描、性能分析      │   │
│  │  • 运行时监控:日志收集、指标采集、异常检测        │   │
│  │  • 结果验证:输出格式检查、业务逻辑验证            │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  3. 控制平面 (Control Plane)                     │   │
│  │                                                 │   │
│  │  作用:管理和监控 Agent 的执行                   │   │
│  │                                                 │   │
│  │  • 任务调度:优先级管理、资源分配、并发控制        │   │
│  │  • 状态管理:执行状态跟踪、断点续传、故障恢复      │   │
│  │  • 监控告警:实时监控、异常告警、性能分析          │   │
│  │  • 人机接口:人工介入触发、审批流程、手动覆盖      │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  4. 持久执行 (Durable Execution)                 │   │
│  │                                                 │   │
│  │  作用:支持 Agent 长时间可靠运行                 │   │
│  │                                                 │   │
│  │  • 状态持久化:定期保存执行状态                  │   │
│  │  • 故障恢复:中断后自动恢复继续执行              │   │
│  │  • 超时处理:长时间任务的优雅处理                │   │
│  │  • 资源释放:任务完成后资源清理                  │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
└─────────────────────────────────────────────────────────┘

4.2 组件之间的关系

┌─────────────────────────────────────────────────────────┐
│              Harness 组件协作关系                        │
├─────────────────────────────────────────────────────────┤
│                                                         │
│                    ┌─────────────┐                     │
│                    │   控制平面    │                     │
│                    │  (Control)   │                     │
│                    └──────┬──────┘                     │
│                           │                            │
│           ┌───────────────┼───────────────┐            │
│           │               │               │            │
│           ▼               ▼               ▼            │
│    ┌─────────────┐ ┌─────────────┐ ┌─────────────┐    │
│    │   约束机制   │ │   反馈回路   │ │  持久执行   │    │
│    │(Constraints)│ │(Feedback)   │ │(Durable)    │    │
│    └──────┬──────┘ └──────┬──────┘ └──────┬──────┘    │
│           │               │               │            │
│           └───────────────┼───────────────┘            │
│                           │                            │
│                           ▼                            │
│                    ┌─────────────┐                     │
│                    │   AI Agent   │                     │
│                    │   (Codex)    │                     │
│                    └─────────────┘                     │
│                                                         │
│   控制平面:指挥和监控                                    │
│   约束机制:设定边界                                      │
│   反馈回路:验证结果                                      │
│   持久执行:保障可靠                                      │
│                                                         │
└─────────────────────────────────────────────────────────┘

五、Harness Engineering 的工作流程

5.1 典型工作流程

┌─────────────────────────────────────────────────────────┐
│           Harness Engineering 工作流程                   │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  阶段 1:需求分析与 Harness 设计                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  • 理解业务需求                                   │   │
│  │  • 定义系统架构和模块边界                          │   │
│  │  • 设计约束规则(代码规范、安全规则等)             │   │
│  │  • 规划反馈机制(测试策略、监控指标)               │   │
│  │  • 配置控制平面(调度策略、资源限制)               │   │
│  └─────────────────────────────────────────────────┘   │
│                         ↓                               │
│  阶段 2:Agent 任务执行                                  │
│  ┌─────────────────────────────────────────────────┐   │
│  │  • 人类工程师提交任务描述                         │   │
│  │  • 控制平面调度 Agent 执行任务                    │   │
│  │  • Agent 在约束范围内生成代码                     │   │
│  │  • 持久执行系统记录执行状态                       │   │
│  └─────────────────────────────────────────────────┘   │
│                         ↓                               │
│  阶段 3:反馈与验证                                      │
│  ┌─────────────────────────────────────────────────┐   │
│  │  • 自动化测试验证代码正确性                       │   │
│  │  • 静态分析检查代码质量                           │   │
│  │  • 运行时监控检测异常                             │   │
│  │  • 结果反馈给 Agent(成功/失败/需修复)            │   │
│  └─────────────────────────────────────────────────┘   │
│                         ↓                               │
│  阶段 4:迭代优化                                        │
│  ┌─────────────────────────────────────────────────┐   │
│  │  • 测试通过 → 合并代码 → 部署上线                 │   │
│  │  • 测试失败 → Agent 修复 → 重新验证(循环)        │   │
│  │  • 无法自动修复 → 人工介入 → 改进 Harness          │   │
│  └─────────────────────────────────────────────────┘   │
│                         ↓                               │
│  阶段 5:持续改进                                        │
│  ┌─────────────────────────────────────────────────┐   │
│  │  • 分析 Agent 执行数据                            │   │
│  │  • 识别 Harness 的不足                            │   │
│  │  • 优化约束、反馈、控制机制                        │   │
│  │  • 升级 Harness 本身                              │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
└─────────────────────────────────────────────────────────┘

5.2 人机协作模式

场景

人类角色

Agent 角色

需求理解

定义清晰的需求和验收标准

理解需求并提问澄清

架构设计

设计系统架构和模块边界

在约束内实现具体设计

编码实现

设计编码规范和约束

生成符合规范的代码

代码审查

设计审查标准和流程

自我检查并修复问题

测试验证

设计测试策略和用例

执行测试并修复缺陷

部署运维

设计部署流程和监控

执行部署和自我修复

问题处理

处理无法自动解决的复杂问题

处理常规问题和故障

六、Harness Engineering 与传统方法的对比

6.1 核心差异对比

维度

传统软件工程

Harness Engineering

核心产出

代码

Harness(环境+约束+控制)

人类角色

代码生产者

环境设计师

AI 角色

辅助工具

主要执行者

工作重点

实现功能

设计约束和反馈

质量保证

人工 Code Review

自动化反馈回路

开发效率

依赖个人速度

依赖 Harness 质量

可扩展性

依赖团队规模

可快速扩展 Agent 数量

知识沉淀

文档和代码

Harness 配置和规则

6.2 思维模式的转变

┌─────────────────────────────────────────────────────────┐
│              思维模式的根本转变                          │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   传统思维                      Harness 思维             │
│   ──────────                    ────────────            │
│                                                         │
│   "这个功能怎么实现?"           "如何让 Agent 理解这个需求?" │
│                                                         │
│   "这段代码有问题"               "约束机制哪里不够完善?"    │
│                                                         │
│   "我来修复这个 Bug"            "反馈回路为什么没有捕获?"   │
│                                                         │
│   "Code Review 通过"           "自动化验证全部通过"         │
│                                                         │
│   "项目进度如何?"               "Harness 效率指标如何?"    │
│                                                         │
│   关注具体实现                  关注系统设计               │
│   关注个人产出                  关注环境效率               │
│   关注代码质量                  关注约束完善               │
│                                                         │
└─────────────────────────────────────────────────────────┘

七、Harness Engineering 的价值

7.1 对个人的价值

价值

说明

能力升级

从编码者升级为系统设计师,提升职业天花板

效率提升

通过 Harness 让 Agent 完成重复性工作,专注高价值设计

影响力扩大

好的 Harness 可以被复用,放大个人产出

竞争力增强

掌握前沿工程范式,在 AI 时代保持领先

7.2 对团队的价值

价值

说明

规模化产出

一个 Harness 可以驱动多个 Agent 并行工作

一致性保障

通过约束机制确保代码质量和风格一致

知识沉淀

Harness 本身就是可版本化、可传承的知识

降低门槛

新手可以通过 Harness 快速产出高质量代码

7.3 对组织的价值

价值

说明

成本优化

减少重复性编码工作的人力投入

速度提升

加速产品开发和迭代周期

质量提升

通过自动化反馈确保代码质量

创新释放

让工程师专注于创新而非重复劳动

八、如何开始实践 Harness Engineering?

8.1 入门路径

┌─────────────────────────────────────────────────────────┐
│              Harness Engineering 学习路径                │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  第 1 步:理解基础                                        │
│  ├── 学习 AI Agent 的基本原理                            │
│  ├── 了解 Codex、Claude 等 Coding Agent 的能力           │
│  └── 阅读 OpenAI Harness Engineering 相关资料            │
│                                                         │
│  第 2 步:从小处开始                                      │
│  ├── 选择一个简单项目或模块                               │
│  ├── 设计基本的约束规则(代码规范、项目结构)              │
│  ├── 建立简单的反馈机制(自动化测试)                      │
│  └── 让 Agent 在约束下完成编码任务                        │
│                                                         │
│  第 3 步:逐步完善                                        │
│  ├── 根据实践优化约束机制                                 │
│  ├── 完善反馈回路(增加静态分析、代码审查)                 │
│  ├── 建立控制平面(任务管理、监控)                        │
│  └── 实现持久执行(状态管理、故障恢复)                    │
│                                                         │
│  第 4 步:规模化应用                                      │
│  ├── 将 Harness 应用到更大项目                            │
│  ├── 建立 Harness 模板库                                 │
│  ├── 分享和复用 Harness 配置                              │
│  └── 持续优化和改进                                      │
│                                                         │
└─────────────────────────────────────────────────────────┘

8.2 关键成功因素

  1. 约束设计要合理

    • 不能太松(Agent 会失控)
    • 不能太紧(限制 Agent 能力)
    • 要可验证、可执行
  2. 反馈回路要快速

    • 测试执行要快
    • 错误反馈要清晰
    • 修复循环要短
  3. 控制平面要可靠

    • 状态管理要准确
    • 监控要全面
    • 人工介入要方便
  4. 持续迭代优化

    • 根据数据改进 Harness
    • 学习最佳实践
    • 跟上技术发展

九、结语:拥抱 Agent-First 的新时代

Harness Engineering 代表着软件工程的一次根本性转变:

从"人类写代码"到"人类设计环境,Agent 写代码"。

这不是人类工程师的终结,而是角色的升华:

  • 我们不再是代码工人,而是系统设计师
  • 我们不再关注如何实现,而是关注如何设计让 AI 高效实现的环境
  • 我们的价值不再体现在代码行数,而是体现在Harness 的质量

OpenAI 的实验已经证明:一个设计良好的 Harness,可以让 AI Agent 完成 80% 的编码任务,且代码质量达到生产标准。

未来属于那些能够驾驭 AI,而非被 AI 取代的工程师。

Harness Engineering,就是这个未来的工程基础。

参考与延伸阅读

  1. Harness engineering: leveraging Codex in an agent-first world - Ryan Lopopolo, OpenAI
  2. AI-Native Software Engineering - Anthropic
  3. The Rise of the AI Engineer - Latent Space