COMRAD404 / HOWTO

Как создать мультиагентную систему с AutoGen

Пошаговая инструкция по AutoGen 0.7.5: установите пакеты, проверьте версии, создайте несколько AssistantAgent и соберите их в RoundRobinGroupChat.

Понадобится

45–60 минут
  • Python 3.10 или новее
  • Терминал и доступ в интернет
  • Аккаунт у выбранного LLM-провайдера
  • Для MCP — отдельный MCP-сервер и extra `autogen-ext[mcp]`

После выполнения инструкции вы соберёте мультиагентную систему в AutoGen 0.7.5 на Python 3.10+: установите нужные пакеты, проверьте версию, создадите несколько AssistantAgent и запустите их через RoundRobinGroupChat. Практический вердикт: AutoGen сейчас в maintenance mode; если вы стартуете новый проект, Microsoft рекомендует Microsoft Agent Framework, а AutoGen оставляйте для уже выбранного стека, прототипа или поддержки существующего решения.

Если вам нужен одиночный агент, начните с Как создать простого AI-агента с LangChain. Если нужен retrieval-слой, держите под рукой Как собрать RAG-систему: пошагово.

Редакционная оговорка: примеры ниже опираются на stable-документацию AutoGen 0.7.5 и проверку установленных пакетов. В источниках часть материала разделена между stable и dev ветками, поэтому перед внедрением сверяйте код с вашей установленной версией.

Сводка

Параметр Значение
Время 45–60 минут
Сложность средний
Стоимость open-source; расходы на LLM и внешние сервисы отдельно
Что потребуется Python 3.10 или новее, терминал, доступ к выбранному LLM-провайдеру, интернет; для MCP — extra autogen-ext[mcp]
Актуальная версия AutoGen 0.7.5 (на дату 2026-08-14)

Оглавление

Что именно вы соберёте

Базовый маршрут в официальной документации выглядит просто: сначала установка, затем несколько агентов, затем команда и запуск через поток событий. Для старта достаточно двух ролей: один агент планирует, второй собирает ответ. В AutoGen это удобно делать через AssistantAgent, а затем объединять агентов в RoundRobinGroupChat.

Round-robin-подход полезен там, где вы хотите предсказуемую очередность: участники разговаривают по кругу и используют общий контекст. Если вам не подходит такая схема, в официальных presets есть SelectorGroupChat, MagenticOneGroupChat и Swarm.

  • База: два AssistantAgent с разными ролями и один RoundRobinGroupChat.
  • Проверка: запуск через run_stream(...) и финальный TaskResult.
  • Расширение: tools, MCP, memory/RAG и визуальная сборка в AutoGen Studio.

Пошагово

  1. Проверьте версию Python. Откройте терминал и выполните python --version. Для AutoGen нужен Python 3.10 или новее; если версия ниже, сначала переключитесь на подходящий интерпретатор. Ожидаемый результат: в выводе видна версия 3.10+.
  2. Установите AgentChat и OpenAI extension. Выполните официальный стартовый набор для AgentChat:
    pip install -U "autogen-agentchat" "autogen-ext[openai]"

    Ожидаемый результат: pip завершает установку без ошибок, а в окружении появляются пакеты AutoGen.

  3. Проверьте установку через версии модулей. Запустите команду из документации и убедитесь, что импорты проходят:
    python -c "import autogen_core, autogen_agentchat, autogen_ext.models.openai; print(autogen_core.__version__); print(autogen_agentchat.__version__); print(autogen_ext.models.openai.__version__)"

    Ожидаемый результат: команды печатают версии модулей без Traceback.

  4. Создайте двух AssistantAgent с разными ролями. Сохраните минимальный рабочий скрипт. Имя модели здесь не зафиксировано в источниках, поэтому подставьте свой рабочий идентификатор через переменную окружения или замените клиент на свой провайдерный вариант:
    import asyncio
    import os
    
    from autogen_agentchat.agents import AssistantAgent
    from autogen_ext.models.openai import OpenAIChatCompletionClient
    
    async def main():
        model_client = OpenAIChatCompletionClient(model=os.environ['OPENAI_MODEL'])
        planner = AssistantAgent(
            name='planner',
            model_client=model_client,
            system_message='Разбей задачу на этапы.'
        )
        writer = AssistantAgent(
            name='writer',
            model_client=model_client,
            system_message='Собери финальный ответ.'
        )
    
    asyncio.run(main())

    Ожидаемый результат: у вас есть как минимум два агента с разными задачами, готовые к оркестрации.

  5. Соберите RoundRobinGroupChat и запустите поток. Добавьте команду в один общий сценарий и используйте потоковый запуск. Для терминала можно использовать Console(...), как в официальном туториале; ниже показан эквивалент через явный цикл:
    import asyncio
    import os
    
    from autogen_agentchat.agents import AssistantAgent
    from autogen_agentchat.teams import RoundRobinGroupChat
    from autogen_ext.models.openai import OpenAIChatCompletionClient
    
    async def main():
        model_client = OpenAIChatCompletionClient(model=os.environ['OPENAI_MODEL'])
        planner = AssistantAgent(
            name='planner',
            model_client=model_client,
            system_message='Разбей задачу на этапы.'
        )
        writer = AssistantAgent(
            name='writer',
            model_client=model_client,
            system_message='Собери финальный ответ.'
        )
        team = RoundRobinGroupChat([planner, writer])
        async for event in team.run_stream(task='Составьте план запуска мультиагентной системы.'):
            print(event)
    
    asyncio.run(main())

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

  6. Добавьте расширения только после базового запуска. Если базовая схема уже работает, подключайте Memory для долговременного контекста или autogen-ext[mcp] для внешних MCP-серверов. Не смешивайте все расширения сразу: так проще локализовать проблему и проверить, что именно сломалось.

