Мультиагентная система на основе диалога (AutoGen)
Microsoft AutoGen позволяет нескольким агентам общаться друг с другом, пока они не достигнут согласия.
«Мультиагентная система на основе диалога (AutoGen)» — бесплатный урок AI Agents на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Зачем нужны несколько агентов?
Один агент со всеми инструментами часто хуже двух специализированных агентов, которые общаются друг с другом. Специализация лучше универсальности.
Примеры:
- Researcher + Writer — один собирает информацию, другой составляет ответ
- Coder + Reviewer — один пишет код, другой критикует его
- User-Proxy + Assistant — представляет пользователя и общается с рабочим агентом
Шаблон AutoGen
Microsoft AutoGen позволяет агентам общаться: каждый из них является AssistantAgent или UserProxyAgent. Они обмениваются сообщениями, пока не достигнут согласия.
Two-Agent Example
# pip install pyautogen
from autogen import AssistantAgent, UserProxyAgent
llm_config = {'model': 'gpt-4o-mini', 'api_key': '...'}
assistant = AssistantAgent(
name='coder',
system_message='You write Python code. Reply with code only.',
llm_config=llm_config
)
user_proxy = UserProxyAgent(
name='user',
human_input_mode='NEVER',
code_execution_config={'work_dir': './workdir'}
)
user_proxy.initiate_chat(assistant, message='Write a function that returns the factorial of n.')UserProxyAgent
Представляет человека или скрипт. Может выполнять код, возвращённый ассистентом, задавать уточняющие вопросы и определять, когда задача выполнена.
Агенты, поддерживающие диалог
Все агенты AutoGen наследуются от ConversableAgent. Для особого поведения можно создать производный класс.
GroupChat for >2 Agents
class AssistantAgent:
def __init__(self, name, system_message=''):
self.name = name
self.system_message = system_message
def initiate_chat(self, manager, message):
manager.run(self, message)
class GroupChat:
def __init__(self, agents, messages, max_round=12):
self.agents = agents
self.messages = messages
self.max_round = max_round
class GroupChatManager:
def __init__(self, groupchat, llm_config=None):
self.groupchat = groupchat
def run(self, initiator, message):
self.groupchat.messages.append({'role': initiator.name, 'content': message})
for i, agent in enumerate(self.groupchat.agents):
if i >= self.groupchat.max_round:
break
reply = f'{agent.name} contributes to: {message}'
self.groupchat.messages.append({'role': agent.name, 'content': reply})
print(reply)
user_proxy = AssistantAgent(name='user_proxy')
researcher = AssistantAgent(name='researcher')
writer = AssistantAgent(name='writer')
critic = AssistantAgent(name='critic')
group = GroupChat(agents=[user_proxy, researcher, writer, critic], messages=[], max_round=12)
manager = GroupChatManager(groupchat=group, llm_config={})
user_proxy.initiate_chat(manager, message='Write a blog post about RAG.')
Выбор говорящего
GroupChatManager решает, кто будет говорить следующим. Стратегии:
- по кругу — фиксированная ротация
- автоматически — LLM выбирает на основе диалога
- вручную — выбирает человек
Условия завершения
Диалоги заканчиваются, когда:
- агент выдаёт ключевое слово TERMINATE
- достигнуто максимальное число раундов
- UserProxyAgent определяет, что задача выполнена
Выполнение кода
UserProxyAgent может выполнить любой код, который ассистент выдаёт в блоках кода. Используйте изолированную среду:
user_proxy = UserProxyAgent(
name='user',
code_execution_config={
'work_dir': './workdir',
'use_docker': True # safer
}
)Контроль стоимости
Диалоги с несколькими агентами дороги: N агентов × M раундов = N×M вызовов LLM на задачу. Агрессивно ограничивайте число раундов.
Когда использовать
- Задачи с чётким разделением ролей (исследование, код, проверка)
- Задачи, где критика повышает качество
- Задачи, слишком сложные для одного запроса к агенту
Когда НЕ использовать
- Простые вопросы и ответы — один агент быстрее и дешевле
- Участки, критичные к задержке
- Задачи, которые один агент может качественно выполнить целиком
AutoGen и LangGraph
AutoGen основан на диалоге (свободное общение между агентами), а LangGraph — на графе (явная машина состояний). Оба подхода корректны; выбирайте тот, которому ваша задача лучше соответствует.
Шаблон AutoGen
Какова центральная абстракция в AutoGen?
Итоги
AutoGen — это общение агентов с ролями. Он отлично подходит для задач, где один агент руководит, а другие специализируются. Следите за стоимостью и ограничивайте число раундов.
Часто задаваемые вопросы
Урок «Мультиагентная система на основе диалога (AutoGen)» бесплатный?
Да — полный текст урока «Мультиагентная система на основе диалога (AutoGen)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Мультиагентная система на основе диалога (AutoGen)»?
Microsoft AutoGen позволяет нескольким агентам общаться друг с другом, пока они не достигнут согласия. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Мультиагентная система на основе диалога (AutoGen)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Мультиагентная система на основе диалога (AutoGen)
- Иерархические супервизоры (координатор + исполнители)
- Роли и специализации агентов
- Протоколы связи (шины сообщений)