AutoGen (AG2)

by AG2 Community · Python 3.9+, OpenAI, Azure, Gemini, Anthropic, Ollama

Framework Dev Tools Бесплатно v0.14.0 · 26.06.2026 активный

Мультиагентный фреймворк для создания систем, где несколько LLM-агентов ведут диалог и совместно решают задачи. Поддерживает человека в цикле (human-in-the-loop), выполнение кода в изолированной среде, групповой чат агентов, вложенный чат и плановые агенты с саморефлексией. AG2 — активно развиваемый форк оригинального Microsoft AutoGen с расширенным API.

v0.14.0
26.06.2026 current
Добавлен 29.06.2026 · Обновлён 29.06.2026 · Dev Tools
Установка
# pip (AG2 — активно поддерживаемый форк)
pip install ag2

# Или оригинальный пакет Microsoft
pip install pyautogen

# С поддержкой Docker-санбокса для выполнения кода
pip install 'ag2[docker]'

# С поддержкой всех LLM-провайдеров
pip install 'ag2[openai,anthropic,gemini,ollama]'

# Пример: два агента решают задачу
from autogen import AssistantAgent, UserProxyAgent

assistant = AssistantAgent(
    name="assistant",
    llm_config={"model": "gpt-4o-mini", "api_key": "YOUR_KEY"}
)

user_proxy = UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    code_execution_config={"work_dir": "coding", "use_docker": False}
)

user_proxy.initiate_chat(
    assistant,
    message="Write a Python script that finds prime numbers up to 100"
)
переведено ИИ



Downloads


📚 Документация | 💡 Примеры | 🤝 Участие в разработке | 📝 Цитировать статью | 💬 Присоединиться к Discord

AG2 эволюционировал из AutoGen. Полностью с открытым исходным кодом. Мы приглашаем сотрудников из всех организаций к участию.

[!IMPORTANT] AG2 находится на пути к версии 1.0. Руководимый протоколом фреймворк теперь является пакетом верхнего уровня, импортируемым как ag2. Классический фреймворк (ConversableAgent, GroupChat, …) был удален, и имя импорта autogen больше недоступно — используйте import ag2.

Прочитайте полную дорожную карту релизов →

AG2: Открытая операционная система агентов (AgentOS) для ИИ-агентов

AG2 (ранее AutoGen) — это открытый программный фреймворк для создания ИИ-агентов и содействия сотрудничеству между несколькими агентами для решения задач. AG2 направлен на упрощение разработки и исследования агентного ИИ. Он предлагает такие функции, как агенты, способные взаимодействовать друг с другом, поддержка различных больших языковых моделей (LLM) и использования инструментов, автономные и рабочие процессы с участием человека, а также модели многоагентных разговоров.

В настоящее время проект поддерживается динамичной группой волонтёров из нескольких организаций. Свяжитесь с администраторами проекта Чжи Ваном и Цинюнь Ву по адресу support@ag2.ai, если вы заинтересованы в том, чтобы стать ответственным за поддержку.

Содержание

Начало работы

Для пошагового изучения концепций и кода AG2 см. Основные концепции в нашей документации.

Установка

Для AG2 требуется версия Python >= 3.10. AG2 доступен как ag2 на PyPI.

Windows/Linux:

pip install ag2[openai]

Mac:

pip install 'ag2[openai]'

По умолчанию устанавливаются минимальные зависимости. Вы можете установить дополнительные опции в зависимости от нужных вам функций.

Настройка ключей API

Чтобы ваши зависимости от LLM были чистыми и случайно не загрузить код с вашим ключом API, мы рекомендуем хранить ключи в файле конфигурации.

В наших примерах мы используем файл с именем OAI_CONFIG_LIST для хранения ключей API. Вы можете выбрать любое имя файла, но убедитесь, что он добавлен в .gitignore, чтобы он не был отправлен в управление исходным кодом.

Вы можете использовать следующий шаблон в качестве основы:

[
  {
    "model": "gpt-5",
    "api_key": "<your OpenAI API key here>"
  }
]

Запуск вашего первого агента

Создайте скрипт или Jupyter Notebook и запустите вашего первого агента.

from ag2 import AssistantAgent, UserProxyAgent, LLMConfig

llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")

assistant = AssistantAgent("assistant", llm_config=llm_config)

user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding", "use_docker": False})

user_proxy.run(assistant, message="Summarize the main differences between Python lists and tuples.").process()

Примеры приложений

Мы поддерживаем отдельный репозиторий с широким спектром приложений, чтобы помочь вам начать работу с различными вариантов использования, или ознакомьтесь с нашей коллекцией Jupyter-блокнотов в качестве отправной точки.

Введение в различные понятия агентов

