Runnable examples that send AG2 traces to a local Phoenix
instance at http://localhost:6006. Each example sets its own Phoenix project through the
openinference.project.name resource attribute, so traces stay separated as you work
through them.
pip install arize-phoenix
phoenix serve # in a separate terminal
pip install -r requirements.txt
export OPENAI_API_KEY=<your-key>
| Example | Phoenix project | Requires a key | What it traces |
|---|---|---|---|
no_llm_multi_agent.py |
ag2-no-llm-multi-agent |
No | A two-agent chat and a tool call, using canned replies |
sessions_and_metadata.py |
ag2-sessions-and-metadata |
No | Two chats grouped into one Phoenix session, with user, metadata, and tags |
conversable_agent_run.py |
ag2-conversable-agent |
Yes | The quickstart agent driven by run() and response.process() |
tool_calling.py |
ag2-tool-calling |
Yes | An LLM-driven tool call, split across a calling and an executing agent |
group_chat.py |
ag2-group-chat |
Yes | An AutoPattern group chat where a manager routes between specialists |
sequential_chats.py |
ag2-sequential-chats |
Yes | A queue of chats passing carryover forward via initiate_chats |
structured_output.py |
ag2-structured-output |
Yes | An agent replying with schema-validated JSON via response_format |
async_tool_calling.py |
ag2-async-tool-calling |
Yes | The async paths: a_initiate_chat, a_generate_reply, a_execute_function |
If you have no API key handy, start with no_llm_multi_agent.py — it runs offline and is
the quickest way to confirm traces are reaching Phoenix.
python no_llm_multi_agent.py
group_chat.py produces the most detailed trace, including the manager’s speaker
selection:
_User.initiate_chat [AGENT]
chat_manager.generate_reply [AGENT]
finance_bot.generate_reply [AGENT]
ChatCompletion [LLM]
checking_agent.initiate_chat [AGENT]
speaker_selection_agent.generate_reply [AGENT]
ChatCompletion [LLM]
summary_bot.generate_reply [AGENT]
ChatCompletion [LLM]
| AG2 method | Span name | OpenInference span kind |
|---|---|---|
initiate_chat / a_initiate_chat (also used by run and initiate_chats) |
<agent>.initiate_chat |
AGENT |
generate_reply / a_generate_reply |
<agent>.generate_reply |
AGENT |
execute_function / a_execute_function |
<tool> |
TOOL |
The LLM spans come from instrumenting the OpenAI client alongside AG2, which the
LLM-backed examples do with OpenAIInstrumentor.
To send traces to Phoenix Cloud instead, point the exporter at your collector endpoint and add your API key as described in the Phoenix docs.