Память, MCP и Studio

Память и RAG

Для RAG и persistent memory AutoGen использует protocol Memory с методами query, update_context, add, clear и close. Ключевая деталь: update_context модифицирует контекст AssistantAgent, поэтому memory в AutoGen не сводится к внешнему хранилищу — она реально участвует в подготовке ответа.

Для практической схемы держите в голове простое правило: сначала проверьте базовый team, затем добавляйте memory-слой и лишь потом подцепляйте свой storage. Для полноценных production-сценариев обычно нужен собственный backend memory store или готовое расширение, например ChromaDB или Redis.

MCP

MCP-интеграция доступна через autogen-ext[mcp]. Официально поддерживаются tools, resources, resource templates, prompts и optional sampling. При этом Roots и Elicitation не поддерживаются по официальной таблице совместимости, поэтому не рассчитывайте на них в рабочем сценарии.

Если вы подключаете внешний MCP-сервер, проверяйте его отдельно от логики агентов. Так вы быстрее поймёте, где именно ошибка: в оркестрации AutoGen, в самом MCP endpoint или в ограничениях вашего провайдера.

AutoGen Studio

AutoGen Studio подходит, если вам удобнее собирать prototype без кода или отлаживать систему визуально. В Studio можно задавать teams, agents, models, tools и termination conditions, запускать всё в Playground и экспортировать или импортировать JSON-конфигурации.

Это хороший путь для быстрой проверки идеи, но не путайте его с готовым production-слоем: для боевого использования вам всё равно понадобятся собственные auth, security и ops-слои.

Как проверить, что всё работает

  1. Снова выполните команду проверки версий и убедитесь, что импорты проходят без ошибок.
  2. Запустите минимальный team-сценарий и дождитесь потокового вывода.
  3. Проверьте, что агенты отвечают по очереди, а не одновременно и не в одном сообщении.
  4. Убедитесь, что выполнение завершается финальным объектом TaskResult.

Если вы подключали memory или MCP, проверяйте их по одному: сначала базовый запуск, потом один extension, затем следующий. Так вы не перепутаете сетевую проблему, проблему схемы данных и проблему оркестрации.

Частые ошибки и исправления

  • Ошибка: Python ниже 3.10. ✅ Решение: переключитесь на Python 3.10+ до установки пакетов; иначе AutoGen не ставится по официальным требованиям.
  • Ошибка: установлен только autogen-agentchat, но нет autogen-ext[openai]. ✅ Решение: ставьте официальный стартовый набор целиком, а затем снова проверьте импорты.
  • Ошибка: вы пытаетесь включить MCP без extra autogen-ext[mcp]. ✅ Решение: добавьте нужное расширение и проверьте, что используете только поддерживаемые возможности MCP.
  • Ошибка: ожидание активного развития фич в AutoGen. ✅ Решение: помните, что проект в maintenance mode; для новых проектов Microsoft рекомендует Microsoft Agent Framework.
  • Ошибка: смешали stable и dev примеры без проверки версии. ✅ Решение: сверяйте код с установленной 0.7.5 и держите проверку __version__ обязательным шагом.

