Полосы выполнения и шлюз: как агенты не ходят по кругу
Картина, знакомая всем, кто делал агентов. Агент ждёт, пока человек войдёт в аккаунт. Человек передумал и жмёт «Стоп». Ничего не происходит: весь агент живёт в одном потоке, и этот поток занят ожиданием.
Вторая картина. Группа A поручает задачу группе B. B решает, что лучше справится A, и возвращает. Через час кончается бюджет, а задача не сделана.
Обе проблемы в Элис решаются двумя механизмами.
Полосы выполнения разводят разные виды работы, чтобы одно не блокировало другое:
- разговор — с приоритетами «сейчас», «в этом ходе», «потом»; «сейчас» прерывает текущий ход;
- браузер — строго по одному;
- субагенты;
- фоновые задачи — с ограниченной параллельностью;
- задачи по расписанию — с низким приоритетом.
«Стоп» работает всегда: цикл на каждом шаге проверяет очередь.
Шлюз между группами (агент-агент, A2A) позволяет одной группе передать задачу другой, в том числе на другой машине:
- передаётся структурированное задание, а не сырой текст чата;
- список разрешённых пар групп: кто кому вообще может писать;
- каждое задание подписано ключом из брокера секретов;
- защита от петель: обнаружение кругов и лимит глубины;
- бюджет дочерней задачи не больше остатка родительской;
- всё пишется событиями в журнал.
Где было трудно. Петли между машинами. В одном процессе круг виден сразу. А когда у каждого хоста свой журнал, цепочку целиком не видит никто. Поэтому глубина и маршрут передачи едут вместе с заданием и входят в подпись — иначе их можно потерять или подделать. Лимит глубины — последняя страховка, если круг не распознан. Отдельно — дубли: если подтверждение не дошло, повторная отправка не должна создать вторую задачу. Отправитель пишет задание в исходящую очередь вместе с журналом, а получатель узнаёт повтор по ключу задания и не выполняет его дважды.
Урок: в многоагентной системе «стоп» и «уже делаю» должны работать на уровне архитектуры, а не надеяться на вежливость моделей.
Сталкивались с агентами, которые передают работу по кругу?
#Элис #ЭлисAI #A2A #AIагенты