Skip to main content

Agent Framework Orchestrations

Orchestration patterns for Microsoft Agent Framework. This package provides high-level builders for common multi-agent workflow patterns.

Installation

pip install agent-framework-orchestrations

Orchestration Patterns

SequentialBuilder

Chain agents/executors in sequence, passing conversation context along:

from agent_framework.orchestrations import SequentialBuilder

workflow = SequentialBuilder(participants=[agent1, agent2, agent3]).build()

# Preserve agent1 and agent2 as visible progress, while the default builder output remains Workflow Output.
workflow = SequentialBuilder(
    participants=[agent1, agent2, agent3],
    intermediate_output_from=[agent1, agent2],
).build()

ConcurrentBuilder

Fan-out to multiple agents in parallel, then aggregate results:

from agent_framework.orchestrations import ConcurrentBuilder

workflow = ConcurrentBuilder(participants=[agent1, agent2, agent3]).build()

HandoffBuilder

Decentralized agent routing where agents decide handoff targets:

from agent_framework.orchestrations import HandoffBuilder

workflow = (
    HandoffBuilder()
    .participants([triage, billing, support])
    .with_start_agent(triage)
    .build()
)

By default, each user response returns to the agent that requested it. To have the start agent re-evaluate every user turn, disable return-to-previous routing:

workflow = (
    HandoffBuilder()
    .participants([triage, billing, support])
    .with_start_agent(triage)
    .enable_return_to_previous(False)
    .build()
)

GroupChatBuilder

Orchestrator-directed multi-agent conversations:

from agent_framework.orchestrations import GroupChatBuilder

workflow = GroupChatBuilder(
    participants=[agent1, agent2],
    selection_func=my_selector,
    intermediate_output_from=[agent1, agent2],
).build()

MagenticBuilder

Sophisticated multi-agent orchestration using the Magentic One pattern:

from agent_framework.orchestrations import MagenticBuilder

workflow = MagenticBuilder(
    participants=[researcher, writer, reviewer],
    manager_agent=manager_agent,
    intermediate_output_from=[researcher, writer, reviewer],
).build()

Output Selection

Orchestration builders expose Workflow Output selection using participant names. The core rule is that output_from is an allow-list for Workflow Output, not a routing rule for every other participant output. Unselected participant payloads are hidden unless intermediate_output_from explicitly selects them as Intermediate Output.

  • output_from designates participant emissions as Workflow Output (type='output' events).
  • intermediate_output_from designates participant emissions as Intermediate Output (type='intermediate' events).

If neither list is provided, each builder uses its documented default Workflow Output contract. Sequential emits the last participant; Concurrent, GroupChat, and Magentic emit their aggregator/orchestrator/manager output; Handoff emits participants.

Selection Workflow Output Intermediate Output Hidden payloads
Omit both selections Builder default Workflow Output contract None Builder-specific non-output participant payloads
output_from="all" Every output-capable participant None None
output_from=[writer] Only writer None All other participant payloads
output_from=[writer], intermediate_output_from="all_other" Only writer Every output-capable participant not selected by output_from None
intermediate_output_from="all_other" None, except builder-internal default output executors where applicable Every output-capable participant Builder-internal plumbing payloads
output_from=[], intermediate_output_from="all_other" None, except builder-internal default output executors where applicable Every output-capable participant Builder-internal plumbing payloads
output_from=[writer], intermediate_output_from=[researcher, reviewer] Only writer researcher and reviewer Any other participant payloads

Invalid selections fail at construction or build time:

Invalid selection Why it fails
output_from="all_other" "all_other" is only valid for intermediate_output_from
intermediate_output_from="all" "all" is only valid for output_from
The same participant in both selections One payload cannot be both Workflow Output and Intermediate Output
Duplicate participant selections Duplicates are treated as configuration errors
Unknown participant selections Typos and missing participants are rejected
output_from=[], intermediate_output_from=[] Both explicit selections are empty

When an orchestration is wrapped with workflow.as_agent(), Workflow Output becomes normal response text. Intermediate Output becomes text_reasoning content so callers can inspect progress without changing .text behavior.

Documentation

For more information, see the Agent Framework documentation.

Metadata

Release files for agent-framework-orchestrations 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent-framework-orchestrations 1.3.0
File Size Uploaded
agent_framework_orchestrations-1.3.0.tar.gz 65.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-framework-orchestrations 1.3.0
File Interpreter ABI Platform
agent_framework_orchestrations-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 138.0 kB

Release files / agent_framework_orchestrations-1.3.0.tar.gz

Download URL agent_framework_orchestrations-1.3.0.tar.gz
Size 65.6 kB
Tags Source
SHA-256 checksum
How to use checksums
dcbad356be710077e2441e2dedb239c6ed2aa3a73fbdcdcd455fbfd040f49ffe
BLAKE2b-256 checksum
How to use checksums
0dd374b9211e87ab49322b0a611fb68d6a3fd3986d3d8e9294283b9bcba27b1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / agent_framework_orchestrations-1.3.0-py3-none-any.whl

Download URL agent_framework_orchestrations-1.3.0-py3-none-any.whl
Size 72.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e522509a893952a70ca37b9996c05bf1d19d454177a2131922b63c4b7850093e
BLAKE2b-256 checksum
How to use checksums
cc2b16899c8180646aedba2526e35a62e1b49882c48ebe1477228811e7eeb3a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page