Безопасность и ограничения

  • AutoGen не публикует единую цену; ваши расходы зависят от LLM-провайдера, MCP-сервера, storage и прочих внешних сервисов.
  • Региональная доступность и entitlement для провайдеров и hosted tools не определяются AutoGen; проверяйте это у соответствующего поставщика.
  • В релизах есть security warnings, связанные с default на DockerCommandLineCodeExecutor; не считайте любой код-экзекьютор безопасным по умолчанию.
  • MCP поддерживает не всё: Roots и Elicitation официально не поддерживаются.
  • Для AutoGen Studio в production нужны собственные слои безопасности, а не только Playground и JSON.
  • Если вы строите новый проект с нуля, практичнее сразу оценить Microsoft Agent Framework и миграционный путь из AutoGen.

Что делать дальше

Для визуального прототипирования проверьте AutoGen Studio: там вы быстро соберёте teams и протестируете JSON-конфигурации, а затем перенесёте отлаженную логику в код.

Вопросы и ответы

Можно ли использовать AutoGen для нового проекта?

Можно, но это не первый выбор для старта с нуля: проект сейчас в maintenance mode, а Microsoft рекомендует Microsoft Agent Framework для новых решений.

Какая версия AutoGen нужна?

Официальная stable-версия в документации — 0.7.5. Проверяйте её через импорт модулей и вывод __version__.

Сколько стоит AutoGen?

Цена AutoGen как продукта в официальных источниках не указана. Сам фреймворк open-source, но расходы на модель, storage, MCP и инфраструктуру зависят от ваших внешних сервисов.

Поддерживает ли AutoGen MCP?

Да, через autogen-ext[mcp]. Поддерживаются tools, resources, resource templates, prompts и optional sampling, но Roots и Elicitation не поддерживаются.

Можно ли строить RAG и долгую память?

Да. Для этого в AutoGen есть protocol Memory с query, update_context, add, clear и close. Для production обычно нужен свой backend memory store или внешнее расширение.

Источники

Шаги

HOW-TO
  1. Проверьте Python 3.10+

    | Откройте терминал и выполните `python --version`. Если версия ниже 3.10, переключитесь на подходящий интерпретатор до установки AutoGen.

  2. Установите пакеты AutoGen

    | Выполните официальный стартовый набор: `pip install -U "autogen-agentchat" "autogen-ext[openai]"`. Ожидаемый результат: установка проходит без ошибок.

  3. Проверьте установку модулями

    | Запустите команду из документации и убедитесь, что импорты проходят: `python -c "import autogen_core, autogen_agentchat, autogen_ext.models.openai; print(autogen_core.__version__); print(autogen_agentchat.__version__); print(autogen_ext.models.openai.__version__)"`.

  4. Создайте двух AssistantAgent

    | Определите минимум два агента с разными ролями, например planner и writer, и подключите к ним один model client. Имя модели здесь не зафиксировано в источниках, поэтому подставьте свой рабочий идентификатор.

  5. Соберите RoundRobinGroupChat

    | Объедините агентов в `RoundRobinGroupChat` и запустите `run_stream(...)`. Ожидаемый результат: агенты отвечают по очереди, а поток доходит до завершения.

  6. Добавьте memory или MCP по одному

    | Если базовый сценарий уже работает, подключайте Memory для RAG или `autogen-ext[mcp]` для внешних MCP-серверов. Не смешивайте расширения в первом же тесте.

Источники

SOURCES

Вопросы и ответы

FAQ
Можно ли использовать AutoGen для нового проекта?

Можно, но это не первый выбор для старта с нуля: проект сейчас в maintenance mode, а Microsoft рекомендует Microsoft Agent Framework для новых решений.

Какая версия AutoGen нужна?

Официальная stable-версия в документации — 0.7.5. Проверяйте её через импорт модулей и вывод __version__.

Сколько стоит AutoGen?

Цена AutoGen как продукта в официальных источниках не указана. Сам фреймворк open-source, но расходы на модель, storage, MCP и инфраструктуру зависят от ваших внешних сервисов.

Поддерживает ли AutoGen MCP?

Да, через autogen-ext[mcp]. Поддерживаются tools, resources, resource templates, prompts и optional sampling, но Roots и Elicitation не поддерживаются.

Можно ли строить RAG и долгую память?

Да. Для этого в AutoGen есть protocol Memory с query, update_context, add, clear и close. Для production обычно нужен свой backend memory store или внешнее расширение.

Читайте также

LINKS