4 Направляющий 5 Почти архитектор ~10 мин

Автономные циклы агента: как ИИ работает сам

Один раз нажал кнопку - дальше агент крутится сам, пока ты спишь

Автономные циклы ИИ-агента простыми словами: конвейер из шагов, файл-мостик для памяти, стоп-кран от лишних трат и шаг-уборка. Запусти агента на ночь без сюрпризов.

Скиллы ECC в этом уроке: autonomous-loopscontinuous-agent-loop

Что такое автономный цикл агента простыми словами

Представь робот-пылесос. Ты же не водишь его за ручку по комнате? Нажал кнопку - и он сам нарезает круги: едет, наткнулся на стену, развернулся, поехал дальше. И так, пока не уберёт всё или не сядет батарейка.

Вот это и есть автономный цикл для агента. Ты не сидишь над ним и не диктуешь «теперь сделай тесты», «теперь почини», «теперь закоммить» по сто раз. Один раз описал круг, который надо нарезать, нажал кнопку - и всё. Дальше агент крутится сам.

Робот-пылесос ездит по кругу: едет, упёрся в стену, развернулся, поехал дальше
Цикл - это робот-пылесос. Один раз включил, дальше он сам.

Зачем вайбкодеру агент, который работает сам

Ты вайбкодер. Тебе-то зачем агент, который пашет без присмотра? Четыре причины.

  • Время. Скучную рутину - тесты, чистку, мелкие фиксы - агент делает ночью. А ты утром смотришь результат за кофе.
  • Объём. Одной задачей «добавь тесты ко всем функциям» накрываешь весь проект сразу. Не надо дёргать агента по одной функции вручную.
  • Деньги под контролем. У здорового цикла стоит лимит по бюджету. Он сам тормознёт, а не накрутит за ночь счёт на круглую сумму.
  • Качество. В цикл встраивают проверки: агент сам прогнал тесты, сам поправил, и только потом сохранил.

Обратная сторона тоже есть. Агент без присмотра умеет крутиться вхолостую, чинить одно и то же по кругу или спокойно сжечь весь бюджет. Поэтому надо понимать, как цикл устроен внутри. Иначе это не помощник, а заклинивший пылесос, который всю ночь полирует один и тот же угол.

Виды автономных циклов: от простого конвейера к сложному

Циклы бывают разной «мощности». Сразу строить космолёт не надо - почти всё закрывается самым простым видом.

Конвейер: цепочка отдельных запусков агента

Самый простой и самый рабочий вид. Берёшь большую задачу, режешь на шаги и запускаешь агента отдельно на каждый шаг. Классическая цепочка под одну фичу:

  1. Сделай - напиши код по описанию.
  2. Прибери - убери лишнее: мусорные проверки, отладочный хлам.
  3. Проверь - прогони сборку, линтер, тесты, почини что упало.
  4. Сохрани - сделай коммит с понятным сообщением.

Многоагентные циклы: когда задач много и они связаны

Фича большая и распадается на куски, которые цепляются один за другой? Тогда есть циклы посерьёзнее. Там агент сам делит задачу на части, запускает несколько «работников» параллельно, а потом аккуратно сливает результаты вместе и разруливает конфликты.

Звучит мощно. Но новичку это почти никогда не нужно. Просто держи в голове: такое существует. Берись за него, когда упрёшься в потолок простого конвейера, и ни секундой раньше.

Бери простой конвейер, когда…
  • Задача - это одна понятная вещь: одна фича, один файл, один прогон тестов.
  • Шаги идут строго по порядку: сделал - проверил - сохранил.
  • Ты хочешь быстро и без головной боли - это 90% случаев.
Подумай про сложный цикл, когда…
  • Кусков много, и они зависят друг от друга.
  • Нужно гнать несколько частей параллельно, чтобы было быстрее.
  • Уже есть написанное ТЗ, которое легко разбить на отдельные задачи.

Файл-мостик: как агент помнит прогресс между кругами

А вот и главная ловушка. В конвейере каждый запуск - новая сессия с чистым столом. Агент на шаге «почини» не помнит, что он сам же написал на шаге «сделай». Для него это будто первый день на работе.

Решение простое до гениальности: файл-мостик. В конце каждого шага агент записывает в обычный файл (часто его зовут SHARED_TASK_NOTES.md), что сделано и что осталось. А в начале следующего круга - первым делом его читает. Всё.

Выглядит блокнот примерно так - просто текст в файле:

  • Сделано: добавил тесты для модуля авторизации.
  • Сделано: починил баг с обновлением токена.
  • Осталось: тесты на лимиты запросов, тесты на ошибки.
  • Заметка: мок из tests/helpers можно переиспользовать.

Стоп-кран: как не сжечь бюджет автономным агентом

Цикл по определению крутится сам. Значит, кто-то должен сказать ему «хватит». И пусть этим кем-то будешь ты сейчас, а не твой кошелёк в три часа ночи. У любого автономного цикла обязан быть лимит. Видов четыре, и ставить можно сразу несколько:

  • По количеству - «сделай максимум 10 кругов и стоп».
  • По деньгам - «остановись, когда потратишь 5 долларов».
  • По времени - «работай не дольше 8 часов».
  • Сигнал «я закончил» - агент сам произносит кодовую фразу, когда работа сделана, и цикл выключается.

