Бесблокировочный рантайм ИИ-агентов на C++ в 2500 раз быстрее

Представьте рой ИИ-агентов, 25 000 сильных в секунду, как цифровой улей. Один разработчик собрал такое на C++ — и Python-фреймворки утонули в пыли.

График бенчмарка: Forge на C++17 громит LangChain на Python по пропускной способности ИИ-агентов

Key Takeaways

  • Бесблокировочный рантайм Forge на C++17 тянет 25 000 сессий ИИ-агентов в секунду — Python еле 10–50.
  • GIL и раздутость объектов в Python создают адский оверхед оркестрации — LLM тут ни при чём.
  • Бесблокировочные примитивы дают настоящий параллелизм и предвещают возвращение C++ в инфраструктуру ИИ.

А что если настоящее узкое место в ваших ИИ-мечтаниях — не огромные LLM, а скрипучая Python-опора, на которой они держатся?

Бесблокировочный рантайм агентов на C++17 только что это доказал: 25 000 сессий в секунду, в то время как LangChain еле ползёт на 10–50. Forge — это не игрушка для бенчмарков, а полноценный оркестратор для ReAct-циклов, вызовов инструментов и стриминговых API. Всё без блокировок и на бешеной скорости.

Представьте GIL в Python как ревнивого вышибалу у входа в модный клуб: только один гость внутри за раз, даже если очередь виляет вокруг квартала. 64 ядра бездельничают, моля о работе, — но нет. Каждые 5 мс всех выгоняют на бессмысленную перетанцовку. Вот такая ваша платформа для ИИ-агентов, задыхающаяся под весом оркестрации.

Forge? Это вип-лист без вышибалы. Чистые параллельные потоки, атомарные обмены данных — как электроны в сверхпроводнике. Никаких мьютексов в драке, никаких паник ядра от конкуренции. Только голое железо на полной мощности.

Почему Python задыхается на ИИ-агентах?

Все модные фреймворки — LangChain, CrewAI, AutoGen — висят на Python. Прототипы? Рай. Но продакшн? Катastroфа. Одиночные чатботы урчат себе. Масштабируйте до сотен параллельных сессий — поддержка клиентов, пайплайны код-ревью — и ба-бах. Фреймворк плавится.

Не провайдер LLM виноват. Не капризные сети. Сам слой оркестрации. Шаблоны промптов, парсинг JSON, цепочки колбэков — всё сериализовано этим проклятым GIL.

asyncio пытается вырулить, чередуя задачи как жонглёр на кофеине. Но параллелизм? Забудьте. CPU-задачи остаются однопоточными. AgentExecutor в LangChain раздувается объектами: обёртки LLM, плейсхолдеры сообщений, парсеры вывода, менеджеры колбэков. Тысячи аллокаций кучи на сессию — вечеринка malloc с последующим похмельем от сборщика мусора.

Forge сдирает всё лишнее. Структура Session? Ровно 104 байта. Атомарные переключения состояний. Добавление задачи? Две машинные инструкции:

void push(T value) { auto node = new Node(std::move(value)); Node prev = head_.exchange(node, std::memory_order_acq_rel); // ONE atomic instruction prev->next.store(node, std::memory_order_release); // ONE store }

Вот и всё. 307 наносекунд на задачу. LangChain? 50–100 микросекунд. Разрыв в 200–300 раз, который накапливается в реальных сценариях.

А бенчмарки — настоящие, на одном ReAct-цикле (вызов LLM, инструмент, LLM, ответ) против мок-сервера:

Метрика Forge (C++17) LangChain (Python) Разрыв
Оверхед планирования на задачу 307 нс ~50–100 мкс 200–300x
Пропускная способность сессий 25 000/сек ~10–50/сек 500–2500x
Память на сессию 0,8 КБ ~2–5 МБ 2500–6000x
Масштабирование по ядрам Линейное Ограничено GIL N/A

Ошеломляет. Линейное масштабирование по ядрам — а почему бы и нет?

Бесблокировочный C++ — революция в инфраструктуре ИИ?

Бесблокировочное программирование звучит как магия: структуры данных, где потоки танцуют, не давя друг друга. Без блокировок — без зависаний. Потоки крутятся в юзерспейсе, атомики гарантируют согласованность через аппаратные модели памяти. Forge юзает очереди Michael-Scott, hazard pointers — всё проверено ThreadSanitizer.

Но вот мой горячительный тейк, который никто не озвучивает: это эхо базовых войн 90-х. Помните, как PostgreSQL и MySQL обошли раздувшийся Oracle lean-кодом на C? Python запустил веб-эру — Django, Flask правили прототипами. Теперь ИИ требует того же поворота. C++ не мёртв; он тихо жужжит в Redis, в прокси Envoy и скоро в ваших рантаймах агентов.

Forge предвещает гибридное будущее: Python для клея, C++ для горячих путей. Смело? Ещё бы. Но пропускная в 2500 раз не врёт. Компании, пиарющие «enterprise LangChain», плетут сказки — а это разоблачает императорскую медлительность.

Как работает Forge — без воды

Запускаете: HTTP API, стриминг SSE, три вида workflow (ReAct, Plan-Execute, Map-Reduce). 106 тестов зелёные. Отправляете сессию — и она летит.

Магия в пуле потоков. Задачи ставятся в очередь

Elena Vasquez
Written by

Senior editor and generalist covering the biggest stories with a sharp, skeptical eye.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by Dev.to