В AG2 есть несколько понятий агентов, которые помогут вам построить ваших ИИ-агентов. Здесь мы представляем наиболее распространенные из них.

  • Беседующий агент: Агенты, способные отправлять сообщения, получать сообщения и генерировать ответы с использованием моделей GenAI, не-GenAI инструментов или ввода человека.
  • Человек в цикле: Добавление ввода человека в разговор.
  • Оркестрация нескольких агентов: Пользователи могут оркестрировать нескольких агентов с использованием встроенных разговорных паттернов, таких как рои (swarms), групповые чаты, вложенные чаты, последовательные чаты или настроить оркестрацию, зарегистрировав пользовательские методы ответа.
  • Инструменты: Программы, которые могут быть зарегистрированы, вызваны и выполнены агентами.
  • Продвинутые концепции: AG2 поддерживает дополнительные концепции, такие как структурированный вывод, RAG (усиленная генерация с.retrieve извлечением), выполнение кода и т.д.

Беседующий агент

ConversableAgent является фундаментальным строительным блоком AG2, разработанным для обеспечения бесперебойного взаимодействия между ИИ-сущностями. Этот базовый тип агента обрабатывает обмен сообщениями и генерацию ответов, служа базовым классом для всех агентов во фреймворке.

Начнем с простого примера, где два агента сотрудничают: - Агент-программист, который пишет код на Python. - Агент-рецензент, который критикует код, не переписывая его.

import logging
from ag2 import ConversableAgent, LLMConfig

# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# Load LLM configuration
llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")

# Define agents
coder = ConversableAgent(
    name="coder",
    system_message="You are a Python developer. Write short Python scripts.",
    llm_config=llm_config,
)

reviewer = ConversableAgent(
    name="reviewer",
    system_message="You are a code reviewer. Analyze provided code and suggest improvements. "
    "Do not generate code, only suggest improvements.",
    llm_config=llm_config,
)

# Start a conversation
response = reviewer.run(
    recipient=coder, message="Write a Python function that computes Fibonacci numbers.", max_turns=10
)

response.process()

logger.info("Final output:\n%s", response.summary)

Оркестрация нескольких агентов

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

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

import logging
from ag2 import ConversableAgent, LLMConfig
from ag2.agentchat import run_group_chat
from ag2.agentchat.group.patterns import AutoPattern

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")
# Определение планировщика и рецензента уроков
planner_message = "Ты планировщик уроков в классе. По заданной теме составь план урока для четвероклассников."
reviewer_message = (
    "Ты рецензент уроков в классе. Сравни план с учебной программой и предложи до 3 улучшений."
)

lesson_planner = ConversableAgent(
    name="planner_agent",
    system_message=planner_message,
    description="Создает или пересматривает планы уроков.",
    llm_config=llm_config,
)

lesson_reviewer = ConversableAgent(
    name="reviewer_agent",
    system_message=reviewer_message,
    description="Предоставляет один раунд обратной связи по планам уроков.",
    llm_config=llm_config,
)

teacher_message = "Ты учитель в классе. Ты определяешь темы и сотрудничаешь с планировщиком и рецензентом для финализации планов уроков. Когда доволен результатом, выведи DONE!"

teacher = ConversableAgent(
    name="teacher_agent",
    system_message=teacher_message,
    is_termination_msg=lambda x: "DONE!" in (x.get("content", "") or "").upper(),
    llm_config=llm_config,
)

auto_selection = AutoPattern(
    agents=[teacher, lesson_planner, lesson_reviewer],
    initial_agent=lesson_planner,
    group_manager_args={"name": "group_manager", "llm_config": llm_config},
)

response = run_group_chat(
    pattern=auto_selection,
    messages="Давайте познакомим наших детей с Солнечной системой.",
    max_rounds=20,
)

response.process()

logger.info("Конечный вывод:\n%s", response.summary)

Человек в цикле (Human in the Loop)

Человеческий контроль часто необходим для валидации или направления выводов ИИ. AG2 предоставляет UserProxyAgent для бесшовной интеграции человеческой обратной связи.

Здесь мы расширяем пример учителя–планировщика–рецензента, вводя агент-человек, который валидирует финальный урок:

import logging
from ag2 import ConversableAgent, LLMConfig, UserProxyAgent
from ag2.agentchat import run_group_chat
from ag2.agentchat.group.patterns import AutoPattern

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")

# Те же агенты, что и ранее, но теперь валидатор-человек будет передавать управление планировщику, который проверит наличие "APPROVED" и завершит работу
planner_message = "Ты планировщик уроков в классе. По заданной теме составь план урока для четвероклассников."
reviewer_message = (
    "Ты рецензент уроков в классе. Сравни план с учебной программой и предложи до 3 улучшений."
)
teacher_message = "Ты опытный учитель в классе. Ты не готовишь планы, ты даешь простые указания планировщику для подготовки плана урока по ключевой теме."

lesson_planner = ConversableAgent(
    name="planner_agent",
    system_message=planner_message,
    description="Создает или пересматривает планы уроков перед их проверкой.",
    is_termination_msg=lambda x: "APPROVED" in (x.get("content", "") or "").upper(),
    human_input_mode="NEVER",
    llm_config=llm_config,
)

lesson_reviewer = ConversableAgent(
    name="reviewer_agent",
    system_message=reviewer_message,
    description="Предоставляет один раунд обратной связи по планам уроков обратно планировщику перед обращением к валидатору-человеку.",
    llm_config=llm_config,
)

