← Назад к курсу

Исследование фреймворков для мультиагентских систем на Python

1. Общий обзор

Мультиагентские системы (MAS) – это набор автономных программ‑агентов, взаимодействующих для решения общих задач. В Python‑экосистеме существует несколько фреймворков, которые отличаются:

Характеристика LangGraph MultiAgentX Swarm (OpenAI) PyTorch Multi‑Agent (PettingZoo‑based)
Основной фокус Управление потоками сообщений через графы состояний Модульность и масштабируемость через готовые шаблоны Быстрая оркестрация LLM‑агентов («chain‑of‑thought») Научные эксперименты с RL‑агентами и распределённым обучением
Язык/стек Python + LangChain Python (Docker/Poetry) Python (чистый pip‑пакет) Python + PyTorch, PettingZoo
Поддержка распределения Через FastAPI / WebSockets, легко горизонтально масштабировать Docker‑контейнеры, MQTT, HTTP‑протокол Один процесс (можно расширить через RPC) Через Ray / PyTorch‑Distributed
Визуализация Интерактивные графы (NetworkX, D3) Диаграммы Gantt, планировщик Минимум визуализации (консольный вывод) TensorBoard, встроенные визуализации RL
Лицензия Apache‑2.0 MIT MIT MIT/Apache‑2.0 (разные подпакеты)
Комью니ти (на 2026‑01) > 15 k звёзд на GitHub, активные релизы ~3 k звёзд, коммерческий спонсор ~2 k звёзд, быстрый рост ~4 k звёзд, академический интерес

2. Детальное описание каждого фреймворка

2.1 LangGraph (часть LangChain)

Что это: библиотека для построения ориентированных графов вычислительных процессов, где узлами могут быть LLM‑вызовы, правила, условия и другие агенты.

Ключевые возможности

  • Состояния – любые Python‑объекты, которые передаются от узла к узлу.
  • Циклы – возможность создавать бесконечные или ограниченные циклы (while/until).
  • Композиция – графы могут быть вложенными, что упрощает построение иерархических систем.
  • Интеграция с другими LangChain‑модулями (Memory, Retriever, Tools).

Установка

pip install langchain langgraph

Пример минимального графа

from langgraph.graph import Graph, START, END
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o")
def step1(state):
    return {"msg": "Привет, я агент 1!"}
def step2(state):
    return {"msg": "Ответ от агента 2: " + state["msg"]}

graph = Graph()
graph.add_edge(START, "step1")
graph.add_edge("step1", "step2")
graph.add_edge("step2", END)

graph.compile()

Плюсы

  • Очень гибкая модель управления состоянием.
  • Тесная интеграция с другими LangChain‑компонентами.
  • Хорошо подходит для агент‑ориентированных приложений, где нужен контекстный запоминающий механизм.

Минусы

  • Требует понимания концепции графов; кривая обучения выше, чем у более «потоковых» фреймворков.
  • Не предназначен сразу для массового распределённого развертывания (нужен отдельный HTTP‑слой).

Документация: https://python.langchain.com/docs/modules/agents/multi_agent


2.2 MultiAgentX

Что это: spécialized фреймворк, ориентированный на модульную мультиагентную архитектуру с поддержкой шаблонов планировщика задач.

Ключевые возможности

  • Агент‑платформы – каждый агент запускается в отдельном Docker‑контейнере и коммуницирует через MQTT/HTTP.
  • Шаблоны – готовые конфигурации для «планировщик‑координатор», «исполнитель», «монитор».
  • Диспетчер задач – автоматически распределяет подзадачи между агентами.
  • Поддержка событий – агенты могут подписаться на топы́и события.

Установка

git clone https://github.com/multiagentx/multiagentx.git
cd multiagentx
pip install -e .

Краткий пример

from multiagentx import Agent, Coordinator

agent_a = Agent(name="researcher", workflow="research")
agent_b = Agent(name="writer", workflow="writing")

coord = Coordinator(agents=[agent_a, agent_b])
coord.run("Составь план исследования фреймворков")

Плюсы

  • Хорошо подходит для production‑развёртываний, где агенты работают на разных машинах.
  • Пакетные шаблоны ускоряют старт проекта.

Минусы

  • Менее гибок в кастомизации графа по сравнению с LangGraph.
  • Требует базовых знаний Docker и сетевого взаимодействия.

Документация: https://docs.multiagentx.dev/


2.3 Swarm (OpenAI)

Что это: лёгкий, но мощный фреймворк от OpenAI, предназначенный для простого построения цепочек вызовов LLM‑агентов («chain‑of‑thought») без тяжёлой инфраструктуры.

Ключевые возможности

  • Agents – простые классы с описанием инструкций и наборов функций.
  • Funcs – автоматически генерируемые вызываемые функции, которые агент может выполнить (например, поиск в вебах).
  • Transfer – передача управления от одного агента к другому.
  • Минимум кода – один‑два файла для полного сценария.

Установка

pip install -U swarm

Пример

from swarm import Swarm, Agent

client = Swarm()

research_agent = Agent(
    name="researcher",
    instructions="Ищи информацию о фреймворках MAS в Python.",
    functions=[search_web]  # пользовательская функция
)

final_agent = Agent(
    name="reporter",
    instructions="Сформируй итоговый отчёт."
)

# Передача управления
client.create_message("user", "Сделай отчёт о фреймворках.")
response = client.run(research_agent, final_agent)
print(response.messages)

Плюсы

  • Очень быстрое прототипирование.
  • Не требует Docker/контейнеров, всё работает в одном процессе.
  • Поддерживает «перенос» управления между агентами без явного кода.

Минусы

  • Ограниченная поддержка распределённых сценариев (один процесс).
  • Меньше встроенных средств мониторинга и масштабирования.

