Harness Engineering(编排工程)
获取中... 获取中...
原文地址:https://openai.com/index/harness-engineering/
Harness Engineering(编排工程)
引言
随着像 Codex 这样的 AI 系统能够生成高质量代码,软件工程的实践方式正在发生根本性变化。
在 OpenAI,我们开展了一项实验:
从一个空仓库开始,尽可能让 AI 完成全部开发工作。
结果是:
- 在约 5 个月时间内
- 使用少量工程师(约 3–7 人)
- 构建了一个规模接近 100 万行代码的系统
- 人类几乎没有直接编写代码
我们将这种新的工程方式称为:
Harness Engineering(编排工程)
什么是 Harness Engineering
Harness Engineering 并不是直接编写代码,而是:
设计一整套系统,使 AI 能够高效、安全地生成、测试和维护代码
工程师的职责从“写代码”转变为:
- 定义任务
- 设计约束
- 构建反馈循环
- 提供上下文环境
AI 则负责:
- 编写代码
- 运行测试
- 修复问题
- 提交变更
核心理念
1. AI 的表现取决于“环境”,而不是仅仅模型能力
我们观察到:
- 在良好环境中,AI 可以表现出极高的能力
- 在混乱或信息不足的环境中,AI 表现显著下降
因此重点转变为:
优化 AI 的运行环境(harness),而不是单纯提升模型能力
2. 所有知识必须存在于代码仓库中
AI 只能访问仓库中的内容。
它无法看到:
- Slack 讨论
- 口头沟通
- 隐含知识
因此我们做了以下改变:
- 将设计文档写入仓库
- 将架构决策记录为文件
- 将规范转化为可执行规则
结论:
如果知识不在仓库中,对 AI 来说就是不存在
3. 用约束替代人工 Code Review
传统开发流程中:
- 工程师通过 Code Review 控制质量
在 Harness Engineering 中:
我们使用自动化规则:
- 架构约束(模块依赖关系)
- 命名规范
- 日志标准
- 文件大小限制
这些规则具备:
- 自动检测
- 自动反馈
- 可由 AI 自行修复
4. 构建完整的自动化反馈循环
AI 可以执行完整开发流程:
- 发现问题
- 复现问题
- 编写修复代码
- 运行测试
- 验证结果
- 提交 PR
- 响应 Review
- 修复构建失败
- 合并代码
关键在于:
为 AI 提供清晰、可执行的反馈机制
5. 防止代码质量退化(“垃圾积累”问题)
AI 会倾向于:
- 复制已有模式(包括不良模式)
- 逐渐降低代码质量
解决方法:
- 定义“高质量代码标准”
- 定期扫描代码库
- 自动生成修复 PR
这类似于:
为代码库建立“垃圾回收机制”
6. 任务拆解至关重要
AI 在以下情况下表现最佳:
- 任务清晰
- 范围有限
- 上下文完整
因此工程师需要:
- 将大任务拆分为小任务
- 明确输入与输出
- 控制上下文范围
工程师角色的转变
传统软件工程
工程师负责:
- 编写代码
- 调试问题
- 编写测试
- 进行代码评审
Harness Engineering
工程师负责:
1. 系统设计
- 架构设计
- 模块划分
- 接口定义
2. 任务定义
- 编写清晰的任务描述
- 提供必要上下文
3. 约束设计
- 编写规则
- 限制错误行为
4. 反馈系统
- 构建测试
- 提供验证机制
实验结果
通过这种方式:
- AI 生成了绝大部分代码
- 开发效率显著提升(约 10 倍)
- 人类工作量集中在系统设计与管理
关键经验总结
1. 不要直接让 AI 写代码
而是:
先设计环境,再让 AI 工作
2. 明确优于聪明
简单、清晰的规则比复杂逻辑更有效
3. 自动化优于人工
所有可重复工作都应自动化
4. 持续清理代码库
防止质量下降
5. 小任务优于大任务
任务越小,AI 成功率越高
未来展望
Harness Engineering 代表了一种新的软件开发范式:
从:
人类编写代码
转向:
人类设计系统 + AI 执行实现
未来工程师的核心能力将包括:
- 系统设计能力
- 任务建模能力
- 约束设计能力
- AI 协作能力
总结
Harness Engineering 的本质是:
通过设计良好的环境与规则,使 AI 成为高效的软件开发执行者
这标志着软件工程从“手工编码”走向“系统编排”的重要转变。
本文由 Xuanye 创作,采用 知识共享署名 4.0 国际许可协议。
本站文章除注明转载/出处外,均为本站原创或翻译,转载请务必署名。