teacher = ConversableAgent(
    name="teacher_agent",
    system_message=teacher_message,
    description="Предоставляет направление по теме и содержанию, если требуется.",
    llm_config=llm_config,
)

human_validator = UserProxyAgent(
    name="human_validator",
    system_message="Ты человек-педагог, который дает финальное одобрение планам уроков.",
    description="Оценивает предложенный план урока и либо одобряет его, либо запрашивает правки, затем возвращает управление планировщику.",
)

auto_selection = AutoPattern(
    agents=[teacher, lesson_planner, lesson_reviewer],
    initial_agent=teacher,
    user_agent=human_validator,
    group_manager_args={"name": "group_manager", "llm_config": llm_config},
)

response = run_group_chat(
    pattern=auto_selection,
    messages="Давайте познакомим наших детей с Солнечной системой.",
    max_rounds=20,
)

response.process()

logger.info("Конечный вывод:\n%s", response.summary)

Инструменты (Tools)

Агенты получают значительную функциональность через инструменты (tools), которые расширяют их возможности за счет внешних данных, API или функций.

import logging
from datetime import datetime
from typing import Annotated
from ag2 import ConversableAgent, register_function, LLMConfig

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")


# Инструмент: возвращает день недели для заданной даты
def get_weekday(date_string: Annotated[str, "Формат: YYYY-MM-DD"]) -> str:
    date = datetime.strptime(date_string, "%Y-%m-%d")
    return date.strftime("%A")


date_agent = ConversableAgent(
    name="date_agent",
    system_message="Ты находишь день недели для заданной даты.",
    llm_config=llm_config,
)

executor_agent = ConversableAgent(
    name="executor_agent",
    human_input_mode="NEVER",
    llm_config=llm_config,
)

# Регистрация инструмента
register_function(
    get_weekday,
    caller=date_agent,
    executor=executor_agent,
    description="Получить день недели для заданной даты",
)

# Использование инструмента в чате
chat_result = executor_agent.initiate_chat(
    recipient=date_agent,
    message="Я родился 1995-03-25, какой это был день?",
    max_turns=2,
)

logger.info("Конечный вывод:\n%s", chat_result.chat_history[-1]["content"])

Продвинутые агентные паттерны проектирования

AG2 поддерживает более продвинутые концепции, чтобы помочь вам создавать рабочие процессы ваших ИИ-агентов. Больше информации вы можете найти в документации.

Объявления

🔥 🎉 11 ноября 2024: Мы развиваем AutoGen в AG2! Создана новая организация AG2AI для разработки AG2 и связанных проектов с открытым управлением. Ознакомьтесь с новым обликом AG2.

📄 Лицензия: Мы adoptируем лицензию Apache 2.0 начиная с версии v0.3. Это укрепляет наши commitments к открытому сотрудничеству, обеспечивая при этом дополнительную защиту как для контрибьюторов, так и для пользователей.

🎉 29 мая 2024: DeepLearning.ai запустил новый короткий курс AI Agentic Design Patterns with AutoGen, созданный в сотрудничестве с Microsoft и Penn State University, и преподаваемый создателями AutoGen Chi Wang и Qingyun Wu.

🎉 24 мая 2024: Foundation Capital опубликовал статью на Forbes: The Promise of Multi-Agent AI и видео AI in the Real World Episode 2: Exploring Multi-Agent AI and AutoGen with Chi Wang.

🎉 17 апреля 2024: Andrew Ng процитировал AutoGen в рассылке The Batch и на What's next for AI agentic workflows в Sequoia Capital's AI Ascent (26 марта).

Больше объявлений

Стиль кода и линтеры

Этот проект использует хуки prek для поддержания качества кода. Перед вкладом:

  1. Установите prek:
pip install prek
prek install
  1. Хуки будут автоматически запускаться при коммите, или вы можете запустить их вручную:
prek run --all-files

Связанные статьи

Стена участников (Contributors Wall)

Цитируйте проект

@software{AG2_2024,
author = {Chi Wang and Qingyun Wu and the AG2 Community},
title = {AG2: Open-Source AgentOS for AI Agents},
year = {2024},
url = {https://github.com/ag2ai/ag2},
note = {Available at https://docs.ag2.ai/},
version = {latest}
}

Лицензия

Проект лицензирован в соответствии с Лицензией Apache, версия 2.0 (Apache-2.0).

Этот проект является форком AutoGen и содержит код под двумя лицензиями:

  • Оригинальный код из https://github.com/microsoft/autogen лицензирован по MIT License. Подробности см. в файле LICENSE_original_MIT.

  • Модификации и дополнения, внесенные в этот форк, лицензированы по Лицензии Apache, версия 2.0. Полный текст лицензии см. в файле LICENSE.

Мы задокументировали эти изменения для ясности и обеспечения прозрачности перед нашим сообществом пользователей и участников. Для получения дополнительной информации см. файл NOTICE.

Комментарии
Войдите, чтобы оставить комментарий