我如何使用19个AI代理来设计物理引擎(Tournament Architecture)

发布: (2026年2月15日 GMT+8 04:30)
10 分钟阅读
原文: Dev.to

Source: Dev.to

我正在构建一个名为 PISTON 的发动机模拟器。
它基于第一性原理预测马力和扭矩——真实的热力学,不进行曲线拟合,也没有任何修正系数。目前在 22 台经过验证的发动机上,误差为 8.08 % HP,涵盖从本田 Beat 轻型车到雪佛兰 LT4 增压 V8。

有趣的并不是物理本身,而是 的构建方式。

每个主要功能都会经历一次 tournament(竞赛):

8 planners → 8 reviewers → 3 judges

19 个 AI 代理各自独立工作,竞争产生最佳实现。

单代理开发的问题

当单个 AI 代理设计并实现一个复杂功能时,会出现:

  • 锚定偏差 – 它首先想到的方法会占主导。
  • 盲点 – 没有人挑战它的假设。
  • 局部最优 – 它在最初的框架内进行优化,而不是探索其他方案。
  • 自我群体思维 – 相同的偏差在设计 → 实现 → 测试的各阶段叠加。

对于诸如预测燃烧模型(错误的燃烧速率方程可能导致 30 % 的误差)之类的任务,单一代理并不足够。

赛事结构

第1阶段:规划(8名代理)

八位独立的规划者各自收到相同的简报:

  • 特性描述(例如,“排气调校模型”)
  • 技术要求(例如,“特征线法波传播”)
  • 集成约束(它如何适配现有代码库)
  • 验证目标(预期的精度提升)

每位规划者需输出一份完整的设计文档,涵盖数据结构、算法、方程式、文件组织以及测试策略。规划者之间相互隔离——不会看到其他人的成果。

为什么是8?
八个能够产生真正多样的方案。少于这个数目往往只能得到同一主题的变体;而八个则可靠地出现 3‑4 种根本不同的架构。

第2阶段:评审(8名代理)

八位独立的评审者各自收到全部八份方案。他们的任务是:

  1. 对每份方案进行评分,从五个维度评估:
    • 物理精度
    • 代码质量
    • 性能
    • 可维护性
    • 集成风险
  2. 识别所有方案中的最强要素
  3. 推荐一个混合方案,将最佳部分组合起来。
  4. 标记物理错误或概念误解

评审非常严苛。常见的发现包括:

  • “方案 C 使用了未进行解离修正的绝热火焰温度——这会导致 NOₓ 预测偏高 40 %。”
  • “方案 F 的数据结构在每个曲轴角步需要 O(n²) 遍历——在每个循环 720 步的情况下不可接受。”
  • “方案 A、 D、 G 都使用了相同的 Woschni 关联式,但系数约定不同——只有 D 的是正确的。”

第3阶段:判决(3名代理)

三位评委收到全部八份方案 以及 全部八份评审。每位评委独立进行:

  • 选出获胜方案(或推荐特定要素的混合方案)。
  • 撰写详细的理由说明
  • 提供具体的实现指导

决策逻辑

评委一致性结果
全部 3 人一致采用该方案。
3 人中 2 人一致采用多数方案,并记录异议。
无一致意见依据更明确的标准进行第二轮评审。

Source:

实际案例:预测燃烧

燃烧模型大赛是最具影响力的环节。它用基于物理的燃烧速率预测取代了我们的 Wiebe 曲线拟合(本质上是查找表)。

产生的方案

#方法
2Tabaczynski 吞噬‑燃烧(最终获胜者)
2分形火焰模型
1带 PDF 的准维模型
1Blizard‑Keck
1k‑ε 湍流的 Eddy‑燃烧
1混合方法

关键审稿人发现

  • Tabaczynski + Zimont 湍流火焰速度 提供了最坚实的物理基础。
  • 分形方法 优雅,但实现复杂度约 3 倍
  • 两个方案出现了 层流火焰速度误差(Metghalchi‑Keck 与 Gülder —— 审稿人指出 Gülder 需要不同的曲线拟合系数)。

法官决定

所有三位法官 一致选定 Tabaczynski 吞噬‑燃烧方案,具体如下:

  • Zimont 湍流火焰速度(校准系数 (A_z = 0.56))
  • k‑K 湍流模型(考虑翻滚/旋涡,(C_K = 0.50))
  • Metghalchi‑Keck 层流火焰速度
  • 敏感性测试:点火正时、压缩比、凸轮正时

两次独立的校准运行后收敛到 (A_z = 0.52) 和 (0.56)。最终模型仅依据 发动机几何形状 预测燃烧——无需针对每台发动机进行调校。

结果: 8.3 % HP MAPE,与之前的曲线拟合方法相差不到 1 %,但现在它 能够推广 到未见过的发动机。

为什么这样有效

  1. 真正的多样性 – 八个代理独立解决同一问题,产生根本不同的解决方案,而不是“八个略有差异的 GPT 第一次直觉”。
  2. 对抗性审查 – 审查者有充分动机寻找缺陷;他们从不审查自己的工作。
  3. 合成胜于选择 – 混合方案(“采用方案 C 的数据结构、方案 A 的核心算法以及方案 F 的错误处理”)往往优于任何单一方案。
  4. 有据可查的推理 – 每场比赛产生约 100 页的技术文档,保留了选择特定方法的原因,附有引用和量化比较。

数字

跨越 12 场锦标赛(燃烧、敲击、强制增压、VE/赫姆霍兹、排气调校、热传递、摩擦、发射…

原始内容已截断;如有需要请继续。

统计概览

  • 每场比赛的平均计划数: 8
  • 每场比赛的平均评审数: 8
  • 裁判一致率: 83 % 全体一致,17 % 2‑1 多数
  • 需要第二轮评审(全部在首次评审中解决)
  • 审稿人捕获的物理错误: 34 起,遍及所有比赛
  • 整体验证的引擎数量: 22 个引擎,44 个数据点(每个包含 HP + TQ)

何时 使用此方法

此方法对以下情况来说是大材小用:

  • 简单功能(例如,添加 CLI 标志,修正拼写错误)
  • 已经充分理解且有明确最佳实践的问题
  • 时间紧迫的修复

适用场景

  • 物理错误会导致错误结果的功能
  • 逆转成本高的架构决策
  • 任何“够好”还不够好的情况

亲自尝试

该方法适用于任何能够进行技术写作的 AI。关键要素包括:

  • 相同的简报 – 每个规划者获得相同的信息
  • 真正的隔离 – 规划者彼此看不到对方的工作
  • 交叉审查 – 审稿人查看 所有 计划,而不仅仅是一个
  • 独立评判 – 法官之间不相互咨询
  • 保存的产物 – 保留所有内容以供将来参考

PISTON 代码库位于 .

  • 1,141 个测试
  • 22 个已验证的引擎
  • 全部通过锦标赛构建。

0 浏览
Back to Blog

相关文章

阅读更多 »

Vonage 开发者讨论

Dev Discussion 我们希望这里成为一个可以休息并讨论软件开发人性化方面的空间。第一话题:音乐 🎶 说到音乐……