Planck описала, почему рост числа LLM-агентов увеличил задержки в системе
Команда Planck описала проблему масштабирования системы с большим количеством LLM-агентов. Когда число агентов и подагентов выросло, задержки начали увеличиваться, хотя ответы от OpenAI по-прежнему приходили быстро. В продакшене один сервис одновременно запускал несколько агентов, и каждый из них выполнял десятки вызовов к собственным подагентам через асинхронную архитектуру на Python.
Как сообщает Towards Data Science, сначала инженеры считали, что узкое место связано с внешними провайдерами моделей или общей медлительностью LLM. Но анализ логов показал другую картину: event loop не успевал обрабатывать завершённые задачи. Из-за этого появлялись предупреждения о задержках и тайм-ауты. В материале говорится, что причиной стали CPU-задачи внутри асинхронной системы, хотя основную нагрузку считали I/O-bound.
Профилирование выявило сразу несколько факторов. Заметная часть времени уходила на сериализацию и десериализацию JSON, поэтому стандартную библиотеку json в aiohttp заменили на orjson, чтобы ускорить обработку. Также выяснилось, что aiohttp по умолчанию ограничивает число HTTP-соединений значением 100. Из-за этого система не могла выполнять все запросы одновременно. Авторы отмечают, что увеличение лимита помогало только до определённого момента, после чего производительность снова начинала ухудшаться.
Ключевые факты
В Planck один HTTP-запрос или задача из очереди одновременно запускали всех агентов системы
Каждый агент выполнял десятки вызовов к собственным подагентам
По умолчанию aiohttp ограничивает число HTTP-соединений до 100
Для ускорения обработки JSON авторы заменили встроенную библиотеку json на orjson