Процессы идеи часто требуют много времени анализа и дебатов. Что если мы заставим двух LLM придумать идеи, а затем заставят их обсудить эти идеи? Звучит интересно, верно? Этот урок точно показывает, как создать решение с AI с использованием двух агентов LLM, которые сотрудничают через структурированный разговор. Для достижения этого мы будем использовать Autogen для создания агента и CHATGPT в качестве LLM для нашего агента.
1. Установка и установка
Сначала установите необходимые пакеты:
pip install -U autogen-agentchat
pip install autogen-ext(openai)
2. Основные компоненты
Давайте рассмотрим ключевые компоненты автогена, которые заставляют эту систему идеи работать. Понимание этих компонентов поможет вам настроить и расширить систему для ваших конкретных потребностей.
1. Roundrobingroupchat
- Управляет командой агентов по поводу поворота.
- Агенты по очереди отвечают, и все сообщения разделяются для контекста.
- Обеспечивает структурированное и справедливое взаимодействие.
2. TextmentionTermination
- Останавливает разговор, когда обнаруживается конкретное ключевое слово (например, «завершить»).
- Полезно для окончания дискуссий, когда агенты достигают консенсуса или выполнения задачи.
3. Помощник
- Представляет член команды LLM с определенной ролью.
- Каждый агент определяется системным сообщением, которое направляет его поведение.
- Агенты используют историю разговора, чтобы генерировать ответы с учетом контекста.
Эти компоненты работают вместе, чтобы создать структурированную, совместную систему, в которой агенты мозговой штурм, дискуссии и эффективно принимают решения.
3. Создание команды агентов
Создайте двух специализированных агентов с различными ролями:
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.base import TaskResult
from autogen_agentchat.conditions import ExternalTermination, TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.ui import Console
from autogen_core import CancellationToken
from autogen_ext.models.openai import OpenAIChatCompletionClient
from apikey import API_KEY
# Create an OpenAI model client.
model_client = OpenAIChatCompletionClient(
model="gpt-4o-mini",
api_key=API_KEY,
)
# Create the primary agent.
primary_agent = AssistantAgent(
"participant1",
model_client=model_client,
system_message="You are a participant in an ideation and feedback session. You will be provided with a problem statement and asked to generate ideas. Your ideas will be\
reviwed by another participant and then you together will narrow down ideas by debating over them. Respond with 'FINALIZE' when you have a final idea.",
)
# Create the critic agent.
critic_agent = AssistantAgent(
"participant2",
model_client=model_client,
system_message="You are a participant in an ideation and feedback session. Your teammate will be provide some ideas that you need to review with your \
teammate and narrow down ideas by debating over them. Respond with 'FINALIZE' when you have a final idea.",
)
# Define a termination condition that stops the task if the critic approves.
text_termination = TextMentionTermination("FINALIZE")
# Create a team with the primary and critic agents.
team = RoundRobinGroupChat((primary_agent, critic_agent), termination_condition=text_termination)
4. управление командой
Выполнить с асинхронной обработкой:
result = await team.run(task="Generate ideas for an applications of AI in healthcare.")
print(result)
5. Мониторинг взаимодействий
Вы также можете отслеживать дебаты в режиме реального времени:
# When running inside a script, use a async main function and call it from `asyncio.run(...)`.
await team.reset() # Reset the team for a new task.
async for message in team.run_stream(task="Generate ideas for an applications of AI in healthcare."): # type: ignore
if isinstance(message, TaskResult):
print("Stop Reason:", message.stop_reason)
else:
print(message)
Autogen также предоставляет нам функцию для визуализации взаимодействий более красивыми способами с использованием консоль Функция:
await team.reset() # Reset the team for a new task.
await Console(team.run_stream(task="Generate ideas for an applications of AI in healthcare.")) # Stream the messages to the console.
Теперь система завершена. Но есть A-lot, с которой можно поиграть, но я оставлю это вам. Вот несколько идей, чтобы улучшить вашу систему:
- Добавление агентов, специфичных для домена (медицинские эксперты, технические валидаторы)
- Реализация пользовательских условий завершения
- Создание простого пользовательского интерфейса с использованием потока
- Добавление в команду больше игроков
Ссылки:

Vineet Kumar – стажер консалтинга в Marktechpost. В настоящее время он преследует свой BS из Индийского технологического института (IIT), Канпур. Он энтузиаст машинного обучения. Он увлечен исследованиями и последними достижениями в области глубокого обучения, компьютерного зрения и связанных с ними областей.
