Google’s Agent Development Kit (ADK) пропонує два основні способи керування завданнями.
Динамічна мультиагентна маршрутизація
У моделі маршрутизації центральний координатор отримує запит користувача та спрямовує його спеціалізованим агентам. Координатор вирішує, який саме спеціаліст має діяти, спеціаліст виконує свою частину роботи, і контроль повертається до батьківського компонента.
- Як це працює – Координатор обирає спеціаліста, передає йому завдання, а потім чекає на відповідь, перш ніж рухатися далі.
- Переваги – Гнучкість. Оскільки LLM обирає шлях під час виконання, система адаптується до нових або неочікуваних вхідних даних без переписування логіки потоку.
- Недоліки – Кожен крок додає мережеві та обчислювальні витрати, тому затримка (latency) зростає порівняно з лінійним конвеєром.
Послідовні цикли робочого процесу
Модель циклу замінює координатора одним LoopAgent, який проходить через заздалегідь визначену послідовність кроків, використовуючи спільний змінний стан сесії.
- Як це працює – Агенти зчитують спільний ключ, оновлюють його та передають контроль наступному кроку, доки послідовність не завершиться.
- Переваги – Передбачуваність. Порядок ніколи не змінюється, що спрощує налагодження та оптимізацію продуктивності.
- Недоліки – Жорсткість. Будь-яка потреба відхилитися від фіксованого порядку вимагає перепроектування циклу.
Практичний тест: Парсер математичних виразів
Щоб побачити ці патерни в дії, ми створили простий парсер, який обчислює арифметичні вирази за допомогою чотирьох спеціалізованих агентів: adder, subtracter, multiplier та divider.
Уроки циклу робочого процесу
- Запобігання нескінченним циклам – Ми наказали кожному агенту виводити текст і негайно завершувати свій хід після оновлення спільного стану. Без цього захисного механізму цикл міг би тривати вічно.
- Підтримка математичної логіки – Ми надали агенту
adderчіткі вказівки дотримуватися порядку операцій, щоб він не порушував правила віднімання. - Уникнення прихованих завершень – Ми змусили агентів друкувати кінцевий результат перед викликом інструменту виходу, щоб користувач бачив результат, а не раптове припинення роботи.
Обробка помилок
Ми додали захист від ділення на нуль перед спеціалістом divider. Захист спочатку перевіряє дільник; якщо він дорівнює нулю, процес зупиняється, рятуючи всю систему від помилки під час виконання (runtime exception).
Який патерн підходить вашому проєкту?
- Обирайте мультиагентну маршрутизацію, коли завдання змінюються на ходу, вхідні дані сильно варіюються або коли вам потрібно, щоб LLM визначала найкращого спеціаліста під час виконання. Компромісом є вища затримка, але система справляється з неочікуваними сценаріями без внесення змін у код.
- Обирайте цикли робочого процесу, якщо у вас є чітко визначений конвеєр — наприклад, очищення, трансформація або агрегація даних — де кожен крок має відбуватися у суворій послідовності. Перевагою є нижча затримка та легше налагодження, але ціною неможливості динамічного розгалуження.
