Skip to main content

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 ]
  1. Цільовий предикат (Goal Predicate):
    • Об'єктивна машинно-перевірювана умова зупинки. Не «зроби код гарним», а «команда vitest run auth повертає статус 0».
  2. Кроковий рушій (Iterative Stepper):
    • Виконує одну атомарну підзадачу за ітерацію.
    • Фіксує проміжний стан (Scratchpad / Working Memory), щоб агент не повторював уже перевірені невдалі гіпотези.
  3. Детектор зациклення (Thrashing & Flapping Detector):
    • Відстежує стан файлів через хеші. Якщо агент змінює рядок 42 у файлі A, потім скасовує це на наступному кроці, а потім знову повертає — цикл аварійно зупиняється або змушує змінити стратегію.
  4. Контролер бюджету та ресурсів (Circuit Breaker):
    • Жорсткі ліміти: максимальна кількість кроків (Step Limit), максимальна витрата токенів або ліміт часу роботи процесу.

3. Технічний пайплайн та внутрішня механіка

Етапи роботи автономного циклу від команди до звіту:

  1. Фіксація базового стану (Baseline Checkpointing): Система створює тимчасовий git-stash або гілку-чернетку, фіксує поточний статус тестів та знімки конфігурації.
  2. Формування дерева підзадач (Task Decomposition): Агент аналізує кодову базу і створює внутрішній список дій (Todo List / Execution Plan).
  3. Ітеративне виконання дій:
    • Генерація інструменту: агент викликає edit_file або replace_file_content.
    • Зворотний зв'язок від оточення: агент викликає run_command для запуску лінтера чи тестів.
    • Аналіз STDERR: замість повернення результату користувачеві, агент передає лог виконання сам собі у наступний системний крок.
  4. Оцінка конвергенції (Convergence Check):
    • Якщо кількість помилок зменшується (було 12, стало 4) — цикл продовжується в поточному векторі.
    • Якщо помилок побільшало або з'явився критичний збій збірки — агент відкочує останній крок (git checkout -- <file>) і вибирає альтернативний підхід.
  5. Завершення та генерація звіту: При досягненні цільового стану агент формує фінальний 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 або без попереднього коміту незакінченої роботи інженера може призвести до безповоротної втрати коду через невдалі експерименти агента.
/ Часті запитанняSchema.org FAQPage

FAQ: Autonomous Loop (/goal mode)

Застосовують трирівневий запобіжник: ліміт ітерацій (MaxIterations, зазвичай 15–25), моніторинг хешів змін файлів (виявлення пінг-понгу між двома хибними рішеннями) та таймаут контекстного вікна з примусовою зміною евристики пошуку.
/ Внутрішня перелінковка
Всі терміни
Вайбкодинг & IDE

Claude Code

Офіційний термінальний агент розробки від Anthropic, що працює безпосередньо в командному рядку через Claude 3.7 Sonnet з нативною підтримкою Bash, Git, файлової системи та протоколу MCP.

Читати термін
Агенти & MCP

Self-Correction Loop

Механізм автономного виправлення коду моделлю через отримання детермінованого зворотного зв'язку від компіляторів, лінтерів або тестів (Grounded Feedback Loop).

Читати термін
Вайбкодинг & IDE

Token Burn Rate (Швидкість витрати токенів)

Критична інженерна та фінансова метрика швидкості споживання контекстних і генераційних токенів (та доларів на годину) в агентських сесіях розробки з урахуванням кешування промптів.

Читати термін
Вигорання & Flow

Verification Discipline (Дисципліна верифікації згенерованого коду)

Фундаментальний інженерний принцип, згідно з яким будь-який результат генерації штучного інтелекту розглядається як неперевірена гіпотеза, що потребує обов'язкового емпіричного підтвердження до прийняття.

Читати термін