Автономний ШІ-агент побудував повний стек Retrieval-Augmented Generation (RAG) приблизно за двадцять хвилин і відкрив чернетку pull request без жодного рядка коду, написаного людиною.

Чому «цикл» має значення

Створення RAG-стека зазвичай означає поєднання пошукової системи, моделі ембедінгу (embedding model), мовної моделі та допоміжного коду (glue code). Розробники витрачають години на налаштування Helm charts, виправлення помилок автентифікації та пошук невідповідностей у назвах моделей. У цьому тесті автономний агент дотримувався п'ятиетапного циклу, який вимагає згоди між людиною та агентом перед написанням будь-якого коду.

Етап Що відбувається
Пропозиція Агент читає промпт і складає конкретний план, але ще не генерує код.
Узгодження Користувач переглядає план, схвалює його або запитує зміни.
Реалізація Агент розробляє функціонал у новій гілці.
Перевірка чернетки Агент запускає власні лінтери та набори тестів, виправляючи знайдені помилки.
Чернетка PR Код завантажується, і відкривається pull request для фінального перегляду людиною.

Більшість інструментів для написання коду за допомогою ШІ одразу переходять до реалізації, часто створюючи код, який не відповідає поставленому завданню. Завдяки впровадженню чіткого етапу узгодження, цикл зупиняє «сліпе» виконання і дозволяє користувачеві керувати проєктом ще до того, як буде зроблено будь-який коміт.

Стек, що матеріалізувався

За двадцять хвилин агент зібрав готовий до експлуатації (production-ready) RAG-конвеєр:

  • OpenSearch 3.7, налаштований для гібридного пошуку (vector + keyword).
  • Локальна LLM Ollama, що слугує генеративним рушієм для відповідей з використанням RAG.
  • Сервер FastMCP, що надає мовній моделі чотири кастомні інструменти.
  • Скрипти Skaffold та Helm, які автоматизують збірку контейнерів, створення маніфестів Kubernetes та розгортання сервісів.

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

Помилки, які ледь не все зламали

Впевненість агента була випробувана п'ятьма окремими збоями, які зазвичай зупинили б розгортання, кероване людиною:

  1. Помилки облікових даних OpenSearch — агент надав неправильний секретний ключ, через що кластер відхиляв підключення.
  2. Друкарська помилка в Regex у URL — один неправильно поставлений символ перетворив діючий ендпоінт на неробоче посилання, що зламало завантажувач даних.
  3. Невідповідність назв моделей — конектор очікував інший ідентифікатор моделі Ollama, що призвело до помилок «model not found».
  4. Ліміти пам'яті JVM — масове індексування вичерпало Java heap, що спричинило збої через нестачу пам'яті (out-of-memory).
  5. Випадкове видалення фрагментів моделі — скрипт очищення помилково ідентифікував важливі файли як дублікати та видалив їх, поставивши під загрозу весь конвеєр.

Коли агент застряг, на допомогу прийшов «loop-police»

Супутній механізм спостереження (watchdog) під назвою loop-police контролює стан циклу. Коли під час помилки видалення агент увійшов у нескінченний цикл, loop-police виявив затримку, скасував поточну гілку та змусив повернутися до етапу Узгодження (Agreement). Після цього агент визнав помилку, очистив пошкоджений стан і перезібрав конвеєр з нуля. Цикл самовідновлення завершився без втручання людини, окрім початкового схвалення плану.

Що це означає для розробників

  • Швидкість без втрати контролю. Цикл дозволяє інженерам визначати намір, а потім передавати виконання автономній системі, яка все одно дотримується схваленого людиною плану.
  • Вбудовані запобіжники. Автоматизований лінтинг, тестування та watchdog, який може зупинити неконтрольований цикл, зменшують ризик прихованих збоїв.
  • Нижчий поріг входження. Команди, які не мають глибоких знань Helm, Kubernetes або векторного пошуку, можуть розгорнути функціональний стек, просто описавши свої потреби звичайною мовою.

Цей підхід не є універсальною панацеєю. Етап Узгодження (Agreement) все ще потребує досвідченого рецензента, щоб виявити нереалістичні очікування або проблеми з безпекою. Цикл не замінює галузеву експертизу; він лише перетворює повторювану рутинну роботу («plumbing work») на повторюваний шаблон.