Skip to content

执行工装工程(Harness Engineering) ​

这是范式地图里最前沿、也最难的一层,解决最后一公里的终极问题:代理怎样才能稳定、可靠、长时间地把事情做完?

一、先解释这个难翻译的名字 ​

Harness 英文本义是"马具、束具、安全带",核心含义是"把东西套住、接起来、控制起来"。在软件工程里它常见于:

  • test harness(测试工装)
  • evaluation harness(评测框架)
  • agent harness(代理执行框架)

所以 Harness Engineering(执行工装工程) 不是在说"怎么写更强的提示词",而是:

怎么给代理搭一整套可运行、可观测、可验证、可修复的执行环境。

它强调的重点不是"写 prompt",而是"搭环境"。

二、核心工程观:人来掌舵,代理来执行 ​

OpenAI 在 2026 年公开提出 Harness Engineering,一句话概括:

Humans steer. Agents execute.(人来掌舵,代理来执行。)

背后的新工程观:

  • 人不再手写每一行代码;
  • 人更多在设计环境、指定意图、建立反馈回路;
  • 代理不只写代码,还能启动应用、观察日志、读取指标、验证修复、回应 review、继续迭代。

三、Harness 的四个关键点 ​

text
1. 让应用对代理可读
   日志、页面、trace、指标、测试结果,都要让代理"看得见"。

2. 让仓库成为 system of record(唯一事实来源)
   知识不能散落在聊天、Wiki、脑海中。对代理来说,仓库里没有 = 没有。

3. 把 review / test / validation 编码进系统
   不是让 AI 写完就停,而是让它在验证系统里反复修正,直到通过。

4. 让约束比指令更重要
   用 lint、结构测试、taste invariants 等机制去"框住"代理,
   而不是只靠大段提示词反复叮嘱。

四、闭环长什么样 ​

text
目标与约束 → 代理执行 → 运行应用 / 读日志 / 看测试 → 自动修复与再验证 → 通过后进入人工审查
   ▲                                                                        │
   └──────────────────────────  未通过则回到执行,继续迭代  ◀────────────────┘

对比一下各理念解决的问题层级:

text
怎么想清楚(SDD)→ 怎么协作(Claude Team)→ 怎么组织上下文(Context Eng.)
                                                    ↓
                                    怎么稳定闭环执行(Harness Eng.)  ← 最难的一公里

五、一个能落地的最小"工装"示例 ​

Harness 的骨架,其实就是把"验证回路"自动化。下面这个脚本就是一个最小可用的执行 + 验证闭环入口:AI 改完代码后,由它统一跑校验,任一环节失败即整体失败(非零退出码),代理据此决定是否继续修。

python
# 环境:终端,Python 3
# harness_check.py —— 把 lint / 类型 / 测试 编码成一道"闸门"
import subprocess
import sys

steps = [
    ("lint", ["python", "-m", "flake8", "."]),
    ("test", ["python", "-m", "pytest", "-q"]),
]

failed = []
for name, cmd in steps:
    print(f"[harness] running {name}: {' '.join(cmd)}")
    result = subprocess.run(cmd)
    if result.returncode != 0:
        failed.append(name)

if failed:
    print(f"[harness] FAILED steps: {', '.join(failed)}")
    sys.exit(1)
print("[harness] all checks passed")

运行:

powershell
python harness_check.py

若 lint 未安装而 test 通过,实际输出会是:

text
[harness] running lint: python -m flake8 .
[harness] running test: python -m pytest -q
[harness] FAILED steps: lint

💡 意义:代理每改一轮就调用这道闸门,"通过与否"不再靠人肉判断,而是机器可读的信号——这正是 Harness "让验证编码进系统"的最小实现。真实项目里,你会把 flake8 换成项目实际的 lint,再补上 typecheck、集成测试、甚至"启动应用读健康检查"等步骤。

⚠️ 安全提示:给代理"能自动执行"的环境,意味着它也可能执行危险操作。务必用沙箱、限定可运行命令白名单、隔离凭据与生产环境,并对破坏性动作(删库、发布、改权限)保留人工审批闸门。能力越大,约束越要前置。

六、为什么它是最重要的升级方向 ​

一旦 harness 搭好,代理就不再只是聊天窗口里的助手,而会逐渐变成一个能在真实工程环境里持续执行任务的系统角色。这也是 AI 编程未来最关键的演进方向——从"助手模式"升级到"闭环执行模式"。

七、本章小结 ​

  • Harness Engineering = 为代理搭建可运行 / 可观测 / 可验证 / 可修复的闭环执行环境。
  • 核心口号:Humans steer. Agents execute.
  • 四个抓手:应用对代理可读、仓库即事实来源、验证编码进系统、约束 > 指令。
  • 它建设成本最高,但决定 AI 能否"长时间稳定干活",并必须前置安全约束。

八、下一步 ​