Skip to main content
DecimalAI supports multi-agent architectures out of the box. When your orchestrator delegates to sub-agents, DecimalAI automatically discovers the agent hierarchy, tracks each sub-agent’s version independently, and lets you build per-sub-agent training datasets.

How It Works

The flowchart above shows the topology — who delegates to whom. The sequence diagram below shows the order in which the orchestrator hands off to each sub-agent at runtime, and where each handoff span lands in the trace:

Setup

The SDK auto-detects sub-agents from handoffs — no extra configuration needed:
When you pass the orchestrator Agent to install(), the SDK introspects agent.handoffs and registers each handoff target as a subagent component in the manifest. No manual registration needed.

What Gets Captured

When the orchestrator runs and delegates to sub-agents, the SDK captures the full trace with per-call agent attribution:
A single trace contains LLM calls from all sub-agents, each tagged with agent_name:

Dashboard

Agent Sidebar

The agents page shows the hierarchy — orchestrators are listed with their sub-agents nested below, marked with a → icon:
  • travel-planner — 150 traces, manifest v3
    • flight_agent — discovered from handoffs
    • hotel_agent — discovered from handoffs
    • itinerary_agent — discovered from handoffs
Click any sub-agent to see its traces, manifest timeline, and build per-agent datasets.

Topology Graph

The agent detail page shows a topology graph — a visual map of which agents delegate to which, with handoff edges and call counts.
Multi-agent trace view with orchestrator and nested sub-agent calls

Per-Sub-Agent Datasets

The key benefit: build training datasets for each sub-agent independently. When you select flight_agent and build a dataset, only flight_agent’s LLM calls are extracted — even though those calls live inside the orchestrator’s trace:

Orchestration-Aware SFT Export

The platform produces two SFT export formats for multi-agent traces:
Standard SFT format with [HANDOFF] markers between agent turns and name fields on assistant messages:
Best for: Training individual sub-agents with full conversation context.

Version Drift Detection

Each sub-agent has its own version timeline. When a sub-agent changes, only its own data is affected — other sub-agents’ data remains untouched. When a change touches a sub-agent’s traces, the Impact Report assigns each affected trace one of four compatibility verdicts: keep (reuse the trace as-is for training), repair (patch it to match the new manifest), replay (re-run it against the current agent to regenerate outputs), or drop (exclude it — too divergent to reuse). Impact severity (HIGH / MEDIUM / LOW) answers “was this trace structurally touched?”; the verdict answers “what to do with it for training.”

Cross-Sub-Agent Dependencies

If one sub-agent’s output feeds into another (e.g., itinerary_agent depends on flight_agent’s output), DecimalAI can detect when an upstream change breaks a downstream consumer:
Dependencies are declared in the sub-agent’s schema via register_manifest():
When flight_agent’s output contract changes, itinerary_agent is automatically flagged.

Supported Frameworks

For the best experience with multi-agent systems, use the OpenAI Agents SDK with install(agent=orchestrator). This gives full handoff introspection, tool schema extraction, and automatic sub-agent discovery.

Best Practices

  1. Name your agents clearly. Use descriptive names like flight_agent, not agent_1. These names appear in the dashboard, datasets, and SFT export.
  2. Pass the orchestrator to install(). This gives the SDK the full agent graph upfront, enabling immediate manifest registration with all sub-agents.
  3. Build datasets per sub-agent. Don’t mix all sub-agents into one dataset — each agent has different skills and should be fine-tuned independently.
  4. Start with the flat SFT format. The [HANDOFF] marker format works with standard OpenAI fine-tuning. Use the orchestration format only when specifically training delegation behavior.
  5. Declare dependencies. If sub-agents consume each other’s output, use depends_on in register_manifest() so DecimalAI can alert you to cascade breakage.

Next Steps

Multi-Agent concepts

Orchestrators, sub-agents, delegation vs handoff, drift detection.

Traces API

REST reference for listing traces by agent (used for sub-agent activity).

Manifests

How sub-agent components appear in the manifest diff.

Datasets

Building per-sub-agent training datasets.