Проблема: KV-cache thrashing в агентных рабочих процессах
Современные LLM-агенты (например, Claude Code, Codex) работают в цикле «рассуждение — действие», выполняя десятки запросов. Традиционные движки (vLLM, SGLang) планируют запросы независимо. Когда агент ждет ответа от инструмента (компилятора, API), его KV-кэш часто вытесняется для обслуживания других запросов. При возобновлении работы кэш пересчитывается с нуля, что вызывает KV-cache thrashing — катастрофический рост задержек и падение пропускной способности при высокой конкурентности.
Решение: ThunderAgent как слой планирования программ
ThunderAgent вводит абстракцию «программы» (program), объединяя серию запросов агента в единый планируемую единицу. Система отслеживает фазы выполнения, размер кэша и размещение нод. Ключевые механизмы:
- Программный контроль доступа: при нехватке памяти система приостанавливает низкоприоритетные рабочие процессы, а не вытесняет кэш.
- Глоочередь ожидания: приостановленные агенты направляются на ноду с наибольшим свободным ресурсом, балансируя нагрузку.
- Совместимость: работает как «drop-in» решение с OpenAI-совместимыми API, поддерживает offloading (HiCache, LMCache) и speculative decoding.
Результаты: 2.5x скорость и линейное масштабирование
В тестах на синтетических данных (пайплайн CoderForge) ThunderAgent показал значительное превосходство над SGLang на кластере 8xH100:
| Метрика | SGLang (Baseline) | ThunderAgent | Ускорение |
|---|---|---|---|
| Пропускная способность (single-node, batch 192) | 390 token/s | 803 token/s | ~2.06x |
| Средняя задержка (P50) | 65 секунд | 10.6 секунд | ~6.1x |
| Скорость (8 узлов, 64 GPU) | — | 2,248 steps/min | 2.39x vs SGLang Gateway |
| Масштабируемость (16→64 GPU) | Нелинейная, дисбаланс памяти | Near-linear scaling | — |
При масштабировании с 16 до 64 GPU ThunderAgent демонстрирует почти линейный рост пропускной способности, в то время как SGLang Gateway страдает от дисбаланса памяти между нодами.
Значение для индустрии
Работа принята в ICML 2026 в статусе Spotlight. ThunderAgent решает фундаментальную проблему генерации синтетических данных для обучения агентов, где критически важна высокая конкурентность и низкая задержка. Решение позволяет эффективно использовать GPU-кластеры для создания сложных многошаговых траекторий (agentic trajectories), которые невозможно получить из веб-корпусов.
Источник: Together AI ↗
