Часть 1 отвечала на вопрос «какая карта быстрее печатает текст одному человеку». Здесь другой режим: 5–50+ параллельных агентов, у каждого — длинный промпт (системный промпт + тузы + история), короткий ответ, и все они конкурируют за одну vRAM и один GPU. Метрики, движки и победители меняются сильнее, чем кажется.
Bottleneck: полоса памяти. GPU перечитывает активные веса на каждом токене. Скорость ≈ ГБ/с ÷ размер весов. TFLOPS почти не важны. KV-кэш — один, короткий.
Bottleneck: три одновременно. Prefill/TTFT (compute), KV-кэш на каждого агента (vRAM), aggregate throughput (батчинг + движок). И главное: движок даёт больший выигрыш, чем карта — до 19×.
Три вывода мультиагентного режима, если читать дальше лень. Всё остальное на странице — их доказательства.
В чате работала одна формула (полоса ÷ веса). В мультиагенте к ней добавляются три, и все три переписывают рейтинг карт части 1.
В батче N агентов GPU читает веса один раз на forward pass, а токенов производит N. Aggregate throughput растёт почти линейно с N, пока не упрётся в compute. Декод перестаёт быть чисто bandwidth-bound — TFLOPS возвращаются в игру.
Профиль запроса агента: промпт 5–50K токенов, ответ 50–500. Prefill (чтение промпта) — compute-bound и занимает большую часть времени запроса. Карта с сильным prefill (5090, PRO 6000) ощущается «резче», даже с равным декодом.
Каждый конкурентный агент держит свой контекст в vRAM:
2 × layers × kv_heads × dim × длина × байты.
У 27B-класса это ~2 ГБ на агента @16K (FP8). 10 агентов = −20 ГБ.
Свободная vRAM после весов = ёмкость по агентам.
gpt-oss-20b активирует 3.6B параметров: в батче 20+ агентов декод почти не падает на каждого, а качество — уровень 20B+. Весы маленькие, KV маленький → максимум агентов на гигабайт. MoE-first — стратегия №1 для мультиагента.
Разрыв между движками на одинаковой карте больше любого GPU-апгрейда. 3 агента: vLLM 342 vs Ollama 124 tok/s. Пиковый батч: vLLM 793 vs Ollama 41 tok/s (Red Hat).
Одна б/у RTX 3090 на 64 конкурентных запросах — Qwen3.8-27B, W4A16 + int8-активации + FP8 KV + спекулятивный декод (DFlash2/MTP). Ванильный vLLM без тюнинга: ~370–500 tok/s на 48 конкурентных. Потолок карты в батче огромен — вопрос в софте.
Что это значит для части 1: рейтинг «полоса за доллар» — метрика чата. В мультиагенте к ней добавляются «vRAM после весов» (ёмкость агентов) и «TFLOPS» (prefill/TTFT и батч-декод). 3090 остаётся королём цены, но её слабое место — prefill — здесь стреляет.
Выбор движка — самый дешёвый «апгрейд» в мультиагенте. Ниже — честная таблица по состоянию на сентябрь 2026, с цифрами на одинаковом железе где возможно.
| Движок | Параллелизм | Prefix caching | Cifry на одинаковой карте | Когда брать |
|---|---|---|---|---|
| Ollamaобёртка llama.cpp, проще всех | sequential OLAMA_NUM_PARALLEL есть, но prefill в очереди | ограниченно | 3 агента: 124 tok/s · пик: 41 tok/s | 1 агент, локальная разработка, «поставил и забыл» |
| llama.cpp server--parallel N --cont-batching | slots N слотов делят контекст поровну | есть slot KV reuse | между Ollama и vLLM; лучше на ≤8 агентах, single-stream быстрее vLLM | 2–8 агентов, минимум возни, GGUF-кванты на любой карте (AMD/Intel/Arc) |
| vLLMстандарт продакшена | continuous batching | V1 по умолчанию --kv-cache-dtype fp8 | 3 агента: 342 tok/s · пик: 793 tok/s · 3090+27B батч: 370→942 tok/s | дефолт для 5+ агентов, любой CUDA-карты; gpt-oss-120b — сейчас быстрее SGLang (2276 vs 330 tok/s на A100) |
| SGLangRadixAttention | continuous batching | radix-дерево, on by default | prefix-heavy dense: +29% к vLLM-базлайну (16.2k vs 12.5k tok/s) | многошаговые диалоги/тулы с общим системным промптом; кэш-попадания до 5× throughput |
Движок × модель имеет значение: на gpt-oss-120b vLLM обставил SGLang в 6.9 раза в тесте GPUStack (2276 против 330 tok/s, A100), а на prefix-heavy dense-трафике SGLang плюс-минус 29% за счёт RadixAttention. Универсального победителя нет — меряйте на своей модели. TensorRT-LLM в таблице нет сознательно: его сборка для consumer-карт (3090/5090) — боль, выигрыш раскрывается на H100-классе.
Ёмкость по агентам = (vRAM − веса − оверхед) ÷ (KV на один запрос). Подвигайте ползунки — это главный расчёт раздела. Оценки KV на токен помечены: проверенные — по формуле GQA, оценочные — со «~».
Считает конкурентность для одного инстанса движка. Для 2-инстансной сборки — умножьте результат на число карт.
Как читать результат: калькулятор отвечает «сколько агентов влезает по памяти». Скорость каждого при этом зависит от движка и модели: dense-27B при 10+ агентах начнёт делить decode-полосу, MoE (gpt-oss-20b, 3.6B активных) почти не заметит. Prefill на длинных промптах — отдельно: см. колонку TTFT в таблице ниже.
Те же карты, что в части 1, но колонки другие: ёмкость агентов (KV-бюджет), скорость батча, качество prefill. Расчёты ёмкости — при FP8 KV и контексте 16K на агента. «TTFT» — субъективная оценка prefill на агентных промптах 10K+.
| Конфигурация | Цена | Агентов @16K · FP8 | Батч, tok/s (27B Q4) | TTFT / prefill | Комментарий |
|---|---|---|---|---|---|
| RTX 3090 (б/у) + vLLM24 ГБ · 27B Q4 → 3, gpt-oss-20b → 28 | 1,000–1,300 | 3 (27B) · 28 (20b MoE) | ~370–450 · до ~1,000 тюнинг* | слабый | Ёмкость упирается в 6 ГБ после весов 27B; ниже модель — больше агентов. Prefill — ахиллесова пята |
| 2× RTX 3090: 2 инстанса + роутер2 × (24 ГБ) независимых | 2,000–2,600 | 6 (27B, 2×3) · 56 (20b, 2×28) | ~750–900 · тюнинг ~2,000 | слабый ×2 | 🏆 Лучший мультиагент за деньги |
| RTX 509032 ГБ · +8 ГБ KV-бюджета к 3090 | 4,700–5,200 | 7 (27B) · 49 (20b MoE) | ~800–950 | отличный | Единственная одиночная карта, где мультиагент раскрывает compute. Цена — единственный минус |
| RTX 4090 (б/у) + vLLM24 ГБ · prefill лучше 3090 | 1,800–2,200 | 3 (27B) · 28 (20b MoE) | ~500–600 | средний | Та же ёмкость, что 3090, но TTFT заметно лучше; если найдёте по $1,800 — берите |
| Strix Halo 128 ГБ + gpt-oss-120b63 ГБ весов · 53 ГБ под KV | 1,800–2,400 | 95 (FP8) · 190 (Q4 KV) | ~250–350 (MoE) | очень слабый | Рекорд $/агент на большом MoE; TTFT на холодных промптах 10K+ — страдание, prefix caching обязателен |
| Mac Studio 128–192 ГБ + MLXgpt-oss-120b · vllm-mlx | 6,500–9,000 | 84 (128 ГБ) · 200+ (192 ГБ) | ~600–1,000 (MoE) | средний | Тихий «сервер агентов» на полке; vllm-mlx даёт 21–87% к llama.cpp на Apple Silicon |
| RTX PRO 6000 96 ГБ + vLLMgpt-oss-120b: 63 ГБ + 31 ГБ KV | ~16,000 | 56 (FP8) · 111 (Q4 KV) | ~2,276 → 5,055 (A100-тест, масштаб) | отличный | Продакшн-эталон мультиагента: 29 агентов на 120B-модели с быстрым prefill. Если бюджет есть |
| RTX 5060 Ti 16 ГБ8B Q4 → 9 ГБ под KV | 758–805 | 9 (8B) · 3 (14B) | ~120–180 (8B) | средний | Микро-ферма агентов на 8B-моделях: работает, но потолок низкий |
| Intel Arc Pro B70 32 ГБllm-scaler/vLLM контейнер | ~950 | 49 (20b MoE, теор.) · 7 (27B) | ~100–150 | слабый | vRAM дешёвая, но serving-стек для продакшн-агентов сырой: vLLM только через контейнер Intel, llama.cpp — «roll of the dice» |
| Tesla P40FP16 = 1/64 FP32 | 240–350 | — | ~30 (8B) | катастрофа | ❌ Нет для агентов: prefill без tensor cores, batch деградирует |
* «до ~1,000»: замер syv-ai/qwen38-27b-rtx3090 (Qwen3.8-27B, W4A16+int8+FP8 KV+DFlash2) — 942 tok/s e2e / ~1,094 steady-state на 64 конкурентных. Это тюнинг-потолок одной 3090, не ванильная конфигурация. Числа батча для 5090/PRO 6000 — экстраполяция от полосы и A100-замеров, помечены «~».
Аппарат — половина решения; вторая половина — как разложены модель, кэш и агенты. Все конфиги ниже — на 2× RTX 3090, но паттерны переносимы.
vLLM на одной карте, prefix caching включён, KV в FP8. Системный промпт и список тузов фиксированы байт-в-байт у всех агентов → повторная часть префикса не пересчитывается никогда. Проще некуда, чинить нечего.
vllm serve Qwen/Qwen3.6-27B-Instruct-GPTQ-Int4 \
--max-model-len 32768 \
--kv-cache-dtype fp8 \ # ×2 агентов на ту же vRAM
--enable-prefix-caching \ # в vLLM V1 включено по умолчанию
--max-num-seqs 16 \ # предел конкурентных последовательностей
--gpu-memory-utilization 0.92 \ # отдаём vRAM под KV-пул
--async-scheduling # +5–15% throughput на батче (GPUStack)
Не TP=2, а два независимых модельных сервера — по одному на карту. Роутер (llm-d-стиль, или nginx с hash-by-session) прибивает сессию агента к «его» инстансу → KV-кэш конкретного агента всегда горяч. Ноль PCIe-синхронизации, отказоустойчивость (одна карта умерла — вторая работает), линейное масштабирование.
# инстанс 1 (порт 8001) и инстанс 2 (порт 8002) — идентичные конфиги
CUDA_VISIBLE_DEVICES=0 vllm serve MODEL --port 8001 ... &
CUDA_VISIBLE_DEVICES=1 vllm serve MODEL --port 8002 ... &
# роутер: sticky по agent_id → кэш-локальность, llm-d даёт до 57× TTFT на таком роутинге
Для тул-коллинга и коротких ответов gpt-oss-20b (3.6B активных, Apache 2.0) — лучший агентный движок-модель: качество уровня 20B+, а батч-декод почти не делится между агентами, потому что активных весов мало. 12 ГБ весов оставляют огромный KV-бюджет. 120B-версия — когда есть 48+ ГБ.
Классика мультиагентных фреймворков: 80% вызовов — рутина (парсинг, классификация, вызов тулзы) → маленькая модель на карте №1; 20% — синтез и рассуждения → 27B/120B на карте №2. Роутер по сложности запроса. На 2×3090: gpt-oss-20b (30+ агентов) + Qwen3.6-27B (6–10 «тяжёлых» агентов).
Пять ступеней — с бюджетом и конфигом. Цены сентября 2026, США. «Агент» = сессия с контекстом 8–16K и короткими ответами.
--parallel 4 --cont-batching уже честнее: слоты не блокируются.Часть 1 выбирала карту по формуле «полоса за доллар», и RTX 3090 выигрывала вчистую. Часть 2 добавляет два независимых измерения: ёмкость по агентам (vRAM после весов, помноженная на дешёвый KV-кэш — FP8/Q4) и prefill/TTFT (compute). Победители не меняются — меняется расстояние: 5090 из «переплаты ×2.3» превращается в «обоснованную покупку, если TTFT и плотность агентов критичны».
Но самый большой вывод — про софт. Переход Ollama → vLLM/SGLang с prefix caching даёт больше, чем любой GPU-апгрейд: до 19× по throughput и до 57× по TTFT с cache-aware роутингом, против максимум ×2 между поколениями карт. Покупать карту «под мультиагент» до того, как движок настроен, — это покупать спорткар до водительских прав.
Практический чек-лист: (1) vLLM/SGLang + FP8 KV + prefix caching, системный промпт зашит байт-в-байт; (2) модель по калькулятору — gpt-oss-20b до 28 агентов на 24 ГБ (@16K FP8), 27B для качества до 3–7 агентов; (3) железо: одна 3090 ($1.15K) на 5–16 агентов, 2×3090 dual-instance ($2.3K) на 16–40 — лучший мультиагент-бокс сентября 2026, Strix Halo ($2K) на 40–95 через gpt-oss-120b, 5090 — если TTFT дороже денег.
• Ollama на 5+ агентах — очередь prefill блокирует всех.
• TP=2 на картах без NVLink для моделей, влезающих в одну карту, — теряете 10–30% зря.
• Менять системный промпт между вызовами — инвалидирует весь prefix-кэш фермы.
• P40/Arc для агентных ферм — prefill без tensor cores убивает TTFT; serving-стек Arc сырой.
• Оффлоад MoE в RAM на батче — работает для одного агента, умирает на десяти.
• llm-d и cache-aware роутинг уже дают 57× TTFT — ждём зрелых релизов для single-box.
• vllm-mlx (Apple): +21–87% к llama.cpp, continuous batching на MLX — Mac становится полноценным агентным сервером.
• Спекулятивный декод в батче (DFlash2/MTP): 942→1,094 tok/s на одной 3090 — тренд переносится на все движки.
• Q4-KV персистентный кэш (arXiv 2603.04428): KV на диск, 4× плотнее FP16 — выживание рестартов на edge.
• NVFP4 на 5090: кванты KV/весов ещё плотнее — ёмкость агентов на 32 ГБ вырастет.
Данные части 2 собраны 9 сентября 2026: 5 тематических прогонов (~170 страниц), чтение первичных бенчмарков, кросс-проверка ключевых цифр. Оценки помечены «~» в тексте.
Измерено: движковые разрывы (Ollama vs vLLM), 3090-батч (syv-ai, 942 tok/s), gpt-oss-120b на A100 (GPUStack: 2276→5055 tok/s), SGLang +29% на prefix-heavy, KV-формула (5.37 ГБ @16K для 70B GQA FP16).
Оценено (помечено «~»): батч-числа 5090/PRO 6000 (экстраполяция полосы), KV на токен gpt-oss/35B-A3B (формула по архитектуре, без верификации), ёмкость Strix Halo.
• Конкурентность ≠ QPS: калькулятор считает память, не latency-бюджет.
• Числа батча зависят от длины промптов/ответов в тесте — сравнивайте профили запросов.
• SGLang vs vLLM: победитель зависит от модели (MoE ↔ dense) и версии — тестируйте на своей.
• Strix Halo/Mac числа — теоретическая ёмкость, реальная упирается в prefill-полосу.