Агенти зараз домінують у кожній розмові про ШІ. Демонстрації створюють враження, ніби це автономні цифрові помічники, які мислять, стратегують і вирішують проблеми без допомоги людини. Проте, якщо зазирнути за інтерфейс, ви побачите дещо набагато простіше. Агент — це просто мовна модель, що працює всередині циклу. Це патерн проєктування, а не свідомість. Розуміння цієї відмінності є важливим, оскільки це змінює те, як ви будуєте, налагоджуєте та довіряєте цим системам.
Що насправді являє собою агент
Стандартний чат-бот — це функція одного запиту. Ви вводите промпт. Модель передбачає наступні токени та повертає блок тексту. Після цього вона зупиняється. Вона не перевіряє, чи була її відповідь точною. Вона не перевіряє, чи працює веб-посилання або чи є розрахунок правильним. Вона видає свій найкращий варіант за один раз і замовкає.
Агент розбиває цей єдиний запит на повторюваний цикл. Модель все ще генерує текст, але тепер вона працює всередині контрольованого циклу, де вона може впливати на зовнішній світ і реагувати на те, що відбувається.
Цикл виглядає так:
- Оцінити ціль і обміркувати подальші дії.
- Виконати дію, зазвичай шляхом виклику інструменту або API.
- Проаналізувати результат цієї дії.
- Знову обміркувати дії на основі нової інформації.
Цей цикл повторюється, доки завдання не буде виконано або доки система не досягне ліміту безпеки. У цьому і полягає весь секрет. Тут немає прихованого механізму міркування. Магія полягає в тому, щоб дати моделі можливість виправити свій шлях, використовуючи реальні дані з реальних інструментів.
ReAct: Цикл «Думка — Дія — Спостереження»
Найпоширеніший спосіб реалізації цього циклу — патерн ReAct, що розшифровується як Reason (Міркування) плюс Act (Дія). На кожному проході через цикл модель проходить три окремі етапи.
По-перше, модель формулює Думку (Thought). Вона аналізує поточну ситуацію, нагадуючи собі про початкову ціль і вирішуючи, що їй потрібно дізнатися далі. По-друге, вона обирає Дію (Action). Це може бути пошук у вебі, запит до бази даних, виклик калькулятора або запит на читання файлу. По-третє, вона отримує Спостереження (Observation). Система виконує дію поза межами моделі та передає сирий результат назад у історію розмови. Потім модель починає наступний цикл, використовуючи це свіже спостереження як свою нову реальність.
Розглянемо простий приклад. Припустимо, ви просите агента сказати, чи буде завтра дощ в Остіні. Модель може подумати: «Мені потрібен прогноз погоди для Остіна». Її дією буде виклик API погоди з назвою міста. Спостереження повертається у вигляді сирого JSON: показник температури та ймовірність опадів. Потім модель знову думає: «Прогноз показує сімдесят відсотків ймовірності дощу», і її остання дія — синтезувати це у просту відповідь англійською мовою для вас.
Ця структура важлива, тому що вона заземлює модель. Якщо модель повинна виконати пошук і прочитати результати перед тим, як продовжувати, вона не може просто вигадувати факти. Спостереження діє як жорстке обмеження для наступної думки. Цикл значно ускладнює вигадування, тому що моделі доводиться «дивитися, перш ніж говорити».
Що потрібно для побудови надійного циклу
Запуск цього патерну в продакшні потребує більшого, ніж просто розумний промпт. Вам потрібно встановити три практичні запобіжники.
Встановіть бюджет кроків. Завжди визначайте максимальну кількість ітерацій циклу. Без обмеження агент може почати бігати по колу — шукати, спостерігати, міркувати, знову шукати — доки не витратить увесь ваш бюджет API. Ліміт кроків змушує систему завершити роботу. Ви можете вирішити, чи повернути частковий результат, чи передати справу людині, чи просто коректно завершити роботу з помилкою після досягнення ліміту.
Самостійно керуйте виконанням коду. Мовна модель не запускає інструменти. Вона лише пропонує дії, зазвичай видаючи структурований текст або JSON, який називає інструмент і надає параметри. Ваш код має
