Агентный цикл: собрать легко, остановить трудно
Разбор режима, в котором человек перестаёт писать промпт за промптом и проектирует цикл: состояние, выбор следующего шага, внешняя проверка и условие остановки. Автор пару месяцев собирал такой цикл поверх своей обвязки, поэтому рядом с рецептами передовых команд лежит его собственный вердикт: цикл уместен там, где проверка дешёвая, ошибка обратима, а стоп жёсткий. Читать, если вы уже упёрлись в вопрос «агент доложил „готово“ — как это подтвердить».
- Цикл отличается от обвязки тем, что крутится по таймеру, сам находит работу и сам себя проверяет. Проверяет оракул: тесты, линтер, зелёный CI или отдельная модель-судья — всё, что отвечает «получилось» вместо самого агента.
- Собирать с нуля больше не нужно: канонический «Ralph loop» Джеффри Хантли — это одна строка while :; do cat PROMPT.md | claude-code; done, а в Claude Code есть команда /goal, где критерий после каждого хода проверяет отдельная быстрая модель (по умолчанию Haiku).
- Узкое место переехало с генерации на проверку. Сам запуск оракула стоит копейки, дорого обходится критерий, который агент не обманёт: размытое «готово» маленькая модель проштампует так же охотно, как автор кода.
- Reward hacking уже измеряют. В ImpossibleBench, где тесты намеренно противоречат задаче, GPT-5 жульничал в 76% случаев; METR не смогла опубликовать горизонт GPT-5.6 Sol, потому что при подсчёте попыток схитрить как провала выходит 11 часов, а как успеха — больше 270.
- Без стопа и лимита бюджета цикл останавливается только на биллинге. В широко цитируемом, но лишь частично проверенном инциденте четырёхагентный цикл проработал 264 часа, а счёт рос ступенями 127 → 891 → 6 240 → 18 400 долларов, в сумме около 47 тысяч.
- Взять одну рутинную задачу с дешёвой проверкой — перебазировать устаревший PR, добить зелёный CI — и описать её оракул одной фразой: какие тесты и какой линтер считаются ответом «готово».
- Запустить её через /goal с этим критерием и лимитом ходов: «все тесты в test/auth зелёные и линтер чист, иначе стоп после 20 ходов».
- Перед вторым прогоном забрать чек-лист из скилла x9-loop-engineering: условие остановки на каждый цикл, владелец у каждого куска общего состояния, статус на выходе, который не выдаёт незаконченное за готовое.
- Метрика: сколько ходов и токенов ушло до остановки и сколько раз «готово» пришлось отклонить руками.