Промптить агентов больше не нужно. Теперь все инженерят циклы
Лента вдруг заговорила об одном и том же: хватит промптить агентов, пора инженерить циклы. Звучит как очередной модный лозунг, но за ним стоит вполне конкретный сдвиг в том, как вообще устроена работа с ИИ-агентами.
Борис Черни, человек, который сделал Claude Code, сформулировал это прямо: он больше не промптит Claude, у него просто крутятся циклы, а его работа в том, чтобы эти циклы писать. Создатель одного из самых популярных кодинг-агентов на планете сам им не управляет вручную. Чем же он тогда занимается?
В этом и есть идея loop engineering, инженерии циклов. Давайте разберём, почему это сложнее, чем кажется.
Сам цикл уже давно решён
Агент это не волшебная коробка. В основе это обычный цикл. Модель читает контекст, просит вызвать инструмент, вы его запускаете и возвращаете результат обратно. Модель снова читает, и так по кругу, пока она не перестанет просить инструменты. Модель, инструменты, контекст, повтор.
И вот что удивляет людей: этот цикл уже решён. Любой серьёзный фреймворк для агентов приходит примерно к одним и тем же шести строчкам. Никто не конкурирует на уровне самого while. Если цикл тривиален, то над чем тогда все работают?
Рассказываю и объяняю на пальцах как выжать из Claude и других ИИ Максимум у себя в телеге! . Если тг не пашет - Max. max.ru/ai_machinelearning_big_data
Работа ушла за пределы модели
Центр тяжести в ИИ постоянно смещается от самой модели. Сначала был промпт-инжиниринг, то есть слова, которые вы отправляете. Потом контекст-инжиниринг, то есть всё, что видит модель, а не только ваши инструкции. Дальше harness-инжиниринг, то есть код вокруг модели, который запускает инструменты, хранит состояние и обрабатывает ошибки. И наконец loop engineering, автономный цикл, который ведёт всю эту конструкцию к цели.
Каждый слой оборачивает предыдущий. Промпты никуда не делись, просто стало понятно, что промпт это маленькая часть гораздо большей системы. У LangChain это сформулировано чётко: агент равен модель плюс harness. Если вы не модель, значит вы harness.
И вот наблюдение, которое меняет приоритеты: harness сейчас важнее самой модели. Команды оставляли модель неизменной, меняли только код вокруг неё и прыгали из середины бенчмарка в топ-пятёрку. Тот же мозг, другой цикл.
Сложность первая: понять, когда остановиться
Об этой проблеме никто не предупреждает. Когда агент перестаёт просить инструменты, он завершил свой ход. Это не то же самое, что выполнить задачу. Представьте кодинг-агента: он пишет код, оглядывается, видит какой-то прогресс и объявляет, что готово. А тесты всё ещё падают. Финальное сообщение завершает ход, а не задачу, и путаница между этими двумя вещами самая частая причина поломок.
Поэтому хорошие циклы останавливаются по правильным причинам, и вы ставите сразу несколько тормозов. Жёсткий лимит итераций, чтобы застрявший агент не крутился вечно. Потолок по токенам, деньгам и времени. Детектор отсутствия прогресса: если агент повторяет один и тот же вызов с теми же аргументами, он буксует. И главное, настоящая проверка завершения: автоматическое условие, которое доказывает, что работа сделана. Готово должно означать, что тесты проходят, а не что агент доволен собой.
Сложность вторая: держать контекст чистым
Длинные циклы гниют изнутри. Чем больше ходов делает агент, тем больше мусора копится в его контексте: старые выводы инструментов, тупики, устаревшие рассуждения. Качество падает по мере роста этой кучи, и это явление называют context rot. В цикле это раскручивается спиралью: испорченный контекст даёт решение хуже, оно добавляет шума, шум портит контекст ещё сильнее. Агент тупеет тем дольше, чем дольше работает.
Бороться с этим помогает отношение к контексту как к бюджету, а не как к ведру. Компактизация: когда разговор разрастается, вы его сжимаете в резюме и продолжаете с него. Выгрузка: большие выводы уходят в файл, а в контексте остаётся только нужный кусок. Саб-агенты: грязную подзадачу отдаёте отдельному агенту и пускаете назад только его чистый результат. Инстинкт говорит хранить всё на всякий случай, а навык в том, чтобы знать, что можно выкинуть.
Сложность третья: инструменты, которыми агент реально может пользоваться
Цикл хорош ровно настолько, насколько хороши инструменты внутри него. Навешайте сотню инструментов, и агент перестанет понимать, какой из них брать. Выигрывает компактный набор фокусных и непересекающихся инструментов. Правило Anthropic звучит резко: если живой инженер не может точно сказать, какой инструмент подходит, то у агента шансов нет.
Две вещи важнее, чем кажется. Первое: записи должны быть безопасны для повтора. Циклы делают ретраи, и если повторный вызов создать клиента сделает второго клиента, вы проснётесь с дублями и двойными списаниями. Всё, что меняет состояние, обязано безопасно вызываться дважды. Второе: пишите сообщения об ошибках для агента, а не для человека. Хорошая ошибка подсказывает агенту, что делать дальше. В цикле ошибка это не тупик, а следующая инструкция.
Сложность четвёртая: нужно что-то, способное сказать нет
У автономных циклов есть тихий режим отказа: агент, оставленный наедине с собой, склонен соглашаться сам с собой. Самый точный комментарий в этой дискуссии звучит так: спроектировать цикл это половина работы, а вторая половина это поставить в цикл то, что умеет сказать нет: тест, проверку типов или реальную ошибку. Цикл без критика это агент, который поддакивает сам себе.
Решение в том, чтобы развести исполнителя и проверяющего. Одна модель делает работу, а отдельная проверка, часто другая модель или жёсткий тест, ставит ей оценку. Исполнитель не проверяет свою же домашку.
Что на самом деле изменилось
Теперь фраза Черни обретает смысл. Промптинг это когда вы ведёте агента ход за ходом. Loop engineering это когда вы строите систему, которая ведёт его сама, и отходите в сторону. Ваша работа меняется с раздачи инструкций на проектирование трёх вещей. Цель, записанная как критерии успеха, которые агент может проверить сам. Цикл с внятными тормозами, чтобы он останавливался вовремя. И верификатор, чтобы готово было доказано, а не заявлено.
Андрей Карпаты описывает этот настрой так: не говорите модели, что делать, дайте ей критерии успеха и смотрите, как она работает. Он запускает исследовательские циклы на ночь: они правят скрипт, тестируют его, оставляют то, что работает, и выкидывают остальное, без него самого внутри цикла. Вы перестаёте быть руками и становитесь тем, кто проектирует машину.
С чего начать
Автономный ночной агент с первого дня вам не нужен, к этому стоит идти постепенно. Начните с базового цикла и сразу добавьте лимит итераций, таймаут и потолок по стоимости. Определите готово как автоматическую проверку до старта, а не по ощущениям после. Защищайте контекст: сжимайте длинные прогоны, выгружайте большие выводы, изолируйте грязные подзадачи. Проверьте инструменты: держите их мало и фокусно, сделайте записи безопасными для повтора и перепишите ошибки так, чтобы агент мог по ним действовать. И поставьте в цикл критика. Полностью руки прочь имеет смысл убирать только тогда, когда вы доверяете тому, что умеет сказать нет.
Главный вывод
Loop engineering это не фреймворк и не инструмент, который можно установить. Это смена точки приложения усилий. Модель становится коммодити, а цикл вокруг неё вот где теперь живёт настоящая инженерия. Лучшие разработчики перестали спрашивать, что сказать агенту, и начали спрашивать, какая система сделала бы это без них. Ответьте на этот вопрос хорошо, и промптить вы тоже перестанете.
Источник: статья Akshay Pachaar Loop Engineering Clearly Explained, https://x.com/akshay_pachaar/status/2069118430582866051