Trace OpenAI Agents SDK agents with Weave
- Python
- TypeScript
The Weave SDK autopatches with the OpenAI Agents SDK for Python so you can capture traces from your agents with minimal setup. This guide explains how to initialize Weave and then run a multi-turn research agent built with the OpenAI Agents SDK so that Weave captures every agent invocation, model call, and tool call across the session.
Prerequisites
Before you begin, make sure you have the following:- A CoreWeave Forge account and API key set as a
WANDB_API_KEYenvironment variable. - An OpenAI API key.
- Python 3.10+.
Install packages
Install the following packages in your developer environment so that Weave and the SDK are available to your script.Initialize Weave in your code
- Python
- TypeScript
Add The example runs three turns in a single conversation. The first two turns trigger Wikipedia lookups, and the third uses the prior conversation context to produce a summary without a tool call. Each call to
weave.init to the project, along with your CoreWeave Forge team and project names, and then build your agent as usual. The following code defines a wikipedia_search function tool and a Research assistant agent, then runs three questions through the OpenAI Agents SDK Runner while Weave captures the trace. Each Runner.run call starts its own trace, so the example passes a RunConfig with a shared group_id on every call. Weave uses group_id to group traces from the same conversation, falling back to each trace’s own ID when no group_id is set.Runner.run continues the conversation by passing the previous result’s input list back as the next request, and shares the same group_id so Weave groups all three turns into one conversation in the Agents view. Without a shared group_id, each turn falls back to its own trace ID and appears as a separate conversation.See your agent traces in the Agents view
After the script runs,weave.init() prints a link to your project. Open the Agents view to inspect:
- A session containing the conversation’s turns.
- Each turn rendered as an
invoke_agentspan with nestedchatandexecute_toolchildren. - The full input, model, output, token usage, and tool results at each step.