AutoGen AgentChat Tracing
Instrument and observe your AgentChat application
AutoGen AgentChat is the framework within Microsoft's AutoGen that enables robust multi-agent application.
Launch Arize
To get started, sign up for a free Arize account and get your Space ID and API Key.
Install
pip install openinference-instrumentation-autogen-agentchat autogen-agentchat arize-otel
Setup
Connect your application to Arize and then apply the AutogenAgentChatInstrumentor
.
# Import Arize OTel registration
from arize.otel import register
# Import the automatic instrumentor from OpenInference
from openinference.instrumentation.autogen_agentchat import AutogenAgentChatInstrumentor
# Setup OTel via our convenience function
tracer_provider = register(
space_id = "your-space-id", # in app space settings page
api_key = "your-api-key", # in app space settings page
project_name = "my-agentchat-project", # name this to whatever you would like
)
# Start the instrumentor for AutogenAgentChat
AutogenAgentChatInstrumentor().instrument(tracer_provider=tracer_provider)
Run AgentChat
We’re going to run an AgentChat
example using a multi-agent team. To get started, install the required packages to use your LLMs with AgentChat
. In this example, we’ll use OpenAI as the LLM provider.
pip install autogen_ext openai
import asyncio
import os
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.conditions import TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai._openai_client import OpenAIChatCompletionClient
os.environ["OPENAI_API_KEY"] = "your-api-key"
async def main():
model_client = OpenAIChatCompletionClient(
model="gpt-4",
)
# Create two agents: a primary and a critic
primary_agent = AssistantAgent(
"primary",
model_client=model_client,
system_message="You are a helpful AI assistant.",
)
critic_agent = AssistantAgent(
"critic",
model_client=model_client,
system_message="""
Provide constructive feedback.
Respond with 'APPROVE' when your feedbacks are addressed.
""",
)
# Termination condition: stop when the critic says "APPROVE"
text_termination = TextMentionTermination("APPROVE")
# Create a team with both agents
team = RoundRobinGroupChat(
[primary_agent, critic_agent],
termination_condition=text_termination
)
# Run the team on a task
result = await team.run(task="Write a short poem about the fall season.")
await model_client.close()
print(result)
if __name__ == "__main__":
asyncio.run(main())
Observe
Arize provides visibility into your AgentChat operations by automatically tracing all interactions.
Resources
Last updated
Was this helpful?