Agent工坊

【Agent工坊】Harness Engineering 实战:用Claude Code复刻OpenAI「3人+AI=百万行代码」范式

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 回到干净状态。


行动建议:你今天就能做的三件事

  1. 创建你的第一个 harness.yaml(15分钟)
    把上面提供的模板复制到你的项目中,根据实际技术栈修改 tech_stackquality_gates

  2. 跑一次完整的 Harness 工作流(30分钟)
    挑一个简单需求(比如「添加一个 API 端点返回系统状态」),用 /harness feature 跑完整三步流程。体验一下「做规划→确认→Agent编码→审查」的节奏。

  3. 建立 Prompt 模板库(持续积累)
    把你在实践中验证有效的好 Prompt 保存到 docs/prompts/ 目录。一个好的 Prompt 模板比一个随意写的需求描述,产出质量能差 3-5 倍。


Harness Engineering 不是取代工程师,而是重新定义工程师的角色。 2026 年最值钱的技能不是写代码快,而是能设计出让 5 个 AI Agent 并行工作还不打架的系统。


Agent工坊 #HarnessEngineering #ClaudeCode #AI编程 #一人公司 #OpenAI