"3 зависимости, 0 Python: как TypeScript-фреймворк переизобретает мультиагентные системы"
3 зависимости, 0 Python: как TypeScript-фреймворк переизобретает мультиагентные системы
LangGraph, CrewAI, AutoGen — весь мультиагентный стек живёт в Python. Один разработчик решил, что это необязательно, и написал open-multi-agent на TypeScript. Три npm-пакета, локальные модели через Ollama, один вызов `runTeam()` вместо графа из десятков узлов.
Давайте разберёмся, есть ли тут смысл или это очередной «переписали на Rust/TS, потому что можем».
Зачем убирать Python из агентной разработки
Типичный стек AI-разработчика в 2026-м: React/Next.js на фронте, Node.js на бэке, и — сюрприз — Python для всего, что связано с LLM. Два рантайма, два пакетных менеджера, два набора CI/CD-скриптов.
Если вам нужен мультиагентный пайплайн, вы ставите LangChain (80+ пакетов), сверху LangGraph (граф, стейты, чекпоинты), и получаете систему, которую сложно отлаживать и страшно обновлять.
Open-multi-agent предлагает альтернативу: всё на TypeScript, всё в одном рантайме.
Как это работает
Ключевая идея — `runTeam()`. Вы описываете цель текстом. Фреймворк:
1. **Разбивает цель на подзадачи** — динамически, через LLM 2. **Запускает агентов параллельно** — каждый получает свою подзадачу 3. **Собирает и валидирует результаты** — проверяет, что каждый агент выполнил задание
Параллелизм в Node.js — это event loop и промисы. Не нужен asyncio, не нужен threading. Всё работает «из коробки».
Модели запускаются через Ollama — локально, без API-ключей, без отправки данных в облако. Это важно для self-hosted сценариев.
Три зависимости — это правда?
Да. Весь фреймворк работает на трёх npm-пакетах. Для сравнения:
- **LangChain + LangGraph**: 80–100+ зависимостей - **CrewAI**: 40+ зависимостей - **Open-multi-agent**: 3 зависимости
Это не просто красивая цифра — это разница в размере Docker-образа, времени холодного старта, поверхности атаки и скорости `npm install`.
Когда TypeScript-стек лучше Python
Не всегда. Но есть чёткие сценарии:
**TypeScript выигрывает:** - Весь продукт на TS — агенты живут рядом с бэкендом, используют те же типы - Edge/serverless — Node.js деплоится на Cloudflare Workers, Vercel Edge. Python — нет - Минимальный footprint важнее богатой экосистемы - Локальные модели, self-hosting, контроль данных
**Python выигрывает:** - Нужны сложные графы с условными переходами и чекпоинтами - Важны тысячи готовых интеграций LangChain - Команда уже на Python, переучиваться нет смысла
Паттерн goal → subtasks → agents
Это главное архитектурное решение. Вместо того чтобы рисовать граф (узлы, рёбра, условия), вы описываете конечный результат. Фреймворк сам решает, как его достичь.
Пример: «Проанализировать пять конкурентов по фичам и ценам». Фреймворк создаёт пять агентов, каждый исследует одного конкурента, результаты собираются в отчёт. Один вызов, параллельное выполнение.
На LangGraph вы бы создавали StateGraph, определяли nodes, add_edge, add_conditional_edges... Здесь — один `runTeam()`.
Ограничения
Было бы нечестно не упомянуть:
- Молодой проект — документации и комьюнити меньше, чем у LangGraph - Ollama-only — нет нативной поддержки OpenAI, Anthropic, Google API - Простая модель оркестрации — если нужен DAG с human-in-the-loop, LangGraph справится лучше - Меньше готовых инструментов — нет коннекторов к векторным хранилищам из коробки
Итого
Open-multi-agent — не убийца LangGraph. Это инструмент для конкретного сценария: TypeScript-стек, локальные модели, параллельные задачи, минимум зависимостей.
Три зависимости — это заявление: для 80% мультиагентных задач сложность Python-фреймворков избыточна.
А вы запускаете агентов на Python или уже пробовали TypeScript-альтернативы?