This topic explains how to create and use agent graphs to orchestrate multi-agent workflows with AgentControl.
Agent graphs let you define and manage multi-agent workflows by modeling how data flows between agent-based configs. An agent graph is a directed graph where each node represents an agent-based config, and each edge defines how output is passed from one agent to another.
Use agent graphs for workflows that require multiple agents. Agent graphs coordinate responsibilities across agents, support reuse across workflows, and define the execution order of agents in complex systems.
At an organizational level, agent graphs support:
Agent graphs build on agent-based configs. To learn more about the underlying concepts, read AgentControl and Agents.
An agent graph is a rooted, directed graph that uses existing agent-based configs as nodes. Edges define how execution moves from one agent to another, and can optionally include handoff data.
An agent graph is defined by:
A config can appear in multiple agent graphs. Agent graphs can include cycles, including cases where two agents reference each other. LaunchDarkly does not enforce acyclic graphs and does not impose recursion or termination rules.
Agent graphs are evaluated through the LaunchDarkly AI SDK. The SDK resolves the graph structure and evaluates each agent-based config using standard targeting rules.
LaunchDarkly does not execute agent graphs or call model providers. The SDK does not manage graph state or traversal decisions. Execution behavior such as model invocation, state handling, edge selection, and termination logic occurs outside of LaunchDarkly.
Agent graphs provide a structured representation of multi-agent workflows that can be evaluated and distributed through LaunchDarkly without embedding the graph topology in application code.
This section describes the permissions required to manage agent graphs and the constraints that apply to agent graph structure.
To create or manage agent graphs, you must have permissions that allow editing AgentControl config resources in the project. Agent graphs use the same role-based access control model as AgentControl. Users without permissions to edit AgentControl config resources can view agent graphs but cannot modify them.
Agent graphs must meet the following requirements:
LaunchDarkly enforces these conditions when an agent graph is created, updated, or evaluated through the SDK.
Use the agent graph builder in the LaunchDarkly UI to create and manage agent graphs.

The agent graph builder shows:
To create an agent graph:
After you create the agent graph, LaunchDarkly opens the agent graph builder.
Each node in an agent graph represents an agent-based config.
To add an agent node:
In the agent graph builder, click + Add your first agent or Add agent.
Use the Select an agent dropdown to select the first agent-based config for your graph. You can use the search box to find an agent by entering all or part of the agent’s name. After selection, the node shows the chosen agent and its available variations.
Click the downward-facing arrow button.

Use the new Select an agent dropdown to select another agent-based config.

(Optional) Repeat these steps to add additional agents.
Click Save.
Handoffs are JSON objects attached to edges between nodes. Handoff data is available during graph traversal in the SDK and can be interpreted according to your application logic.
To configure a handoff:
You can update an agent graph to change its structure or metadata.
To edit an agent graph:
When you save an update, LaunchDarkly replaces the existing graph structure with the new version.
Delete an agent graph when it is no longer needed.
To delete an agent graph:
The agent graph builder includes a JSON preview that shows the graph structure evaluated by the SDK.
To view the JSON representation, open an agent graph and click Preview JSON in the upper-right corner of the builder.
Use this view to:
The JSON preview reflects the exact structure delivered to the SDK at runtime and can help validate that the graph behaves as expected before you use it in your application.
Use the LaunchDarkly AI SDK to evaluate and traverse an agent graph at runtime.
Agent graph functionality is currently supported in the Python AI SDK only.
Before you begin, make sure your application has a live SDK connection by completing the Quickstart for AgentControl.
Each agent graph has a unique key that you use to reference it in code. You can find this key in the agent graph details panel in the UI.

Use the graph key to initialize the agent graph with an SDK context:
After initialization, verify that the graph is enabled:
An agent graph may be disabled if:
You can enable debug logging in your application to receive warning messages that explain why a graph is disabled.
After initializing the graph, traverse it to construct or execute your workflow. The SDK provides two traversal methods:
traversereverse_traverseUse reverse_traverse when child agents must be created before their parent agents.
The following example uses reverse_traverse with the OpenAI Agents framework to construct a simple multi-agent workflow:
Traversal functions receive two arguments:
node, an AgentGraphNode representing the current agentctx, a mutable execution context used to store state during traversalCalling node.get_config() returns the evaluated agent-based config. Calling node.get_edges() returns the outgoing edges from that node, including any associated handoff data.
Each value returned from the traversal function is stored in the execution context, keyed by the agent’s config key.
When using reverse_traverse, traversal processes child agents before parent agents. Agents created earlier in the traversal are available to agents created later.
In a graph where some agents depend on the output of others, traversal begins at the leaf nodes and proceeds toward the root. Each agent is created before any agent that references it.
The following diagram shows a simplified view of agent relationships in the graph. It illustrates parent and child agents and does not represent a serialized format such as JSON.
The traversal method returns the root node of the graph. In this example, the root node is an OpenAI Agent instance that can be executed directly using Runner.run.
If you’re using specific frameworks, you can omit the traversal methods if you want to track things automatically. When you run the graph through this method all of the orchestration will be handled for you and metrics will be automatically collected. We’d recommend this method if you’re using a supported framework and don’t need to inspect the process mid-run.
Currently supported frameworks: LangGraph, OpenAI Agents SDK
When you record metrics using the AI SDK tracker, you can associate those metrics with an agent graph. Metrics recorded with a graph key appear in the Graph and Monitoring tabs for the agent graph.
All tracker methods accept an optional graph_key parameter, including methods for tracking duration, tokens, success, errors, evaluation scores, and tool usage. For the complete list of available tracking methods, read the Python AI SDK reference.
Use the graph_key parameter when recording metrics for agent executions within a graph. You can pass graph_key to individual tracking methods for a single agent execution. This includes metrics such as token usage, duration, success, and errors.
When you include a graph_key, the recorded metric event includes the graph identifier. This allows LaunchDarkly to associate metrics from a single config execution with the agent graph that triggered it.
This helps you:
The following example shows how to include the graph key when recording metrics for an agent within a graph:
Agent graph monitoring records how multi-agent workflows execute in production.
You can use monitoring data to understand runtime workflow behavior, identify slow or frequently invoked agents, and detect failures in routing paths. Monitoring metrics also support evaluation of changes to agents, prompts, models, or tools using real execution data.
Monitoring presents workflow performance in a shared view across engineering, AI platform, and operations teams. This supports consistent analysis of agent behavior and standardized operational practices for agent-based systems.
When you open an agent graph in the LaunchDarkly UI, the page includes two tabs:
Each tab provides a different view of agent graph activity.
The Graph tab displays the workflow structure and allows you to view execution metrics directly on each agent node.

Use the metric buttons at the top of the graph to display different categories of metrics:
Selecting a metric displays the corresponding value for each node in the graph. This view shows which agents are invoked most frequently and which nodes contribute the most latency during execution.
The Monitoring tab displays time-series charts that show how graph activity changes over time.
Metrics are grouped into two sections.
Global metrics aggregate activity across the entire agent graph.
The following charts are available:
Each chart shows how the metric changes over time for the entire workflow.

Node-level metrics break down activity by agent node. Each line in these charts represents a node in the graph.
Available charts include:
These charts make it possible to compare how different agents contribute to the behavior of the overall workflow.
Tool call metrics record how often agents invoke external tools.
To display tool usage metrics, instrument tool calls in your application using the AI SDK tracker. When tool call events are recorded through the SDK, LaunchDarkly aggregates this data and displays it in the Graph and Monitoring views.
After building an agent graph, you can monitor agent performance using Monitor config performance and experiment with workflow changes using Run experiments with AgentControl.