Gauntlet Loop: метод промптинга, который стоял за Claude of Duty
Несколько дней назад Мэтт Шумер показал игру в стиле Call of Duty, которую собрал Claude Opus 5 по одному промпту. Агент работал много часов, сам создал большой флот субагентов, написал около 55 000 строк кода и сгенерировал с нуля каждую текстуру, каждую 3D-модель, каждую анимацию и каждый звук. Шумер не сидел рядом и не направлял процесс.
Пост собрал миллионы просмотров. Качество было заметно выше, чем у других демонстраций Opus 5, поэтому многие решили, что это подделка. Шумер опубликовал и промпт, и весь код: Claude of Duty на GitHub, исходный промпт. Скептики стали запускать этот промпт у себя, рассчитывая доказать, что ничего не работает. Работало. У людей получались полностью играбельные игры, а кто-то перенёс ту же идею на совсем другие задачи.
Ответ на вопрос «почему у него вышло, а у меня нет» оказался простым: разница была в том, как Шумер ставил задачу. Он не позволял агенту сделать один приличный результат и остановиться. Он заставлял агента снова и снова сравнивать свою работу с гораздо более высокой планкой. Шумер назвал этот подход Gauntlet Loop.
Суть метода
Метод работает так. Ведущему агенту дают цель и настоящий пример того, как должно выглядеть хорошо. Ведущий агент сам решает, на какие минимальные куски разбить задачу так, чтобы каждый кусок можно было улучшать по отдельности. У каждого куска свой агент-исполнитель и отдельный агент-критик с чистым контекстом.
Исполнитель что-то делает. Критик сравнивает результат с эталоном. Если эталон выигрывает, критик описывает главный оставшийся разрыв и отправляет работу обратно исполнителю. Исполнитель исправляет. Начинается следующий раунд.
Так продолжается, пока результат не достигнет планки. Скорее всего, вы решите, что результат уже готов, раньше, чем это произойдёт.
Подход работает не только для игр. Его можно применять к коду, сайтам, дизайну продукта, рекламным кампаниям, текстам, исследованиям — везде, где результат можно посмотреть и улучшить.
Сначала нужен настоящий агент
Вставьте промпт в обычный чат с Claude и не ждите того же результата. Нужна агентная среда, такая как Claude Code или Codex. Простыми словами: модель должна уметь работать. Открывать файлы, запускать код, показывать результат, смотреть скриншоты, пользоваться инструментами, что-то менять и создавать других агентов.
По умолчанию Шумер использует Claude Code с Opus 5, особенно для визуальной и творческой работы. У субагентов Claude Code каждый работает в своём чистом контекстном окне, а это как раз то, что нужно независимым критикам.
Codex хорошо работает с серверной частью и другими задачами, где внешний вид результата важен меньше. Он также умеет смотреть на визуальный результат и критиковать его. Но по опыту Шумера Codex заметно слабее Opus 5 именно в создании визуальной части.
Для серьёзных циклов Шумер советует включать режим ultracode (введите /effort и выберите ultracode). Он стоит заметно дороже, но на долгих запусках с множеством агентов лишние усилие обычно дают лучший результат.
Дайте цель, а не свою реализацию
Скажите агенту, что вы хотите. Не говорите ему, как именно это делать.
Исходный промпт Шумера не содержал подробного описания архитектуры. В нём не было списка всех систем игры и не было объяснения, как должен работать рендеринг. По сути там было вот что:
Собери современный шутер от первого лица уровня AAA на Three.js. Распредели работу между субагентами. Прогони каждую важную часть через свой цикл с отдельным и жёстким визуальным критиком. Сравнивай наш результат с настоящим Call of Duty. Если наш проигрывает, продолжай улучшать. Используй ultracode.
Это был почти весь промпт.
Современные модели хорошо умеют сами решать, как подступиться к большой цели. Когда вы прописываете архитектуру, список работ и каждый шаг, вы подменяете собственное суждение модели своим. Дайте ей пункт назначения. Маршрут пусть выберет она.
Дайте настоящую планку
Планка — самая важная часть метода.
«Сделай amazing» — это не планка. «Сделай готовым к продакшену» — тоже не планка. «Продолжай улучшать» — и это не планка.
Агенту нужно что-то конкретное, что он может посмотреть и с чем может сравнить свою работу.
Для игры Шумер взял настоящие скриншоты Call of Duty. Критик должен был смотреть на две картинки рядом, решать, какая лучше, и продолжать, когда наша проигрывала.
Для сайта планкой может быть подборка лучших сайтов в этой категории.
Для текста можно дать абзацы с нужным уровнем ясности и плотности информации. Например, если вам нравится ясность Пола Грэма, можно взять его абзацы как ориентир. Речь не о копировании голоса, а о том, чтобы критик спрашивал: этот абзац не хуже?
Для серверной разработки планкой может быть набор тестов, цель по задержке, проверка восстановления после сбоев, проверка безопасности или эталонная реализация.
Жёсткая планка не обязательно достижима. Игра Шумера не стала лучше Call of Duty. Он остановил запуск, когда улучшения ещё продолжались. Call of Duty дал агенту направление и не дал ему остановиться на уровне «симпатично для ИИ».
Если вы не знаете, какая планка нужна, сделайте поиск планки частью задачи. Не говорите агенту «сам реши, что значит хорошо». Скажите примерно так:
Найди конкретное сравнение или измерение, которое для этой задачи играет ту же роль, что настоящие скриншоты Call of Duty играли для игры Мэтта Шумера Claude of Duty. Объясни, почему это полезная планка, и оценивай каждый раунд по ней.
Дайте агенту разбить работу
Скажите ведущему агенту разбить цель на самые мелкие куски, которые можно улучшать и оценивать по отдельности.
В игре это могут быть пистолет, руки, деревья, кусты, освещение, движение, поведение врагов, звук и отдельные эффекты — у каждого свой цикл.
В статье это могут быть главный тезис, начало, примеры, разделы, абзацы и переходы между ними.
Все эти куски не нужно придумывать заранее. Это должен сделать ведущий агент. Он понимает, что именно делает, и может решить, какие части стоит разделить, какие лучше оставить вместе, а какие можно выполнять параллельно.
Главное вот что: «сделай игру лучше» — слишком крупная и размытая задача. «Сделай так, чтобы это дерево выигрывало у того дерева с эталонной картинки» — это задача, к которой агент может возвращаться снова и снова.
Никогда не давайте исполнителю оценивать свою работу
Исполнитель и критик должны быть разными агентами.
Исполнитель видел каждое своё решение. Он помнит, почему принял именно его. Поэтому он отлично умеет объяснять, почему его работа хороша.
Вам нужно не объяснение, а независимая оценка.
Создайте свежего агента-критика и дайте ему цель, планку, нужные правила и сам результат. Не давайте ему историю и объяснения исполнителя.
Критик должен вести себя почти как A/B-тестировщик. Он смотрит на наш результат и на эталон, не зная, какой из них чей. И выбирает лучший.
Когда наш вариант проигрывает, критик находит самый крупный значимый разрыв. Исполнитель закрывает этот разрыв. Затем работа снова проходит через Gauntlet Loop.
Критик должен смотреть на настоящий результат: реальные пиксели, работающий продукт, отрисованную страницу, результаты тестов или готовый текст. Он никогда не должен оценивать пересказ, написанный исполнителем.
Пусть работа продолжается
Не говорите «сделай три раунда и остановись». Говорите «продолжай цикл».
В Claude Code есть скилл /loop для повторяющейся агентной работы. Но важнее другое: не должно быть произвольного финального раунда.
Опубликованная игра Шумера ещё улучшалась, когда он её остановил. Когда планка достаточно высока, почти всегда находится следующий разрыв, который можно закрыть.
Вы можете остановиться, когда результат вам нравится, когда улучшения стали слишком мелкими, чтобы иметь значение, или когда вы потратили столько вычислений, сколько готовы потратить.
Смотрите, не мешая
Для долгих запусков скажите агенту создать простую живую HTML-страницу или документ workbench.md и обновлять её по ходу работы.
Не нужно расписывать детали. Просто скажите агенту показывать прогресс так, как удобно для задачи: скриншотами, видео, черновиками, результатами тестов или пояснениями.
Дальше вы открываете страницу с телефона и сразу видите, как меняется работа. Не нужно каждые двадцать минут прерывать агента и спрашивать о прогрессе.
Когда результат вас устроит, возвращайтесь в Claude Code или Codex и останавливайте запуск.
Необязательный проход для сглаживания
Когда много агентов меняют разные части одного артефакта, части могут получиться хорошими по отдельности, но немного несовместимыми.
В конце каждой большой волны можно создать одного свежего агента, который посмотрит на весь результат и сгладит его перед началом следующей волны.
Его работа — не переделывать всё заново. Он должен убедиться, что части работают вместе, убрать конфликты и сделать так, чтобы результат ощущался как одно целое, а не как набор отдельно улучшенных фрагментов.
Это полезно, но это не ядро метода. Ядро остаётся прежним: разбить, собрать, оценить, повторить.
Соберите свой промпт
Вставьте в сильную модель мета-промпт вместе со своей целью. Пусть модель сама выберет планку и напишет итоговый промпт. А этот промпт запустите внутри Claude Code или Codex.
Я хочу прогнать Gauntlet Loop для этой цели:
[ЦЕЛЬ]
Возможные ориентиры или планки качества:
[ОРИЕНТИРЫ]
Выбери самую сильную конкретную планку, которую агент действительно
сможет посмотреть и сравнить со своей работой. Если я ничего не дал,
предложи полезный аналог или измерение, которое для этой задачи играет
ту же роль, что настоящие скриншоты Call of Duty играли для игры
Мэтта Шумера Claude of Duty (прочитай промпт:
https://github.com/mshumer/Claude-of-Duty/blob/main/prompt.md).
Объясни планку в одном предложении.
Затем напиши короткий промпт для Claude Code или Codex в стиле
промпта Мэтта. Чем короче, тем лучше: пусть агент сам решит детали.
Дай ведущему агенту цель и планку, но не давай ему подход.
Скажи ему разбить цель на самые мелкие куски, которые можно
улучшать и оценивать независимо. Для каждого важного куска он должен
создать исполнителя и отдельного критика со свежим контекстом.
Каждый критик обязан смотреть на настоящий результат, сравнивать его
напрямую с планкой (по возможности вслепую, через A/B), находить
главный оставшийся разрыв и отправлять работу на новый раунд.
Продолжай цикл, пока наш результат не победит или я не остановлю запуск.
Пусть ведущий агент ведёт простую живую страницу с прогрессом.
Пусть использует субагентов и ultracode. Не прописывай архитектуру,
точную декомпозицию и фиксированное число раундов. Итоговый промпт
пусть будет коротким, как у Мэтта.
Что сделали другие
Это не проекты Шумера. Люди взяли промпт, направили его на свою задачу и просто запустили. Большинство результатов работает прямо в браузере.
- Kart Royale — гонки на картах, запускаются во вкладке браузера: https://racing.ryancampbell.com/
- Der Koloss — кооперативный зомби-шутер на четверых с голосовым чатом: https://www.derkoloss.com/
- Pastel Nuketown — арена-шутер в пастельных тонах: https://nuketown.luckeysystems.com/
- Dream Logic — играбельная прямо в браузере: https://voidtalker.com/games/dream-logic.html
- Dungeon Crawler Carnage — подземельный шутер в формате телепередачи: https://dungeon-shooter.fly.dev/
Весь метод сводится к этому. Поставьте амбициозную цель. Дайте агенту планку, которую нельзя обойти словами. Пусть сам решит, как разбить работу. Пропустите каждую часть через независимого критика. И держите циклы дольше, чем пошёл бы почти любой другой человек.
Релевантные ссылки
- Claude of Duty на GitHub — промпт и все 55 000 строк кода игры
- Исходный промпт
- workbench.md — инструмент для длинных агентных запусков
Источник: https://somethingbig.ai/gauntlet-loop