Google’s Agent Development Kit (ADK) пропонує два основні способи керування завданнями.

Динамічна мультиагентна маршрутизація

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

  • Як це працює – Координатор обирає спеціаліста, передає йому завдання, а потім чекає на відповідь, перш ніж рухатися далі.
  • Переваги – Гнучкість. Оскільки LLM обирає шлях під час виконання, система адаптується до нових або неочікуваних вхідних даних без переписування логіки потоку.
  • Недоліки – Кожен крок додає мережеві та обчислювальні витрати, тому затримка (latency) зростає порівняно з лінійним конвеєром.

Послідовні цикли робочого процесу

Модель циклу замінює координатора одним LoopAgent, який проходить через заздалегідь визначену послідовність кроків, використовуючи спільний змінний стан сесії.

  • Як це працює – Агенти зчитують спільний ключ, оновлюють його та передають контроль наступному кроку, доки послідовність не завершиться.
  • Переваги – Передбачуваність. Порядок ніколи не змінюється, що спрощує налагодження та оптимізацію продуктивності.
  • Недоліки – Жорсткість. Будь-яка потреба відхилитися від фіксованого порядку вимагає перепроектування циклу.

Практичний тест: Парсер математичних виразів

Щоб побачити ці патерни в дії, ми створили простий парсер, який обчислює арифметичні вирази за допомогою чотирьох спеціалізованих агентів: adder, subtracter, multiplier та divider.

Уроки циклу робочого процесу

  1. Запобігання нескінченним циклам – Ми наказали кожному агенту виводити текст і негайно завершувати свій хід після оновлення спільного стану. Без цього захисного механізму цикл міг би тривати вічно.
  2. Підтримка математичної логіки – Ми надали агенту adder чіткі вказівки дотримуватися порядку операцій, щоб він не порушував правила віднімання.
  3. Уникнення прихованих завершень – Ми змусили агентів друкувати кінцевий результат перед викликом інструменту виходу, щоб користувач бачив результат, а не раптове припинення роботи.

Обробка помилок

Ми додали захист від ділення на нуль перед спеціалістом divider. Захист спочатку перевіряє дільник; якщо він дорівнює нулю, процес зупиняється, рятуючи всю систему від помилки під час виконання (runtime exception).

Який патерн підходить вашому проєкту?

  • Обирайте мультиагентну маршрутизацію, коли завдання змінюються на ходу, вхідні дані сильно варіюються або коли вам потрібно, щоб LLM визначала найкращого спеціаліста під час виконання. Компромісом є вища затримка, але система справляється з неочікуваними сценаріями без внесення змін у код.
  • Обирайте цикли робочого процесу, якщо у вас є чітко визначений конвеєр — наприклад, очищення, трансформація або агрегація даних — де кожен крок має відбуватися у суворій послідовності. Перевагою є нижча затримка та легше налагодження, але ціною неможливості динамічного розгалуження.