Автономні цикли агента: як ШІ працює сам
Один раз натиснув кнопку — далі агент крутиться сам, поки ти спиш
Автономні цикли ШІ-агента простими словами: конвеєр із кроків, файл-місток для памʼяті, стоп-кран від зайвих витрат і крок-прибирання. Запусти агента на ніч без сюрпризів.
Що таке автономний цикл агента простими словами
Уяви робот-пилосос. Ти ж не водиш його за ручку по кімнаті? Натиснув кнопку — і він сам нарізає кола: їде, наткнувся на стіну, розвернувся, поїхав далі. І так, поки не прибере все або не сяде батарейка.
Ось це й є автономний цикл Автономний цикл — це коли агент сам, без твоєї участі, повторює один і той самий набір кроків знову і знову, поки не виконає задачу або не впреться в ліміт. для агента. Ти не сидиш над ним і не диктуєш «тепер зроби тести», «тепер полагодь», «тепер закоміть» по сто разів. Один раз описав коло, яке треба нарізати, натиснув кнопку — і все. Далі агент крутиться сам.
Навіщо вайбкодеру агент, який працює сам
Ти вайбкодер. Тобі ж навіщо агент, який гарує без нагляду? Чотири причини.
- Час. Нудну рутину — тести, чистку, дрібні фікси — агент робить уночі. А ти зранку дивишся результат за кавою.
- Обсяг. Однією задачею «додай тести до всіх функцій» накриваєш увесь проєкт одразу. Не треба смикати агента по одній функції вручну.
- Гроші під контролем. У здорового циклу стоїть ліміт по бюджету. Він сам пригальмує, а не нагенерує рахунок на пів проєкту.
- Якість. У цикл вбудовують перевірки: агент сам прогнав тести, сам виправив, і тільки потім зберіг.
Зворотний бік теж є. Агент без нагляду вміє крутитися вхолосту, лагодити одне й те саме по колу або спокійно спалити весь бюджет. Тому треба розуміти, як цикл влаштований усередині. Інакше це не помічник, а заклинений пилосос, який усю ніч полірує один і той самий кут.
Види автономних циклів: від простого конвеєра до складного
Цикли бувають різної «потужності». Одразу будувати космоліт не треба — майже все закривається найпростішим видом.
Конвеєр: ланцюжок окремих запусків агента
Найпростіший і найробочіший вид. Береш велику задачу, ріжеш на кроки й запускаєш агента окремо на кожен крок. Класичний ланцюжок під одну фічу:
- Зроби — напиши код за описом.
- Прибери — прибери зайве: сміттєві перевірки, налагоджувальний мотлох.
- Перевір — прожени збірку, лінтер, тести, полагодь, що впало.
- Збережи — зроби коміт зі зрозумілим повідомленням.
Багатоагентні цикли: коли задач багато і вони повʼязані
Фіча велика й розпадається на шматки, які чіпляються один за одного? Тоді є цикли серйозніші. Там агент сам ділить задачу на частини, запускає кілька «працівників» паралельно, а потім акуратно зливає результати докупи й розрулює конфлікти.
Звучить потужно. Але новачку це майже ніколи не потрібно. Просто тримай у голові: таке існує. Берись за нього, коли впрешся в стелю простого конвеєра, і ні секундою раніше.
- Задача — це одна зрозуміла річ: одна фіча, один файл, один прогін тестів.
- Кроки йдуть строго по порядку: зробив — перевірив — зберіг.
- Ти хочеш швидко й без головного болю — це 90% випадків.
- Шматків багато, і вони залежать один від одного.
- Треба гнати кілька частин паралельно, щоб було швидше.
- Уже є написане ТЗ, яке не гріх розбити на робочі одиниці.
Файл-місток: як агент памʼятає прогрес між колами
А ось і головна пастка. У конвеєрі кожен запуск — нова сесія з чистим столом. Агент на кроці «полагодь» не памʼятає, що він сам же написав на кроці «зроби». Для нього це наче перший день на роботі.
Рішення просте до геніальності: файл-місток. У кінці кожного кроку агент записує у звичайний файл (часто його звуть SHARED_TASK_NOTES.md), що зроблено й що лишилося. А на початку наступного кола — насамперед його читає. Усе.
Виглядає блокнот приблизно так — просто текст у файлі:
- Зроблено: додав тести для модуля авторизації.
- Зроблено: полагодив баг з оновленням токена.
- Лишилося: тести на ліміти запитів, тести на помилки.
- Нотатка: мок із tests/helpers можна перевикористати.
Стоп-кран: як не спалити бюджет автономним агентом
Цикл за визначенням крутиться сам. Отже, хтось має сказати йому «годі». І нехай цим кимось будеш ти зараз, а не твій гаманець о третій годині ночі. У будь-якого автономного циклу мусить бути ліміт. Видів чотири, і ставити можна одразу кілька:
- За кількістю — «зроби максимум 10 кіл і стоп».
- За грошима — «зупинись, коли витратиш 5 доларів».
- За часом — «працюй не довше 8 годин».
- Сигнал «я закінчив» — агент сам вимовляє кодову фразу, коли роботу зроблено, і цикл вимикається.
Плюси й мінуси автономного циклу
- Є стоп-кран: ліміт на кола, гроші, час або сигнал завершення.
- Між колами є файл-місток з прогресом.
- Якщо крок упав — текст помилки летить далі, а не губиться.
- Брудну роботу робить окремий крок-прибирання, а не заборони в промпті.
- Нескінченний цикл без лімітів — привіт, нічний рахунок.
- Нема містка — агент забуває прогрес і ходить по колу.
- Цикл тупо повторює один і той самий провал, не розбираючись у причині.
- Усі кроки в одному контексті — стіл забивається, агент пливе.
Не забороняй агенту — додай окремий крок-прибирання
Часта помилка новачка: впхнути в промпт гору «не роби так», «не пиши зайвого», «не чіпай це». Від купи заборон агент стає боязким і починає халтурити всюди — навіть там, де треба було постаратися.
Робочий прийом інший. На кроці «зроби» нехай агент працює від душі й ретельно. А весь мотлох за ним підбере окремий крок-прибирання зі свіжим столом. Два сфокусовані агенти — один робить, інший прибирає — обходять одного, загнаного в рамки заборон.
Приклад: як покрити проєкт тестами за ніч
Припустимо, ти хочеш, щоб агент за ніч покрив тестами увесь проєкт. Напишеш просто «додай тести всюди» й підеш спати? Зранку ризикуєш побачити або кашу, або рахунок на половину бюджету. Тямущий вайбкодер опише цикл із містком і стоп-краном. Ось так:
Попрацюй у режимі автономного циклу: додавай тести до проєкту, поки не покриєш усі функції без тестів.
Правила циклу:
- На початку кожного кола прочитай файл SHARED_TASK_NOTES.md. Якщо його нема — створи. Бери з нього список того, що вже зроблено й що лишилося.
- За одне коло бери ОДИН модуль. Напиши тести ретельно.
- Окремою дією прибери зайве: сміттєві перевірки, налагоджувальний вивід. Прожени тести й полагодь, якщо щось упало.
- У кінці кола запиши в SHARED_TASK_NOTES.md, що зробив і що лишилося.
- Стоп-кран: зроби максимум 8 кіл. Якщо всі модулі покриті раніше — напиши рядок РОБОТА ЗАВЕРШЕНА і зупинись.
- Якщо один і той самий тест падає два кола поспіль — не повторюй наосліп, опиши причину в нотатках і переходь до наступного модуля.
Цикл закрутився не туди: чек-лист відлагодження
Лишив агента в циклі, а повернувся до сміття? Спокійно. Пробіжись по чек-листу:
- Чи був стоп-кран? Нема лімітів — насамперед постав їх.
- Чи є місток? Без файлу прогресу агент забуває зроблене й переробляє заново.
- Чи не повторював провал? Один і той самий крок падає коло за колом — отже, далі треба передавати текст помилки, а не голе «спробуй ще раз».
- Чи не звалив усе в один стіл? Довгі кроки краще дробити на окремі запуски зі свіжим контекстом.
- Чи не було заборон замість прибирання? Заміни «не роби Х» на окремий крок-прибирання.
Часті помилки новачка в автономних циклах
- Цикл без стоп-крана. Найстрашніше. Завжди став ліміт на кола, гроші або час.
- Нема файлу-містка. Агент забуває прогрес між колами й ходить по колу буквально.
- Сліпе повторення провалу. Крок упав — передай далі текст помилки, а не просто «давай заново».
- Гігантська задача в одне коло. Ріж на дрібні кроки по одному модулю або файлу.
- Заборони замість прибирання. «Не роби Х» ламає агента — додай окремий крок-прибирання.
- Усе в одному контексті. Для серйозних циклів розноси кроки по окремих запусках зі свіжим столом.
TL;DR - если коротко
- Автономний цикл — агент сам ганяє «зроби → перевір → полагодь → закоміть», а ти не тиснеш «далі» по сто разів.
- Робоча конячка — конвеєр: ланцюжок окремих запусків, у кожного свіжий стіл і одна вузька задача.
- Контекст між запусками обнуляється. Рятує файл-місток на кшталт SHARED_TASK_NOTES.md — агент пише туди, на чому застряг.
- Стоп-кран обовʼязковий: ліміт на кола, на гроші, на час або сигнал «я закінчив».
- Не пиши «не роби Х». Краще окремий крок-прибирання, який підмете за агентом.
- Повернувся до каші після ночі? Пробіжись по чек-листу: стоп-кран, місток, помилки, контекст.