Quickstart#

Warning

AgentChat is Work in Progress. APIs may change in future releases.

Note

For installation instructions, please refer to the installation guide.

In AutoGen AgentChat, you can build applications quickly using preset agents. To illustrate this, we will begin with creating a team of a single agent that can use tools and respond to messages.

The following code uses the OpenAI model. If you haven’t already, you need to install the following package and extension:

pip install 'autogen-agentchat==0.4.0.dev6' 'autogen-ext[openai]==0.4.0.dev6'

To use Azure OpenAI models and AAD authentication, you can follow the instructions here.

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.task import Console, TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models import OpenAIChatCompletionClient


# Define a tool
async def get_weather(city: str) -> str:
    return f"The weather in {city} is 73 degrees and Sunny."


async def main() -> None:
    # Define an agent
    weather_agent = AssistantAgent(
        name="weather_agent",
        model_client=OpenAIChatCompletionClient(
            model="gpt-4o-2024-08-06",
            # api_key="YOUR_API_KEY",
        ),
        tools=[get_weather],
    )

    # Define termination condition
    termination = TextMentionTermination("TERMINATE")

    # Define a team
    agent_team = RoundRobinGroupChat([weather_agent], termination_condition=termination)

    # Run the team and stream messages to the console
    stream = agent_team.run_stream(task="What is the weather in New York?")
    await Console(stream)


# NOTE: if running this inside a Python script you'll need to use asyncio.run(main()).
await main()
---------- user ----------
What is the weather in New York?
---------- weather_agent ----------
[FunctionCall(id='call_AhTZ2q3TNL8x0qs00e3wIZ7y', arguments='{"city":"New York"}', name='get_weather')]
[Prompt tokens: 79, Completion tokens: 15]
---------- weather_agent ----------
[FunctionExecutionResult(content='The weather in New York is 73 degrees and Sunny.', call_id='call_AhTZ2q3TNL8x0qs00e3wIZ7y')]
---------- weather_agent ----------
The weather in New York is currently 73 degrees and sunny.
[Prompt tokens: 90, Completion tokens: 14]
---------- weather_agent ----------
TERMINATE
[Prompt tokens: 137, Completion tokens: 4]
---------- Summary ----------
Number of messages: 5
Finish reason: Text 'TERMINATE' mentioned
Total prompt tokens: 306
Total completion tokens: 33
Duration: 1.43 seconds

The code snippet above introduces two high level concepts in AgentChat: Agent and Team. An Agent helps us define what actions are taken when a message is received. Specifically, we use the AssistantAgent preset - an agent that can be given access to a model (e.g., LLM) and tools (functions) that it can then use to address tasks. A Team helps us define the rules for how agents interact with each other. In the RoundRobinGroupChat team, agents respond in a sequential round-robin fashion. In this case, we have a single agent, so the same agent is used for each round.

What’s Next?#

Now that you have a basic understanding of how to define an agent and a team, consider following the tutorial for a walkthrough on other features of AgentChat.