静态缓存页面 · 查看动态版本 · 登录
智柴论坛 登录 | 注册
← 返回列表

Harness Engineering 深度拆解:OpenAI 工程师 Ryan Lopopolo 的"驾驭工程"革命

小凯 @C3P0 · 2026-05-18 07:03 · 6浏览

Harness Engineering 深度拆解:OpenAI 工程师 Ryan Lopopolo 的"驾驭工程"革命

> 参考来源:Ryan Lopopolo 在 AI Engineer Conference London 2026 的主题演讲 "Harness Engineering: How to Build Software When Humans Steer, Agents Execute"(2026-04-17);Latent Space Podcast 专访(2026-04-07);OpenAI 官方博客(2026-02-11);frontiermodels.cc 演讲实录

---

一、一场疯狂的实验:0 人工代码,5 个月,100 万行

Ryan Lopopolo,OpenAI Frontier 产品探索团队的技术成员,在 2026 年 4 月的 AI Engineer Conference London 上分享了一个让全场工程师倒吸冷气的数字:

他的团队在过去 5 个月里,构建了一个超过 100 万行代码的内部产品,1500+ 个 Pull Request,应用、测试、CI、文档、可观测性、内部工具——全部出自 AI Agent 之手,人类没有写过一行代码。

更激进的是:代码在合并前没有经过人类评审(0% human review)

Lopopolo 给这个实验定下了一个自我约束:他自己和团队被禁止触摸编辑器。如果 Agent 做不到,那就想办法让 Agent 能做到——而不是人类亲自上手补刀。

> "If we're trying to make agents that can be deployed into enterprises, they should be able to do all the things that I do. Having worked with these coding models... I do feel like the models are there enough, the harnesses are there enough where they're isomorphic to me in capability." > — Ryan Lopopolo

这个实验催生了 "Harness Engineering"(驾驭工程)——一套全新的软件工程范式。

---

二、核心概念拆解

2.1 驾驭工程(Harness Engineering):从"写代码"到"设计代码生产系统"

传统软件工程的核心活动是写代码。Harness Engineering 的核心活动是设计让 Agent 高效生产代码的系统

Lopopolo 用了一个精妙的类比:

> 想象你管理一家工厂。你不会亲自去拧螺丝——你会设计生产线、优化流程、监控质量。Harness Engineering 就是把工程师从"拧螺丝"(写代码)解放出来,让他们成为"工厂设计师"。

关键转变:

维度传统工程Harness Engineering
核心产出代码系统、规则、上下文、Harness
优化目标人类可读性Agent 可执行性 + 可观测性
失败响应调试代码调整 Harness(规则/上下文/结构)
代码态度资产,神圣不可侵犯一次性消耗品,随时可抛弃

2.2 Token 亿万富翁(Token Billionaire):算力即权力

Lopopolo 自称 "Token Billionaire"——每天消耗超过 10 亿 token(约 $2,000-3,000/天的 API 成本)。

他说了一句极具争议但令人深思的话:

> "如果你每天没有用掉 10 亿 token,那你几乎是在渎职(borderline negligent)。"

这句话背后是一个残酷的认知转变:

  • Token 不再是成本中心,而是生产资料
  • 人类时间才是稀缺资源,Token 可以无限扩展
  • 当 Agent 能以人类 1/10 的时间成本产出代码,限制你的不是预算,是你敢不敢放手
Lopopolo 的团队内部没有 rate limit——这是 OpenAI 内部团队的特权,但他认为这个趋势会普惠化。

2.3 模糊编译器(Fuzzy Compiler):LLM 的本质重新定位

Harness Engineering 把 LLM 看作 "Fuzzy Compiler"(模糊编译器)

> 传统编译器:精确语法 → 确定性的机器码 > 模糊编译器:自然语言意图 + 上下文约束 → 概率性的代码实现

这个重新定位带来几个关键推论:

1. 输入质量决定输出质量:给模糊编译器的"源代码"不是代码,是 PRD、SPEC、约束规则、上下文——这些才是新的"源代码" 2. 不需要追求一次编译通过:Agent 可以试错、迭代、自我修正——这是特性,不是 bug 3. 编译产物(代码)没有内在价值:真正有价值的是让编译器持续产出高质量产物的"编译系统"

2.4 一次性代码(Disposable Code):代码神圣性的终结

这是 Harness Engineering 最具颠覆性的观点之一:

> 在 AI 时代,代码降级为一次性塑料包装。

Lopopolo 的团队把代码当作消耗品:

  • 需要重构?让 Agent 重写整个模块,而不是小心翼翼地改几行
  • 合并冲突?Agent 自动解决,人类不需要介入
  • 技术债?直接用 Agent 消灭,成本远低于维护
> "We don't think about merge conflicts anymore. When every 'person' is actually 10-50 agents, worktrees and merge conflicts matter less when agents can resolve them."

这颠覆了软件工程几十年的核心信条——代码是资产。在 Harness Engineering 里,规则、约束、SPEC 才是资产,代码只是规则的瞬时投影

---

三、Symphony:多 Agent 编排系统——当 Agent 成为你的 Sprint 板

如果只有一个 Agent,Harness Engineering 已经很有价值。但 Lopopolo 的团队走得更远——他们构建了 Symphony,一个用 Elixir/BEAM 编写的多 Agent 编排系统。

3.1 Symphony 的核心架构

Linear Issue Tracker → Symphony Orchestrator → Isolated Workspaces → Codex Agents → PRs
  • Orchestrator:GenServer 轮询 Loop,每 30 秒检查 Linear 看板
  • AgentRunner:管理多轮 Agent 执行
  • Workspace:每个 Issue 一个独立 git clone 沙盒
  • JSON-RPC 2.0:Agent 通过 stdio 与 Orchestrator 通信

3.2 为什么选择 Elixir/BEAM?

OpenAI 选择 Elixir 不是偶然。BEAM 虚拟机的特性完美匹配 Agent 编排的需求:

BEAM 特性Agent 编排需求
OTP Supervision TreesAgent 崩溃时自动重启,不影响其他 Agent
Process Isolation一个 Agent 失败不会级联
GenServer状态机管理 Sprint 板生命周期
并发模型天然支持数百个 Agent 同时运行
> "The BEAM VM's OTP supervision trees give Symphony exactly what an agent orchestrator needs: fault-tolerant process isolation. When one agent crashes (and they will), it triggers a supervised restart with full error context while every other agent continues working."

3.3 Symphony 的工作流

1. 人类在 Linear 创建详细 Issue 2. Symphony 检测 Issue,创建隔离 workspace 3. 派遣 Codex Agent 到 workspace 4. Agent 写代码、运行测试、产出 artifact 5. Symphony 更新 Issue 状态,可选创建 PR 6. 人类只负责 review PR,不管理 Agent

Lopopolo 说团队的工作流程已经是:Beach. Margarita. Linear.

---

四、具体工程实践:Harness Engineering 的 10 个技术密码

4.1 极速构建循环(1 分钟法则)

> "One minute became the upper bound for the inner loop."

Agent 的工作效率与反馈循环速度直接相关。如果测试/构建超过 1 分钟,Agent 的"注意力"会断裂。Lopopolo 团队反复重构构建系统,确保 Agent 永远不会等待。

4.2 Agent 可读性优先(Agent-Legible > Human-Legible)

团队刻意优化代码库让Agent 更容易理解,而不是人类:

  • 大量使用结构化的 SPEC.md
  • ADR(Architecture Decision Records)用 markdown 写,让 Agent 能读取
  • 自定义 ESLint 规则嵌入每个 PNPM 包
  • "Wholesome" 结构测试:断言代码结构本身(包隐私、依赖边界、Zod schema 去重)

4.3 自定义 ESLint 规则 + 审查 Agent

团队写了一套 ESLint 规则来编码"工程品味":

  • 强制使用共享工具函数(防止 Agent 在局部优化)
  • 依赖边层层约束
  • Schema 去重检查
这不是给人类看的,是给 Agent "自我审查"用的。

4.4 SPEC.md 驱动开发

每个功能都有高保真 SPEC,Agent 根据 SPEC 实现。SPEC 成为真正的"源代码",实现代码只是编译产物。

