@mattshumer_: 这太疯狂了。如果你想学习如何构建这样的游戏,我制作了一份指南:https://somethingbig.ai/gauntlet-loop
摘要
Matt Shumer 解释了他的“Gauntlet Loop”提示技术,该技术使 AI 代理能够通过针对高质量参考示例进行迭代,仅凭一条提示就构建出一款可完整游玩的《使命召唤》风格游戏。他还分享了一份开源指南和提示,供其他人复现这一结果。
查看缓存全文
缓存时间: 2026/08/04 10:05
如何运行 Gauntlet Loop
来源:https://somethingbig.ai/gauntlet-loop
几天前,我发布了一款由 Claude Opus 5 仅凭一个提示词构建的《使命召唤》风格游戏。
具体来说,我只给了 Claude Code 一个提示词(https://x.com/mattshumer_/status/2081100592689324502),然后就没有再管它。它花了大量时间工作,派生出庞大的子智能体集群,编写了大约 55,000 行代码,并且完全在代码中生成了每一个纹理、网格、动画和音效。我完全没有坐在旁边指挥它。
一个提示词。许多小时。大约 55,000 行代码,每一个纹理、网格、动画和音效都从零生成。在 X 上观看运行过程 →(https://twitter.com/mattshumer_/status/2081054356405731740)
发起这一切的那条帖子。那条帖子迅速获得了数百万次浏览。(https://x.com/mattshumer_/status/2081054356405731740?s=20)由于它的质量远超其他 Opus 5 演示,很多人理所当然地称其为假的。于是,我公开了提示词,并将所有代码开源(https://github.com/mshumer/Claude-of-Duty)。
然后发生了一件相当有趣的事:那些持怀疑态度的人开始自己运行这个提示词的变体,以为自己能证明它行不通。当然,它成功了,这些人最终得到了功能完整的游戏!(https://x.com/0xRishi/status/2081230708593590378?s=20)还有人把这个思路改编后用于完全不同的工作类型。
我理解人们为什么会怀疑……我展示出的质量水平比其他人在用的方法高出太多了。那么,为什么我能做到?区别在哪里?
区别在于我给智能体设定提示词的方式。我没有让它产出一个像样的结果就停下来,而是让它持续将自己的工作与一个高得多的基准进行比较。
我开始把这种方式称为 Gauntlet Loop。
而且它不仅适用于游戏。你可以用它来做代码、网站、产品设计、营销活动、写作、研究,或者几乎所有输出可以被检查并改进的事情。
本文内容
- 核心理念(https://somethingbig.ai/gauntlet-loop#the-whole-idea)
- 首先,使用真正的智能体(https://somethingbig.ai/gauntlet-loop#use-an-agent)
- 给它目标,而不是你的实现方式(https://somethingbig.ai/gauntlet-loop#the-goal)
- 给它一个真正的基准(https://somethingbig.ai/gauntlet-loop#the-bar)
- 让智能体拆解工作(https://somethingbig.ai/gauntlet-loop#split-the-work)
- 绝不让构建者自己给自己打分(https://somethingbig.ai/gauntlet-loop#separate-critic)
- 让它持续进行(https://somethingbig.ai/gauntlet-loop#keep-going)
- 不加干预地观察它(https://somethingbig.ai/gauntlet-loop#watch-it)
- 一个可选的平滑处理环节(https://somethingbig.ai/gauntlet-loop#smoothing-pass)
- 构建你自己的 Gauntlet Loop 提示词(https://somethingbig.ai/gauntlet-loop#build-your-own)
- 人们用它做出了什么(https://somethingbig.ai/gauntlet-loop#built)
核心理念
Gauntlet Loop 的工作方式如下:
你给一个主导智能体一个目标,以及一个“优秀是什么样子”的真实示例。主导智能体负责决定如何将目标拆分成可以独立改进的最小单元。每个单元都有自己的构建者,以及一个拥有全新上下文的独立评审者。
构建者做出一个成果。评审者将其与参考示例进行比较。如果参考示例获胜,评审者会说明最大的差距在哪里,然后把工作退回给构建者。构建者修复它。接着再开始下一轮。
这个过程一直持续,直到结果达到基准(或者更有可能的是,你决定它已经准备好了)。
首先,使用真正的智能体
不要把 Gauntlet Loop 粘贴到普通的 Claude 聊天窗口里,然后期望得到同样的结果。
你需要在一个智能体化环境中运行它,例如 Claude Code 或 Codex。简单来说,这意味着模型可以真正地工作:打开文件、运行代码、渲染结果、检查截图、使用工具、修改东西,以及派生其他智能体。
目前我的默认选择是 Claude Code 搭配 Opus 5,尤其是用于视觉或创意类工作。Claude Code 的子智能体可以各自运行在干净独立的上下文窗口中,这正是你想要独立评审者时所需要的。
Codex 在后端工程以及视觉创建不那么重要的其他工作方面非常出色。它也很擅长查看视觉结果并对其提出批评。但根据我的经验,它在首先创造视觉结果方面远不如 Opus 5。
对于严肃的 Gauntlet Loop,我还建议开启 ultracode(输入 /effort 并选择 ultracode)。它成本高得多,但额外投入的努力通常会在大型多智能体运行中产生更好的成果。
1. 给它目标,而不是你的实现方式
告诉智能体你想要什么。不要告诉它具体如何实现。
我最初的游戏提示词并没有包含详细的架构。它没有列出游戏需要的所有系统,也没有解释渲染器应该如何工作。
它基本上说的是:
在 Three.js 中构建一款现代 AAA 品质的第一人称射击游戏。将工作拆解给子智能体。让每一个重要环节都经过自己的循环,并配有独立、严苛的视觉评审者。将我们的输出与真正的《使命召唤》并排比较。如果我们输了,就继续改进。使用 ultracode。
这几乎就是全部提示词内容了。
最新的模型通常非常擅长决定如何应对一个宏大目标。当你规定好架构、工作流和每一步时,你就是在用你自己的判断取代模型的判断。
给它目的地。让它自己选择路线。
2. 给它一个真正的基准
基准是最重要的部分。
“让它变得惊艳”不是一个基准。“让它达到生产级”或“持续改进”也不是。
智能体需要一些具体的、可以亲自检查并与自己的工作进行比较的东西。
对于游戏,我使用了真实的《使命召唤》截图。评审者会被要求将两者并排查看,判断哪个更好,只要我们的输了就继续。
对于网站,基准可能是该类别中一批真正最好的网站。
对于写作,你可以给它一些拥有你想要的清晰度和信息压缩水平的段落。例如,如果你欣赏 Paul Graham 的清晰,你可以用他的一组段落作为参考……不是为了模仿他的风格,而是为了让评审者追问:你文章中的每一段是否至少同样清晰。
对于后端工程,基准可以是一套测试套件、延迟目标、故障恢复测试、安全审查或参考实现。
一个高难度的基准并不需要现实可达。我的游戏并没有变得比《使命召唤》更好。我在它仍在改进时停止了运行。《使命召唤》给了智能体一个方向,避免它在游戏仅仅看起来“在 AI 生成物里算不错”的时候就停下来。
当你不知道正确的基准是什么时,就把寻找基准本身变成任务的一部分。不要简单地告诉智能体自己去决定“好”是什么意思。而应该说:
找到一个具体的比较对象或衡量指标,它对于这个任务所起的作用,等同于 Matt Shumer 的 Claude of Duty 项目中真实《使命召唤》截图对游戏的作用。解释为什么它是一个有用的基准,然后每一轮都依据它来评判。
3. 让智能体拆解工作
告诉主导智能体将目标拆分成可以独立改进和评判的最小单元。
对于一个游戏,枪械、手、树木、灌木、光照、移动、敌人行为、音效和各个特效可能都值得拥有自己的循环。
对于一篇文章,论点、开头、例子、章节、段落和过渡也许需要分别评判。
你不应该提前决定所有这些部分。让主导智能体去做。它理解这个产物,并且能决定哪些部分应该分开、哪些应该在一起、哪些可以并行运行。
重要的是:“让游戏更好”太大、太模糊了。“让这一棵树在参考图中与那棵树相比具有优势”给智能体提供了一个它可以反复攻克的问题。
4. 绝不让构建者自己给自己打分
构建者和评审者应该是独立的智能体。
构建者见过自己做过的每一个决定。它记得自己为什么这么做。这使得它非常擅长解释为什么自己的工作合理。
你不需要“合理”。你需要的是独立判断。
派生一个全新的评审者,给它目标、基准、相关规则和实际产物。不要给它构建者的历史记录或解释。
评审者的行为应该几乎像 A/B 测试者。它同时查看我们的输出和参考,而且不被告知哪个是哪个。它选出更好的那个。
当我们输了时,它会找出最有意义的差距。构建者修复那个差距。然后工作再次进入 Gauntlet 循环。
评审者应该检查真实的东西:真实的像素、运行中的产品、渲染出的页面、测试结果或完成的文稿。它绝不应该评审构建者写出的摘要。
5. 让它持续进行
不要告诉它做三轮就停下来。
告诉它继续循环。Claude Code 内置了一个 /loop 技能,用于重复的智能体工作,但更重要的理念是:不应存在任意设定的最后一轮。
我发布的那款游戏在我停止时仍在改进。只要基准足够高,几乎总会有另一个差距等着去填补。
你可以在以下情况下停止:你满意结果时、改进小到无所谓时,或者你已经花了愿意花费的计算量时。
不加干预地观察它
对于长时间运行,告诉智能体创建一个简单的实时 HTML 页面(https://shumer.dev/how-i-prompt-fable)或 workbench.md 文档(https://workbench.md/),并在工作过程中持续更新它。
你不需要过度规定其中的具体细节(是的,这是一个我会反复提起的主题!)……只需告诉它用适合任务的方式随时间展示进度:截图、视频、草稿、测试结果、解释或其他媒体。
然后你就可以用手机打开那个页面,立即看到工作的演变过程。你不需要每二十分钟打断一次智能体,要求它汇报进展。
当你满意时,回到 Claude Code 或 Codex,停止运行。
一个可选的平滑处理环节
当许多智能体在同时修改一个产物的不同部分时,各个部分可能会各自变得很好,但彼此之间略有冲突。
在每一波主要工作结束时,你可以派生一个全新的智能体,在下一波开始前检查完整结果并做平滑处理。
它的任务不是重新设计一切。它应该确保各个部分能协同工作,修复冲突,让结果感觉是一个整体,而不是一堆各自改进过的部分的集合。
这很有用,但它并不是 Gauntlet Loop 的核心。核心仍然是:拆分、构建、评判、重复。
构建你自己的 Gauntlet Loop 提示词
把它和你的目标一起粘贴给一个强模型。让它选择基准并写出最终的提示词。然后在 Claude Code 或 Codex 中运行它生成的提示词。
元提示词
`` I want to run a Gauntlet Loop for this goal:
[GOAL]
Possible references or quality bars:
[OPTIONAL REFERENCES]
Choose the strongest concrete bar that an agent can actually inspect and compare its work against. If I have not supplied one, propose a useful comp or measurement that plays the same role for this task that real Call of Duty screenshots played for Matt Shumer’s Claude of Duty game (read the prompt: https://github.com/mshumer/Claude-of-Duty/blob/main/prompt.md). Explain the bar in one sentence.
Then write a short prompt for Claude Code or Codex in the style of Matt’s prompt (minimal is better here, we want the agent to decide the specifics!).
Give the lead agent the goal and the bar, but let it choose the approach. Tell it to divide the goal into the smallest pieces that can be improved and judged independently. For each important piece, it should fan out a builder and a separate critic with fresh context.
Each critic must inspect the real output, compare it directly with the bar—using a blind A/B comparison when possible—identify the biggest remaining gap, and send it back for another round. Keep looping until our output wins or I stop the run.
Have the lead agent maintain a simple live progress page that shows the work evolving over time.
Have it use subagents and ultracode. Do not prescribe the architecture, exact decomposition, or a fixed number of rounds. Keep the final prompt short, just like Matt’s. ``
这其实就整个方法。
设定一个雄心勃勃的目标。给智能体一个它无法通过花言巧语绕过的高基准。让它自己决定如何拆解工作。让每一部分都经过独立评审者的检验。然后让循环持续运行,比几乎任何人都愿意坚持的时间更长。
人们用它做出了什么
这些都不是我的项目。人们拿起这个提示词,把它指向任何他们想要的东西,然后放手让它运行。其中大多数你现在就可以直接在浏览器中游玩——还有更多在完整游戏目录中(https://somethingbig.ai/games)。
如果你用这个提示词做出了某个东西,并且它应该被收录在这里,请将它提交到游戏目录(https://somethingbig.ai/games#submit)。
Rishi (@0xRishi): 隆重推出 Modern Claudefare
完全使用 Opus 5 在 High Mode 下,基于 @mattshumer_ 的 Gauntlet Loop 原则,耗时数天构建 - 84,100 行代码
包含 4 张受人喜爱的地图的重制: 0:00 - Rust 0:40 - Highrise 0:57 - Nuketown 1:26 - Terminal
单人 & 多人(
相似文章
@mattshumer_: 这是迄今为止我用 Gauntlet Loop 玩过的最棒的游戏。来玩吧,还有无数其他用…
Matt Shumer 展示了一系列使用 Gauntlet Loop(一种 AI 辅助游戏开发框架)构建的游戏,并提供了游玩各种浏览器游戏的链接。
@0xCodez: https://x.com/0xCodez/status/2064374643729773029
一个包含14个步骤的循环工程路线图,指导开发者从手动提示AI编码代理到设计自动化系统,由系统自行处理提示、验证和迭代。
@acherm: 我确认。我用相同的提示词复现了两次,一次得到 CallOf 的变体,另一次是一个类似 FIFA 的游戏。还…
用户确认复现了一个热门的提示词,该提示词可以一次性生成像《使命召唤》和《FIFA》这样的完整游戏,甚至还与10岁的侄子一起对游戏进行了迭代进化。Matt Shumer 的原始推文重点介绍了该仓库和提示词。
@mattshumer_: Claude Opus 5 一次生成了这个游戏。您在这个演示中看到的所有内容都是自定义代码……没有使用任何外部资产……
Claude Opus 5 展示了仅使用自定义代码从头生成整个游戏的能力,且没有使用任何外部资产,这标志着AI驱动游戏开发的一次重大飞跃。
@gregpr07: /goal build GTA 6 这是AGI测试吗?一个提示输入 -> 完整可玩游戏输出?单个提示能有多好?http…
一条推文展示了一个演示,仅凭一个提示就能生成一个可玩的开放城市沙盒游戏,让人联想到GTA 6,暗示了AGI级别的能力。