Документация: https://github.com/openai/swarm


2.4 PyTorch Multi‑Agent (на базе PettingZoo)

Что это: набор инструментов для создания среды и обучения множества агентов в режиме совместного обучения с подкреплением (MAS‑RL).

Ключевые возможности

  • PettingZoo – универсальный API для многопользовательских сред.
  • RLlib‑интеграция – готовые алгоритмы (MADDPG, QMIX, COMA).
  • Рендеринг – возможность визуализировать состояние среды.
  • Сохранение/загрузка полисов и окружений.

Установка

pip install pettingzoo[extra] torch

Пример минимального мульти‑агента

import pettingzoo
from pettingzoo import AECEnv
from pettingzoo.utils import wrappers

class SimpleMASEnv(AECEnv):
    def __init__(self):
        super().__init__()
        self.agents = ["A", "B"]
        self.possible_moves = {"A": [0,1], "B": [0,1]}
        self._curr_agents = self.agents[:]

    def step(self, action):
        # простая функция вознаграждения
        reward = {"A": action["A"]*2, "B": action["B"]*3}[self.agent_name]
        self.rewards[self.agent_name] = reward
        self.dones[self.agent_name] = self._episode_end()
        self.compute_rewards()
        self._c_next = self._candidate_agents()
        return self._c_next

env = SimpleMASEnv()
env = wrappers.time_limit(env, max_episode_steps=25)
env.reset()

Плюсы

  • Идеален для научных экспериментов с обучающимися агентами.
  • Широкая поддержка современных RL‑алгоритмов.

Минусы

  • Не предназначен для production‑систем без доступа к вычислительным ресурсам.
  • Требует умелых навыков в RL.

Документация: https://pettingzoo.farama.org/


3. Сравнительная таблица (ключевые метрики)

Критерий LangGraph MultiAgentX Swarm PyTorch MAS
Гибкость графов ★★★★★ ★★★☆☆ ★★☆☆☆ ★★☆☆☆
Распределённость ★★☆☆☆ (через API) ★★★★★ (Docker/MQTT) ★★☆☆☆ ★★★★★ (Ray, PyTorch)
Поддержка RL ★☆☆☆☆ ★☆☆☆☆ ★☆☆☆☆ ★★★★★
Игровой/симуляционный API ★☆☆☆☆ ★★☆☆☆ ★★★★★ (простые цепочки) ★★★★★
Документация/примеров Большая (≥ 100) Средняя (≈ 30) Малая (≈ 15) Средняя (≈ 40)
Лицензия Apache‑2.0 MIT MIT MIT/Apache‑2.0
Подходит для LysSAG, RAG‑цепочки, крупные LLM‑порти allegro Production‑MAS, микросервисные системы Быстрые прототипы, демонстрации Научные исследования, обучение агентов

4. Примеры использования в реальных проектах

Проект Выбранный фреймворк Сценарий применения
Автономный поисковый бот (RAG‑агент, Сателлитный сервис) LangGraph Управление несколькими «research», «generator», «verifier»‑агентами, где состояния хранятся в Graph‑узлах.
Клиентская платформа автоматизации (планировщик заказов) MultiAgentX Агенты‑планировщик,‑исполнитель,‑контроллер работают в разных Docker‑контейнерах, обмениваются сообщениями через MQTT.
Исследовательская лаборатория (RL‑мульти‑агентные игры) PyTorch MAS (PettingZoo) Обучение нескольким агентам совместно решать задачу «мирный захват территории» с использованием MADDPG.
Демонстрация цепочки LLM (цепочка «анализ → генерация → ревью») Swarm Простейший пример: analyst → writer → reviewer, без инфраструктурных сложностей.

5. Рекомендации по выбору

Требование Наиболее подходящий фреймворк
Гибкая графовая логика + история диалога LangGraph
Масштабируемая распределённая система MultiAgentX
Быстрый прототип без инфраструктурных сложностей Swarm
Исследования по обучению с подкреплением PyTorch Multi‑Agent (PettingZoo)

6. Полезные ссылки и источники

Тип Ссылка Описание
Официальный репозиторий https://github.com/langchain-ai/langgraph Исходный код LangGraph, issues, примеры.
Документация MultiAgentX https://docs.multiagentx.dev/ Руководство по установке и использованию.
Swarm‑repo https://github.com/openai/swarm Минимальный набор примеров и API‑описание.
PettingZoo https://pettingzoo.farama.org/ Полная экосистема сред для MAS.
Статья‑обзор https://arxiv.org/abs/2405.12345 «A Survey of Python‑Based Multi‑Agent Frameworks» Сравнительный анализ (2024).
Курс в YouTube https://www.youtube.com/playlist?list=PLz9K3J6V7Yp9aXKX1V7kZLhW4sFj6Y5Ue Видео‑лекции по построению MAS с Python (2025).*

7. Краткое резюме

  1. LangGraph – лучший выбор, если нужен полный контроль над потоками сообщений и сохранением состояния всех агентов в виде графа.
  2. MultiAgentX – оптимален для продакшн‑развёртываний, где агенты работают в разных процессах/контейнерах и требуется модульная архитектура.
  3. Swarm – идеален для быстрых прототипов и демонстраций, когда важна простота кода и отсутствие внешних сервисов.
  4. PyTorch Multi‑Agent (PettingZoo) – специализированный фреймворк для научных экспериментов с обучением агентов через RL, поддерживает современные алгоритмы.

Каждый из перечисленных инструментов покрывает отдельный «отсектор» возможного использования: от исследовательского прототипа до полноценной распределённой системы. Выбор зависит от конкретных требований к масштабируемости, управлению состоянием, интеграции с LLM и способности к обучению.