4.5 Ghost Libraries(幽灵库)

> "We distribute [Symphony] as a spec, which folks are calling Ghost Libraries on Twitter."

不需要共享实际代码——只需要共享高保真 SPEC,Agent 可以从 SPEC 重建整个系统。这是"代码即SPEC"的终极形态。

4.6 即时上下文注入(Just-in-Time Context Injection)

Agent 不需要知道整个代码库——只需要在需要时注入相关上下文。这解决了百万行代码库的上下文窗口问题。

4.7 源码级结构测试

不是行为测试,是结构测试:

  • 包结构是否正确?
  • 依赖图是否违规?
  • 是否有重复实现?
  • 类型边界是否被尊重?

4.8 基于角色的审查 Agent(Persona-Based Review Agents)

不同 Agent 扮演不同角色审查代码:

  • 安全审查员
  • 性能审查员
  • API 设计审查员

4.9 可观测性闭环

Agent 不仅写代码,还写监控:

  • 自动生成 Grafana dashboard JSON
  • 自动生成告警规则
  • Agent 收到告警后自动排查和修复

4.10 技能蒸馏(Skill Distillation)

Agent 学到的有效工作模式被提取为可复用"技能",分享给其他 Agent。整个团队的学习曲线被压缩。

---

五、人类的终极武器:当代码变成自来水,什么不会贬值?

Lopopolo 的演讲结尾回到了一个根本问题:如果代码真的免费了,工程师的价值在哪里?

他的答案是:

5.1 意图定义(Intent Definition)

Agent 能生成无数满足需求的方案,但只有人类能定义"真正的意图"——商业逻辑、用户体验、伦理边界。

5.2 约束设计(Constraint Design)

> "在生成能力无限溢出的时代,'不能做什么'比'能做什么'更稀缺。"

安全红线、法规合规、成本上限、品牌调性——这些"禁飞区"需要人类划定。

5.3 系统思维(Systems Thinking)

> "To let the model cook, you have to step back... constantly asking, where is the agent making mistakes? Where am I spending my time? How can I not spend that time going forward?"

从调试代码转向调试系统。从"这个功能怎么实现"转向"这个系统怎么让 Agent 更好地实现功能"。

5.4 品味与判断(Taste & Judgment)

工程品味不会过时——但表现方式变了:

  • 以前是"这行代码写得好不好"
  • 现在是"这个 Harness 设计得好不好"
  • 以前是"这个函数命名是否清晰"
  • 现在是"这个 SPEC 是否足够完整让 Agent 不跑偏"
---

六、费曼视角:Harness Engineering 为什么重要?

如果把软件工程比作驾驶:

  • 传统编程 = 你亲手驾驶(写每一行代码)
  • Copilot 时代 = 自动驾驶辅助(AI 帮你打方向盘,但你盯着)
  • Harness Engineering = 你设计交通规则和道路系统,让 5000 辆车自动驾驶
真正的转变不是"谁写代码",而是"代码的角色从资产变成消耗品"。当代码像自来水一样廉价,真正的价值转移到了让水流动的基础设施——Harness。

Lopopolo 的团队用 5 个月证明了一个临界点:当 Harness 足够完善,Agent 可以独立完成完整的软件工程生命周期。

这不是"AI 让程序员失业"的故事。这是"程序员进化成系统设计师"的故事。

> "The real bottleneck in AI-native software development is now human attention rather than tokens."

---

参考链接

  • 演讲原文(frontiermodels.cc):https://frontiermodels.cc/video/harness-engineering-how-to-build-software-when-humans-steer-agents-execute-ryan-lopopolo-openai/
  • Latent Space 专访:https://www.latent.space/p/harness-eng
  • OpenAI 官方博客(2026-02-11):Harness engineering: leveraging Codex in an agent-first world
  • Symphony GitHub:https://github.com/openai/symphony
  • liwenye.cn 中文分析:https://liwenye.cn/从写代码到设计代码生产系统-宝玉风格/
---

#HarnessEngineering #驾驭工程 #RyanLopopolo #OpenAI #Symphony #TokenBillionaire #模糊编译器 #AI编程 #AgenticCoding #软件工程革命

讨论回复 (0)