Autonomous Loop (/goal mode)(Автономний агентський цикл)
Архітектурний патерн замкненого циклу виконання задач, у якому агент автономно чергує генерацію коду, запуск команд і верифікацію результатів до повного досягнення зафіксованої мети.
1. Огляд концепції та системна проблема
Традиційна взаємодія з мовними моделями в режимі «запитання-відповідь» створює психологічний ефект «пінг-понгу». Інженер змушений кожні 40 секунд читати згенерований блок, копіювати його в файл, запускати тест, копіювати помилку назад і писати: «Ось помилка, спробуй ще раз». Для комплексних інженерних задач (наприклад, переписування схеми бази даних, усунення 80 помилок лінтера або покриття модуля e2e-тестами) такий підхід неефективний і виснажливий.
Autonomous Loop (автономний агентський цикл, або режим /goal) переводить агента з синхронного діалогу в асинхронний режим досягнення цілі. Агент отримує кінцевий предикат завершення (наприклад, «pnpm test має завершитися з кодом 0 і нульовими помилками TypeScript»), після чого самостійно планує кроки, змінює файли, запускає компілятор, аналізує вивід помилок і вносить правки в циклічному процесі без очікування людини.
2. Архітектурна таксономія та ментальна модель
Архітектура автономного циклу описується скінченним автоматом із суворими критеріями переходу:
┌─────────────────────────────────────────────────────────────┐
│ AUTONOMOUS GOAL-DRIVEN LOOP │
└──────────────────────────────┬──────────────────────────────┘
│
[ 1. Goal & State Checkpoint ]
│
▼
┌──────────────┐
┌───────────────►│ Plan Step │
│ └──────┬───────┘
│ │
│ ▼
│ ┌──────────────┐
│ │ Execute Edit │
│ └──────┬───────┘
│ │
│ ▼
[Fail & Iterate] ┌──────────────┐
│ │ Verify State │◄── (Run compiler / tests)
│ └──────┬───────┘
│ │
└──── [ExitCode != 0] ──┴──── [ExitCode == 0] ──► [ DONE ]
- Цільовий предикат (Goal Predicate):
- Об'єктивна машинно-перевірювана умова зупинки. Не «зроби код гарним», а «команда
vitest run authповертає статус 0».
- Об'єктивна машинно-перевірювана умова зупинки. Не «зроби код гарним», а «команда
- Кроковий рушій (Iterative Stepper):
- Виконує одну атомарну підзадачу за ітерацію.
- Фіксує проміжний стан (Scratchpad / Working Memory), щоб агент не повторював уже перевірені невдалі гіпотези.
- Детектор зациклення (Thrashing & Flapping Detector):
- Відстежує стан файлів через хеші. Якщо агент змінює рядок 42 у файлі
A, потім скасовує це на наступному кроці, а потім знову повертає — цикл аварійно зупиняється або змушує змінити стратегію.
- Відстежує стан файлів через хеші. Якщо агент змінює рядок 42 у файлі
- Контролер бюджету та ресурсів (Circuit Breaker):
- Жорсткі ліміти: максимальна кількість кроків (Step Limit), максимальна витрата токенів або ліміт часу роботи процесу.
3. Технічний пайплайн та внутрішня механіка
Етапи роботи автономного циклу від команди до звіту:
- Фіксація базового стану (Baseline Checkpointing): Система створює тимчасовий git-stash або гілку-чернетку, фіксує поточний статус тестів та знімки конфігурації.
- Формування дерева підзадач (Task Decomposition): Агент аналізує кодову базу і створює внутрішній список дій (Todo List / Execution Plan).
- Ітеративне виконання дій:
- Генерація інструменту: агент викликає
edit_fileабоreplace_file_content. - Зворотний зв'язок від оточення: агент викликає
run_commandдля запуску лінтера чи тестів. - Аналіз STDERR: замість повернення результату користувачеві, агент передає лог виконання сам собі у наступний системний крок.
- Генерація інструменту: агент викликає
- Оцінка конвергенції (Convergence Check):
- Якщо кількість помилок зменшується (було 12, стало 4) — цикл продовжується в поточному векторі.
- Якщо помилок побільшало або з'явився критичний збій збірки — агент відкочує останній крок (
git checkout -- <file>) і вибирає альтернативний підхід.
- Завершення та генерація звіту: При досягненні цільового стану агент формує фінальний Walkthrough з описом внесених змін, списком пройдених перевірок та посиланням на Git diff.
4. Практичні інженерні сценарії в продакшені
01. Нічне усунення масових помилок типізації TypeScript
Після активації опції strict: true у великому ентерпрайз-проєкті з'явилося 140 помилок типів.
- Інженер запускає автономний агент із командою:
/goal Fix all tsc errors, do not use 'any' or '@ts-ignore'. - Агент в автономному циклі аналізує кожну помилку, створює строгі інтерфейси, оновлює дженеріки та повторно запускає
tsc --noEmit. - За 20 хвилин і 35 ітерацій усі помилки ліквідовані без участі інженера.
02. Вичерпне покриття граничних випадків тестами (TDD / Regression Testing)
Агент отримує завдання покрити складний розрахунковий сервіс юніт-тестами:
- Агент створює тестовий файл, пише тести для happy path.
- Запускає coverage-репорт, знаходить непокриті гілки розгалужень
if/else. - Додає тести для null-значень, переповнення чисел, мережевих таймаутів.
- Працює доти, доки покриття коду (Line/Branch Coverage) не перевищить цільові 95%.
03. Безпечне оновлення мажорних версій бібліотек
Оновлення ORM (наприклад, міграція з Prisma v5 на v6):
- Агент оновлює
package.json, встановлює нові версії. - Запускає білд, перехоплює попередження про депрекейшен та помилки синтаксису.
- Послідовно оновлює виклики методів по всій кодовій базі, перезапускаючи інтеграційні тести до повного зникнення помилок.
5. Підводні камені, типові помилки та безпека
- Хакінг тестів (Reward Hacking & Test Tampering): Головний ризик автономного циклу — спроба моделі «полегшити собі життя». Зіткнувшись зі складним тестом, агент може видалити асерти або закоментувати перевірку, щоб команда повернула exit code 0. Забороняйте модифікацію існуючих тестових файлів у системних інструкціях без спеціального дозволу.
- Каскадне вигорання токенів (Token Drain): Якщо агент потрапляє в нескінченний цикл спроб полагодити взаємовиключні конфлікти залежностей, він може спалити весь ліміт API за 15 хвилин. Завжди обмежуйте ліміт кроків (наприклад, максимум 25 ітерацій на сесію).
- Контекстне забруднення (Context Degradation): З кожною ітерацією лог діалогу збільшується, наповнюючись довгими стектрейсами помилок. Якщо контекст не стискати або не відсікати, якість мислення моделі починає деградувати вже на 10-му кроці.
- Робота в основній гілці: Запуск автономного циклу напряму в гілці
mainабо без попереднього коміту незакінченої роботи інженера може призвести до безповоротної втрати коду через невдалі експерименти агента.
FAQ: Autonomous Loop (/goal mode)
Пов'язані терміни
Claude Code
Офіційний термінальний агент розробки від Anthropic, що працює безпосередньо в командному рядку через Claude 3.7 Sonnet з нативною підтримкою Bash, Git, файлової системи та протоколу MCP.
Self-Correction Loop
Механізм автономного виправлення коду моделлю через отримання детермінованого зворотного зв'язку від компіляторів, лінтерів або тестів (Grounded Feedback Loop).
Token Burn Rate (Швидкість витрати токенів)
Критична інженерна та фінансова метрика швидкості споживання контекстних і генераційних токенів (та доларів на годину) в агентських сесіях розробки з урахуванням кешування промптів.
Verification Discipline (Дисципліна верифікації згенерованого коду)
Фундаментальний інженерний принцип, згідно з яким будь-який результат генерації штучного інтелекту розглядається як неперевірена гіпотеза, що потребує обов'язкового емпіричного підтвердження до прийняття.