Плюсы и минусы автономного цикла

Цикл работает на тебя
  • Есть стоп-кран: лимит по кругам, деньгам, времени или сигнал завершения.
  • Между кругами есть файл-мостик с прогрессом.
  • Если шаг упал - текст ошибки летит дальше, а не теряется.
  • Грязную работу делает отдельный шаг-уборка, а не запреты в промпте.
Цикл работает против тебя
  • Бесконечный цикл без лимитов - привет, ночной счёт.
  • Нет мостика - агент забывает прогресс и ходит по кругу.
  • Цикл тупо повторяет один и тот же провал, не разбираясь в причине.
  • Все шаги в одном контексте - стол забивается, агент плывёт.

Не запрещай агенту - добавь отдельный шаг-уборку

Частая ошибка новичка: впихнуть в промпт гору «не делай так», «не пиши лишнего», «не трогай это». От стопки запретов агент становится боязливым и начинает халтурить везде - даже там, где надо было постараться.

Рабочий приём другой. На шаге «сделай» пусть агент работает от души и тщательно. А весь мусор за ним подберёт отдельный шаг-уборка со свежим столом. Два сфокусированных агента - один делает, другой убирает - обходят одного, загнанного в рамки запретов.

Пример: как покрыть проект тестами за ночь

Допустим, ты хочешь, чтобы агент за ночь покрыл тестами весь проект. Напишешь просто «добавь тесты везде» и уйдёшь спать? Утром рискуешь увидеть либо кашу, либо счёт на половину бюджета. Понимающий вайбкодер опишет цикл с мостиком и стоп-краном. Вот так:

Промпт - скопируй и попробуй

Поработай в режиме автономного цикла: добавляй тесты к проекту, пока не покроешь все функции без тестов.

Правила цикла:

  1. В начале каждого круга прочитай файл SHARED_TASK_NOTES.md. Если его нет - создай. Бери из него список того, что уже сделано и что осталось.
  2. За один круг бери ОДИН модуль. Напиши тесты тщательно.
  3. Отдельным действием прибери лишнее: мусорные проверки, отладочные печати. Прогони тесты и почини, если что-то упало.
  4. В конце круга запиши в SHARED_TASK_NOTES.md, что сделал и что осталось.
  5. Стоп-кран: сделай максимум 8 кругов. Если все модули покрыты раньше - напиши строку РАБОТА ЗАВЕРШЕНА и остановись.
  6. Если один и тот же тест падает два круга подряд - не повторяй вслепую, опиши причину в заметках и переходи к следующему модулю.
Конвейер из четырёх ящиков: сделай, прибери, проверь, сохрани - стрелка возвращается в начало
Один круг конвейера. Стрелка возвращается - и так до стоп-крана.

Цикл закрутился не туда: чек-лист отладки

Оставил агента в цикле, а вернулся к мусору? Спокойно. Пробегись по чек-листу:

  1. Был ли стоп-кран? Нет лимитов - первым делом поставь их.
  2. Есть ли мостик? Без файла прогресса агент забывает сделанное и переделывает по новой.
  3. Не повторял ли провал? Один и тот же шаг падает кругами - значит, дальше надо передавать текст ошибки, а не голое «попробуй ещё раз».
  4. Не свалил ли всё в один стол? Длинные шаги лучше дробить на отдельные запуски со свежим контекстом.
  5. Не было ли запретов вместо уборки? Замени «не делай Х» на отдельный шаг-уборку.
Мем: агент в третий час ночи всё ещё крутит цикл со словами 'почти закончил'
Стоп-кран придумали не просто так.

Частые ошибки новичка в автономных циклах

  • Цикл без стоп-крана. Самое страшное. Всегда ставь лимит по кругам, деньгам или времени.
  • Нет файла-мостика. Агент забывает прогресс между кругами и буквально ходит по кругу.
  • Слепое повторение провала. Шаг упал - передай дальше текст ошибки, а не просто «давай заново».
  • Гигантская задача в один круг. Режь на мелкие шаги по одному модулю или файлу.
  • Запреты вместо уборки. «Не делай Х» ломает агента - добавь отдельный шаг-уборку.
  • Всё в одном контексте. Для серьёзных циклов разноси шаги по отдельным запускам со свежим столом.

TL;DR - если коротко

  • Автономный цикл - агент сам гоняет «сделай → проверь → почини → закоммить», а ты не жмёшь «дальше» по сто раз.
  • Рабочая лошадка - конвейер: цепочка отдельных запусков, у каждого свежий стол и одна узкая задача.
  • Контекст между запусками обнуляется. Спасает файл-мостик типа SHARED_TASK_NOTES.md - агент пишет туда, на чём встал.
  • Стоп-кран обязателен: лимит по кругам, по деньгам, по времени или сигнал «я закончил».
  • Не пиши «не делай Х». Лучше отдельный шаг-уборка, который подметёт за агентом.
  • Вернулся к каше после ночи? Пробегись по чек-листу: стоп-кран, мостик, ошибки, контекст.

Поиск по вики

Нажмите Esc для закрытия

Введите запрос для мгновенного поиска по всем страницам курсов и уроков.