Петля Карпати: как заставить ИИ работать, пока вы спите

Большинство до сих пор работает с ИИ так же, как с поисковиком в 2005 году. Написал запрос, прочитал ответ, написал следующий. Модель ничего не делает, пока вы ее не толкнете, и весь прогресс держится на вас.
Пару лет этого хватало. Сейчас те, кто выжимает из ИИ в разы больше, строят циклы: задают цель и отпускают агента работать до результата. Самым громким примером такого подхода стал Андрей Карпати.
Что такое цикл
Промпт дает одну инструкцию и один ответ, а что делать дальше, решаете вы. Цикл получает цель и крутится, пока ее не достигнет. Модель сама выясняет, что нужно сделать, планирует, выполняет, проверяет результат и, если до цели еще далеко, подает результат обратно на вход. Вы формулируете задачу один раз.
Держится цикл на трех вещах. Первая называется верификатором. Это тест, который проходит или падает, метрика, которая растет или снижается, сборка, которая компилируется или нет. Без такой проверки агент раз за разом соглашается сам с собой и сам себе ставит оценки.
Вторая вещь называется состоянием. На каждом проходе модель должна знать, что уже пробовала, иначе она повторяет одну и ту же ошибку. Хватит небольшого файла, где записано, что сделано, что сломалось и что дальше. Завтрашний запуск продолжит с того же места.
Третья вещь отвечает за остановку. Цикл без выхода крутится, пока не добьется своего, не сломается или не опустошит счет. В рабочем цикле всегда два выхода: цель достигнута или сработал жесткий лимит вида «после N попыток остановись и отчитайся».
Нужен ли вам цикл
Цикл окупается, только когда выполнены сразу четыре условия. Задача повторяется хотя бы раз в неделю, иначе затраты на настройку не вернутся, и разовую работу лучше закрыть одним хорошим промптом. Проверка автоматизирована: тесты, тайпчекер, линтер или сборка могут забраковать работу без вашего участия. Если такой проверки нет, вы снова читаете каждый дифф. Бюджет на токены выдерживает потери, ведь цикл перечитывает контекст, повторяет попытки и исследует варианты, и все это стоит денег независимо от результата. И у агента есть настоящие инструменты: логи, среда для воспроизведения, возможность запустить свой код и увидеть, что сломалось. Без них он работает вслепую.
Если вы на потребительском тарифе с ограничением токенов, тяжелый цикл упрется в лимит или в кошелек раньше, чем принесет пользу. Инженерия циклов работает, просто большинству пока хватит облегченной версии.
Как устроена петля Карпати
В марте 2026 года Карпати выложил на GitHub репозиторий autoresearch. Три файла, около 630 строк кода. За месяц проект собрал больше 66 000 звезд, а журнал Fortune дал подходу имя: The Karpathy Loop.
Устройство почти до смешного простое. Файл train.py содержит скрипт обучения, и это единственный файл, который агенту разрешено менять. Файл prepare.py оценивает модель, и его агент трогать не может: иначе он упростил бы тест вместо того, чтобы улучшать модель. В program.md лежат инструкции: что исследовать и какие ограничения соблюдать.
Агент читает код, предлагает изменение, обучает модель пять минут, смотрит, стало ли лучше, коммитит удачное изменение или откатывает неудачное и начинает снова. Вы ложитесь спать, а утром получаете журнал экспериментов и, если повезет, модель получше. Человек пишет только program.md, все остальное делает агент.
Что из этого вышло
Карпати натравил цикл на модель, которую до этого долго и тщательно настраивал вручную, опираясь на двадцать лет опыта. За два дня агент провел 700 экспериментов и нашел 20 улучшений, которые автор пропустил. Например, в механизме внимания не хватало скалярного множителя, из-за чего внимание слишком размазывалось по головам. Фаззер такое не поймает. Внимательный человек мог бы найти, но после двенадцатого эксперимента люди устают, а агент нет.
Глава Shopify Тоби Лютке запустил цикл на ночь на внутренней модели. Утром качество выросло на 19%, а сама модель стала вдвое меньше прежней: агент оптимизировал под железо и не исходил из того, что больше значит лучше.
Главный вывод Карпати: если у задачи есть объективная метрика, эксперименты не должен проводить человек. Узкое место в нем, и лучше убрать себя из цикла.
Пять деталей рабочего цикла
Любой рабочий цикл, собран он в Claude Code, Codex или на bash-скриптах, состоит из пяти частей, и оба инструмента сейчас поддерживают все пять.
Автоматизация задает ритм. Что-то должно запускать цикл по расписанию, по событию или по триггеру. В Claude Code для этого есть /loop для запуска с периодичностью и /goal для работы до выполнения условия, в Codex есть вкладка Automations. Без этого вы один раз запустили скрипт и забыли о нем.
Скилл хранит знания о проекте, чтобы агент не гадал в каждой сессии: ваши соглашения, шаги сборки, то, чего вы не делаете после инцидента трехмесячной давности. Это один markdown-файл, который читает каждый запуск. Без него цикл каждый раз заново восстанавливает весь контекст проекта.
Субагенты разделяют исполнителя и проверяющего. Модель, написавшая код, слишком снисходительно оценивает собственную работу. Второй агент с другими инструкциями ловит то, в чем первый себя убедил. Исполнитель может быть быстрым и дешевым, ревьюер медленным и строгим, и именно это разделение дает большую часть качества.
Коннекторы позволяют циклу действовать в вашей реальной среде: читать трекер задач, открывать PR, писать в Slack, обновлять тикеты в Linear. Агент перестает присылать «вот исправление» и сам выкатывает его, а утром сообщает вам об этом.
Верификатор работает как шлагбаум: тест, проверка типов или сборка, которые автоматически отклоняют плохую работу. Остальные детали обслуживают процесс, этот делает цикл настоящим. Без него вы всю ночь платите за то, что агент соглашается сам с собой.
Цикл поверх цикла
В том же марте 2026 года на arXiv вышла статья Bilevel Autoresearch: Meta-Autoresearching Itself. Авторы задали простой вопрос: если автоисследование само является исследованием, можно ли автоматически исследовать его самого?
Они построили второй цикл над первым. Внутренний делает то же, что и у Карпати: предлагает изменение, обучает, оценивает, оставляет или отбрасывает. Внешний наблюдает за его работой, читает код и трассировки, находит места, где поиск застревает, и пишет новый Python-код, который меняет саму стратегию поиска. Затем этот код встраивается во внутренний цикл, и тот запускается снова.
На бенчмарке Карпати по предобучению GPT результат оказался в пять раз лучше обычного одиночного цикла: -0.045 против -0.009 по val_bpb. Оба цикла использовали одну и ту же LLM, так что для мета-уровня более умная модель не нужна, выигрыш дала архитектура.
Внешний цикл заметил, что внутренний постоянно скатывается в одни и те же шаблоны поиска. У модели есть априорные представления о том, какие оптимизации стоит пробовать, и она возвращается к ним, даже когда они перестали работать. Внешний цикл ломал эти шаблоны и заставлял исследовать направления, которых модель инстинктивно избегала. Статья заканчивается мыслью, что если автоисследование способно исследовать само себя, то оно может так же улучшать что угодно с измеримой целью.
Попробуйте прямо сейчас
Чтобы почувствовать механику, Claude Code или Codex не нужны. Вставьте этот промпт в любую LLM:
Ты работаешь в цикле, пока задача не достигнет планки.
ЗАДАЧА:
[опиши, что именно нужно получить]
КРИТЕРИИ УСПЕХА (строго):
- [критерий 1]
- [критерий 2]
- [критерий 3]
ПРОТОКОЛ ЦИКЛА, повторяй на каждом ходу:
1. ПЛАН: назови один следующий шаг.
2. ДЕЛАЙ: создай или улучши результат.
3. ПРОВЕРКА: оцени результат от 1 до 10 по каждому критерию.
Будь предельно честен и перечисли, что еще слабо.
4. РЕШЕНИЕ: если все критерии на 8 и выше, напиши FINAL и остановись.
Иначе напиши ITERATING и начни заново с самого слабого места.
ПРАВИЛА:
- Не называй работу готовой, пока все критерии не наберут 8 или выше.
- Каждый проход исправляет самую низкую оценку из прошлой проверки.
- Не задавай мне вопросов. Делай разумное допущение и продолжай.
Начинай.Модель пишет черновик, оценивает его по вашим критериям, находит слабое место, переписывает и повторяет, пока не возьмет планку. Это уже цикл, собранный из одного абзаца. Ограничения очевидны: запускаете его по-прежнему вы, расписания и сохраненного состояния нет, закрыли вкладку и все пропало. Для полноценного автономного цикла нужно добавить автоматизацию, файл состояния и проверку.
Чего цикл не исправит
Циклы меняют работу, но вас из нее не убирают. Две проблемы с ростом качества цикла только обостряются.
Первая называется долгом понимания. Чем быстрее цикл выдает код, который вы не писали, тем шире разрыв между тем, что лежит в репозитории, и тем, что вы на самом деле понимаете. Хорошо отлаженный цикл начисляет на этот разрыв сложные проценты. День, когда придется отлаживать систему, которую никто в команде не читал, обойдется дороже всех потраченных токенов.
Вторая проблема называется когнитивной капитуляцией. Когда цикл работает сам, возникает соблазн перестать иметь мнение и принимать все, что он вернул. Проектирование цикла помогает, если подходить к нему с головой, и вредит, если вы строите цикл, чтобы не думать.
Два человека могут собрать одинаковый цикл и получить противоположный результат. Один быстрее движется в работе, которую глубоко понимает. Другой с его помощью избегает понимания вообще. Цикл этой разницы не видит, вы видите.
Карпати перестал писать код, Борис Черни перестал писать промпты, и оба продолжают думать. Если запомнить из статьи одну вещь, пусть будет эта.
Источник: статья codila в X






