来源:OpenAI 技术博客《Harness engineering: leveraging Codex in an agent-first world》 整理:CSDN https://blog.csdn.net/u013970991/article/details/158503060
背景
AI Agent 让代码产出不再稀缺,但以下问题成为新瓶颈:
- 质量闭环
- 上下文管理
- 架构一致性
- 人类精力消耗在"检查与返工"上
Harness Engineering 正是破解这些问题的关键方法论。
一、核心目标:从"无序高效"到"有序可控"
(一)打破"写代码"的瓶颈桎梏
- 代码生成已非短板,人类时间与注意力才是稀缺资源
- 人类聚焦:决策、优先级判定、成果验收
- AI 负责:编码、测试、完善文档等"细粒度产出"
(二)将 AI Agent 纳入可控工程体系
- 核心诉求:让 AI Agent 稳定产出可合并、可运行、可回归验证的代码
- 脱离可控性的高产出毫无意义
- Harness Engineering 为 AI Agent 搭建"规则框架"
(三)实现"纠错成本低于等待成本"
- 高吞吐编码中,阻塞式门禁将"等待"转化为主成本
- 建立快速试错、快速修正、持续清理漂移的机制
二、核心举措:软件工程流程产品化
(一)角色重构:重塑工程师的核心价值
工程师不再"亲手写代码",而是聚焦:
- 设计 Agent 的运行环境与工具体系
- 清晰表达开发意图(明确规格与验收标准)
- 构建完善的反馈回路(测试、可观测性、评审、修复机制)
当 Agent 执行失败时,深挖缺失的能力、约束或工具,将修复方案编码入库
(二)提升可读性与可验证性
让运行态信号成为 Agent 的"导航仪":
- 每个 worktree 启动独立实例
- 接入浏览器自动化与 DevTools
- Agent 可通过截图、DOM 快照完成端到端验证
- 将可观测性本地化,让 Agent 能直接查询日志与指标
目标:从"只读代码" → "读运行态、用证据驱动修复"
(三)升级代码仓库:破解知识漂移难题
| 传统方式 | Harness Engineering |
|---|---|
| 冗长说明书 | 简洁的 AGENTS.md 作为"知识目录与地图" |
| 口头规则 | 沉淀到 docs/文档、架构文档、执行计划中 |
| 人工维护 | CI + linter 机械化检查文档新鲜度 |
| - | 周期性"文档维护 Agent"自动修补过期内容 |
(四)机械化约束:规范 Agent 编码行为
核心:不是限制具体实现细节,而是强制不可突破的"不变量":
- 分层依赖方向
- 允许的依赖边
- 边界数据校验
- 结构化日志
- 命名规范
- 文件大小上限
- 可靠性要求
关键操作:将评审意见前置,整改建议写入 linter 报错信息,让 Agent 在开发过程中自动被引导到正确轨道
(五)优化合并哲学:适配高吞吐场景
- AI Agent 吞吐远大于人类注意力
- 减少阻塞式门禁,保持 PR 短生命周期
- 对于非致命问题(如测试抖动),优先后续重跑与快速修复
- 纠正错误的成本 < 等待的成本
(六)建立反熵机制:持续清理"AI 生成残渣"
- AI Agent 会复制仓库中已有的编码模式(包括坏模式)
- 设置周期性扫描、质量打分、定向重构的后台任务
- 将人类的编码审美与规则"捕获一次、持续执行"
三、对 Vibe Coding 的实践价值
| Vibe Coding 优势 | Vibe Coding 短板 |
|---|---|
| 快速捕捉灵感 | 缺乏稳定性 |
| 高效产出代码 | 缺乏可控性 |
Harness Engineering 的弥补:
- 将目标、约束、证据与纠错机制全部工程化
- 保留灵感的灵动性 + 生产级工程的稳定性
结语:工程师的角色升级
核心矛盾转移:
- 过去:如何快速写代码
- 现在:如何让快速产出的代码可控、可用
Harness Engineering 的本质:
- AI Agent 不是"替代人类",而是"解放人类"
- 人类工程师核心价值:从"代码的生产者" → "工程体系的设计者与守护者"
相关笔记
- Claude Code Agent 工程 — 相关的 Agent 工程分析
- AI MOC