Home >Technology peripherals >AI >Hands-on Guide to Building Multi Agent Chatbots with Autogen

Hands-on Guide to Building Multi Agent Chatbots with Autogen

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-03-19 09:51:14506browse

AutoGen empowers sophisticated multi-agent chatbot development, moving beyond simple question-answer systems. This article details how AutoGen facilitates advanced conversation patterns like sequential and nested chats, enabling dynamic, multi-participant interactions for complex workflows. We previously explored two-agent chatbots; this expands upon that foundation.

Table of Contents

  • What are Multi-Agent Chatbots?
  • AutoGen's Conversation Patterns
  • Understanding Sequential Chat
  • Prerequisites
  • Implementation
    • Defining Tasks
    • Defining Agents
    • Example Conversation
    • Analyzing Results
  • Conclusion
  • Frequently Asked Questions

What are Multi-Agent Chatbots?

Multi-agent chatbots leverage multiple specialized AI agents working collaboratively to handle intricate tasks or conversations. Each agent possesses expertise in a specific area (e.g., question answering, recommendation generation, data analysis). This division of labor results in more accurate and efficient responses. The coordinated efforts of multiple agents provide richer, more nuanced interactions than single-agent systems, making them suitable for complex scenarios in customer service, e-commerce, and education.

AutoGen's Conversation Patterns

AutoGen offers several conversation patterns for managing multi-agent interactions:

  1. Sequential Chat: A series of two-agent conversations, where each chat's summary informs the next.
  2. Group Chat: A single conversation involving multiple agents, requiring strategic agent response management.
  3. Nested Chat: Encapsulates a workflow within a single agent for reuse in larger workflows.

This article focuses on implementing Sequential Chat.

Understanding Sequential Chat

Sequential Chat involves a chain of two-agent conversations. The summary of one chat becomes the context for the subsequent chat.

Hands-on Guide to Building Multi Agent Chatbots with Autogen

The diagram illustrates a sequence of chats, potentially with a common agent across chats or different agents for each interaction. This approach is valuable when a task is divisible into interdependent sub-tasks, each best handled by a specialized agent.

Prerequisites

Before building AutoGen agents, obtain necessary LLM API keys and set up Tavily for web searching. Load API keys into a .env file. Define the LLM configuration:

config_list = {
    "config_list": [{"model": "gpt-4o-mini", "temperature": 0.2}]
}

Install autogen-agentchat (version 0.2.37 or later).

Implementation

This example creates a stock analysis system using Nvidia and Apple as examples.

Defining Tasks

financial_tasks = [
    """What are the current stock prices of NVDA and AAPL, and how is the performance over the past month in terms of percentage change?""",
    """Investigate possible reasons for the stock performance leveraging market news.""",
]

writing_tasks = ["""Develop an engaging blog post using any information provided."""]

Defining Agents

import autogen

financial_assistant = autogen.AssistantAgent(name="Financial_assistant", llm_config=config_list)
research_assistant = autogen.AssistantAgent(name="Researcher", llm_config=config_list)
writer = autogen.AssistantAgent(name="writer", llm_config=config_list, system_message="""
    You are a professional writer, known for your insightful and engaging articles.
    You transform complex concepts into compelling narratives.
    Reply "TERMINATE" in the end when everything is done.
    """)

user_proxy_auto = autogen.UserProxyAgent(name="User_Proxy_Auto", human_input_mode="ALWAYS",
                                         is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
                                         code_execution_config={"work_dir": "tasks", "use_docker": False})

user_proxy = autogen.UserProxyAgent(name="User_Proxy", human_input_mode="ALWAYS",
                                    is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
                                    code_execution_config=False)

user_proxy_auto handles code execution (set human_input_mode="ALWAYS" for code review). user_proxy interacts with the writer agent.

Example Conversation

chat_results = autogen.initiate_chats([
    {"sender": user_proxy_auto, "recipient": financial_assistant, "message": financial_tasks[0], "clear_history": True, "silent": False, "summary_method": "last_msg"},
    {"sender": user_proxy_auto, "recipient": research_assistant, "message": financial_tasks[1], "summary_method": "reflection_with_llm"},
    {"sender": user_proxy, "recipient": writer, "message": writing_tasks[0]}
])

Analyzing Results

The chat_results variable contains the conversation history for each agent. The example shows the writer agent's output:

Hands-on Guide to Building Multi Agent Chatbots with Autogen

Conclusion

AutoGen's sequential chat pattern enables the creation of sophisticated multi-agent chatbots capable of handling complex tasks and conversations. This approach is highly beneficial for various applications requiring collaborative AI agents.

Frequently Asked Questions

Q1. What are multi-agent chatbots, and how do they work? Multi-agent chatbots utilize multiple specialized agents to collaboratively manage complex conversations by dividing tasks.

Q2. What conversation patterns does AutoGen support? AutoGen supports sequential, group, and nested chat patterns for efficient multi-agent coordination.

Q3. How does Sequential Chat function in AutoGen? Sequential Chat chains two-agent conversations, using each chat's summary as context for the next.

Q4. What are practical applications of AutoGen's multi-agent patterns? These patterns are valuable in customer service, finance, e-commerce, and other fields requiring complex, adaptive chatbot interactions.

The above is the detailed content of Hands-on Guide to Building Multi Agent Chatbots with Autogen. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn