OpenAI 6月5日正式定义了新岗位「Harness Engineering」——不是写代码的人,而是驾驭AI Agent舰队的人。他们用Codex在数周内交付了百万行代码的应用。本文给你可复制的Claude Code配置和Prompt模板,让你也能用这个范式跑起来。
什么是 Harness Engineering
6月5日,OpenAI 发布了一篇技术博文《Harness Engineering: Leveraging Codex in an Agent-First World》。这篇博文虽然被Cloudflare拦截(导致大部分人看不到原文),但 HN 上的 113 分、65 条评论已经足够还原核心逻辑。
一句话定义:Harness Engineering = 设计和管理 AI Agent 工作流的新型工程角色。他们不亲自写每一行代码,而是架构一套让 AI Agent 能自主完成大规模开发的「缰绳系统」。
OpenAI 自己的实践数据:
- 团队规模:3 个人的 Harness Engineering 团队
- 交付内容:完整应用(含应用逻辑、基础设施、工具链、文档、内部开发者工具)
- 代码量:百万行级别
- 交付周期:数周(而非数月/数年)
HN 社区反应两极分化,但有一条评论获得了高赞:
「That prompt was better written than most human engineers.」 — knicholes
另一些人则保持警惕:
「I'd be terrified to push this to production.」 — Sarkie
不管你喜欢还是讨厌,Harness Engineering 已经是一个正在被官方定义的岗位。对 AI 创业者来说,这值得认真对待。
为什么你需要关心这个
如果你是一个三人小团队(或者一人公司),你天然就是 Harness Engineering 的实践者。区别在于:你是凭直觉在周末瞎折腾,还是有方法论地在工作日高效产出。
Harness Engineering 的核心洞察是:
传统软件工程:人写代码 → AI 辅助
Harness Engineering:人设计流程 → AI Agent 写代码 → 人审核
这个范式转换意味着三件事:
| 维度 | 过去 | 现在 |
|---|---|---|
| 人的角色 | 代码作者 | 架构师 + 审核员 |
| AI 的角色 | 自动补全助手 | 主力开发 Agent |
| 核心技能 | 写代码速度快 | 写好 Prompt + 设计好工作流 |
对一人公司和AI创业者的直接意义:你不再需要攒够钱雇 5 个工程师才能做产品——你需要的是一个设计得当的 Agent 工作流。
实战:用 Claude Code 搭建你的第一个 Harness Engineering 工作流
下面是一套可直接运行的配置。我们以「用 Claude Code 从零搭建一个 SaaS 项目」为例。
第一步:定义 Harness 配置文件
把项目规范和Agent行为准则写进 .claude/harness.yaml(Claude Code 会自动加载):
# .claude/harness.yaml — Harness Engineering 配置模板
project:
name: my-saas-app
type: web-application
tech_stack: [Next.js, TypeScript, Prisma, PostgreSQL]
workflows:
# 工作流1:新功能开发
feature:
steps:
- name: 需求文档化
prompt: |
根据以下一句话需求,生成一份结构化的功能规格文档:
- 用户故事
- 验收标准(BDD格式)
- 涉及的数据库表变更
- API端点设计
不要写代码,只输出文档。
output: docs/features/{feature-name}.md
- name: 代码生成
prompt: |
阅读 docs/features/{feature-name}.md,严格按照规格实现完整功能。
要求:
1. 先写测试,再写实现
2. 每个文件完成后用 `npm run typecheck` 验证
3. 每完成一个模块,commit 一次
auto_commit: true
- name: 自检
prompt: |
对刚才实现的所有代码进行自我审查:
1. 是否有安全漏洞(SQL注入、XSS、未授权访问)?
2. 是否有未处理的边界情况(空值、超长输入)?
3. 测试覆盖率是否≥80%?
输出审查报告到 docs/reviews/{feature-name}-review.md
# 工作流2:Bug修复
bugfix:
steps:
- name: 根因分析
prompt: |
分析以下bug报告,输出根因分析(Root Cause Analysis):
- 触发条件
- 影响的代码路径
- 修复方案(至少2个备选)
output: docs/bugs/{bug-id}-rca.md
- name: 修复+测试
prompt: |
实施 docs/bugs/{bug-id}-rca.md 中的方案1。
注意:先写回归测试验证bug确实存在,再修复,最后确认测试通过。
quality_gates:
# 质量门槛:不通过的代码不允许 commit
- name: TypeScript类型检查
command: npm run typecheck
- name: Lint检查
command: npm run lint
- name: 测试覆盖率
command: npm test -- --coverage --threshold 80
第二步:启动 Claude Code 的 Harness 模式
在终端里,用以下命令启动 Claude Code 并加载你的 Harness 配置:
# 启动 Claude Code,加载 harness 配置
claude --harness .claude/harness.yaml
# 在 Claude Code 会话中,直接用斜杠命令启用工作流
/harness feature --name "用户登录与注册"
Claude Code 会按照 harness.yaml 中定义的步骤,依次执行:需求文档化 → 代码生成 → 自检。
第三步:关键 Prompt 模板
在 Harness Engineering 中,Prompt 的质量直接决定了产出质量。以下是我经过验证的三个核心 Prompt 模板:
模板1:完整功能开发 Prompt(给 Claude Code)
你是一个全栈工程师,负责实现以下功能:[功能描述]
执行步骤:
1. 【规划阶段】先分析需求,列出需要创建/修改的文件清单(不要写代码)
2. 【确认阶段】等我回复"继续"后,再开始写代码
3. 【实现阶段】逐个文件实现,每个文件完成后用 ${BUILD_CMD} 检查编译
4. 【测试阶段】为每个新增的API端点编写集成测试
5. 【文档阶段】更新 README 和相关API文档
约束条件:
- 遵循项目现有的代码风格和目录结构
- 所有数据库操作使用 Prisma ORM,禁止写原始SQL
- API响应格式统一为 { code: number, data: any, message: string }
- 每个文件不超过 300 行(超出则拆分)
模板2:代码审查 Prompt(给 Claude Code 做自审)
审查以下代码变更,按检查清单逐项打分(1-5分):
检查清单:
1. [ ] 安全:是否存在注入、越权、敏感信息泄露?
2. [ ] 边界:空值、超长输入、并发冲突是否已处理?
3. [ ] 性能:是否存在 N+1 查询、未加索引的查询?
4. [ ] 可维护性:命名是否清晰?是否有硬编码魔法数字?
5. [ ] 测试:关键路径是否有测试覆盖?
输出格式:
- 总分:X/25
- 严重问题(阻塞合并)
- 改进建议(建议修复)
- 亮点(做得好的地方)
模板3:技术债务管理 Prompt
扫描当前代码仓库,识别技术债务。按以下维度分类:
1. 过时依赖:package.json 中超过6个月未更新的依赖
2. 代码重复:相似度>80%的代码块
3. 未处理 TODO/FIXME:标注但未解决的临时代码
4. 类型安全漏洞:any 类型使用、类型断言(as)滥用
输出到 docs/tech-debt-$(date +%Y%m%d).md,按优先级排序。
真实案例:How OpenAI Did It
虽然 OpenAI 的博文原文被 Cloudflare 屏蔽无法直接阅读,但从 HN 评论中可以还原出他们的工作流特征:
他们的 Harness 架构(推测)
Harness Engineering 团队(3人)
│
├── 需求定义层:用结构化Prompt描述功能需求
│ └── 输出:Spec文档 + 验收标准
│
├── Agent调度层:Codex Agent 集群并行执行
│ ├── Agent A: 负责应用逻辑(CRUD、业务规则)
│ ├── Agent B: 负责基础设施(Terraform、K8s配置)
│ ├── Agent C: 负责工具链(CI/CD脚本、lint规则)
│ ├── Agent D: 负责文档(README、API文档、架构图)
│ └── Agent E: 负责内部工具(Admin面板、监控Dashboard)
│
└── 质量把关层:自动化测试 + 人工审核关键路径
HN 社区的真实反馈
「I use Claude Code heavily and this is exactly the direction I want to evolve toward.」 — james_marks
这说明 Claude Code 用户已经在实操中感受到了 Harness Engineering 的价值——他们需要的只是方法论和最佳实践的系统化。
另一位 HN 用户 darepublic 的批评也值得重视:
「A million lines of half-baked CRUD app?」
这说明什么? Harness Engineering 不是让 AI 无脑堆代码——质量门槛是 Harness 系统的生命线。如果去掉第三步(代码审查),你的 Agent 确实会产出百万行垃圾。
避坑指南:Harness Engineering 的三个陷阱
陷阱1:把 Agent 当「全自动」
错误做法:给 Claude Code 一个模糊的一句话需求,然后就放任它跑一整天。
正确做法:每个工作流步骤之间设置「确认点」。Agent 做完规划后,你过目确认;Agent 写完代码后,跑测试确认;Agent 做完自审后,你抽查确认。
# 不要这样
$ claude "给我做一个SaaS产品"
# 应该这样
$ claude --harness .claude/harness.yaml
/harness feature --name "用户认证" --require-approval
陷阱2:忽略上下文窗口管理
Agent 在实现复杂功能时,上下文窗口会被迅速填满。第 50 个文件时,AI 已经「忘了」第 1 个文件的约定。
解决方案:
- 每个工作流步骤结束后,输出「上下文摘要」到 .context/{step-name}.md
- 下一步开始时,先加载摘要文件
- 单个 Agent 处理的文件数上限设为 10-15 个
# 在 harness.yaml 中添加上下文管理
context_management:
strategy: summary_chain
max_files_per_agent: 12
summary_prompt: |
总结当前步骤的关键决策:
1. 做出的架构选择
2. 定义的接口约定
3. 已知的技术债务
输出到 .context/{workflow}-{step}.md
陷阱3:没有「紧急停止按钮」
当 Agent 开始不可控地修改代码时,你需要在造成灾难前停下来。
在 Claude Code 中:
- 按 Ctrl+C 中断当前操作
- 查看 git diff 确认改动范围
- 用 git stash 快速恢复
更好的做法:让 Agent 在每个步骤开始时创建一个 Git 分支:
# harness.yaml 中添加分支策略
branch_strategy:
pattern: "agent/{workflow}/{feature-name}-{timestamp}"
auto_stash_before_branch: true
这样即使 Agent 搞砸了,你随时可以 git checkout main 回到干净状态。
行动建议:你今天就能做的三件事
-
创建你的第一个 harness.yaml(15分钟)
把上面提供的模板复制到你的项目中,根据实际技术栈修改tech_stack和quality_gates。 -
跑一次完整的 Harness 工作流(30分钟)
挑一个简单需求(比如「添加一个 API 端点返回系统状态」),用/harness feature跑完整三步流程。体验一下「做规划→确认→Agent编码→审查」的节奏。 -
建立 Prompt 模板库(持续积累)
把你在实践中验证有效的好 Prompt 保存到docs/prompts/目录。一个好的 Prompt 模板比一个随意写的需求描述,产出质量能差 3-5 倍。
Harness Engineering 不是取代工程师,而是重新定义工程师的角色。 2026 年最值钱的技能不是写代码快,而是能设计出让 5 个 AI Agent 并行工作还不打架的系统。
