---
source: https://iinventedlight.com/library/notes/ao-handoff-agents-as-tools-vs-handoffs.md
title: "Agents as tools vs handoffs: two multi-agent patterns"
license: CC-BY-4.0
license_url: https://creativecommons.org/licenses/by/4.0/
source_license: "Apache-2.0 or MIT (repo docs; LICENSE file verified in each GitHub repo); prose restates cited source lines in own words"
license_family: agentops-green
attribution: "Summary by iinventedlight (AI-assisted). Sources: OpenAI Agents SDK (Python) docs (GitHub), Agent orchestration, MIT (openai/openai-agents-python LICENSE); OpenAI Agents SDK (Python) docs (GitHub), Handoffs, MIT (openai/openai-agents-python LICENSE)."
author: "iinventedlight (synthesis of cited sources); text drafted with AI assistance"
date: 2026-11-09
status: published
checked_on: 2026-11-09
as_of: 2026-11-09
confidence: medium
untested: "No tool or code was run for this note; only the fetched repository documentation was read."
category: agent-operations
topic_area: "agent operations: multi-agent handoff"
tags: [multi-agent, handoffs, openai-agents-sdk, orchestration]
client: Librarian
sources:
  - id: S1
    title: "Agent orchestration"
    publisher: OpenAI Agents SDK (Python) docs (GitHub)
    url: https://github.com/openai/openai-agents-python/blob/main/docs/multi_agent.md
    accessed: 2026-11-09
    license: "MIT (openai/openai-agents-python LICENSE)"
  - id: S2
    title: "Handoffs"
    publisher: OpenAI Agents SDK (Python) docs (GitHub)
    url: https://github.com/openai/openai-agents-python/blob/main/docs/handoffs.md
    accessed: 2026-11-09
    license: "MIT (openai/openai-agents-python LICENSE)"
---
# Agents as tools vs handoffs: two multi-agent patterns

**Answer:** With agents as tools, a manager agent keeps control and calls specialists; with handoffs, a triage agent routes the conversation and the specialist becomes the active agent for the rest of the turn.

## Orchestration choices

Agents can be orchestrated by letting the LLM decide the steps or by determining the flow in code; the two can be mixed.

## Agents as tools

A manager agent calls specialist agents through `Agent.as_tool()`. Pick it when one agent should own the final answer, combine outputs from multiple specialists, or enforce shared guardrails in one place.

## Handoffs

- Handoffs are represented as tools to the LLM: a handoff to `Refund Agent` becomes a tool named `transfer_to_refund_agent`.
- `handoff_description` hints when the model should pick that handoff.
- `on_handoff` is a callback executed when the handoff is invoked.
- The receiving agent sees the conversation history unless you change it with an `input_filter`.

## See also

- [ao-handoff](https://iinventedlight.com/library/notes/ao-handoff/)
- [ao-handoff-orchestrator-agents](https://iinventedlight.com/library/notes/ao-handoff-orchestrator-agents/)
- [ao-handoff-role-based-multi-agent](https://iinventedlight.com/library/notes/ao-handoff-role-based-multi-agent/)

## Claims

- id: C1
  claim: Agents as tools keep a manager in control.
  source: S1
  evidence: "A manager agent keeps control of the conversation and calls specialist agents through"

- id: C2
  claim: With handoffs the specialist becomes the active agent.
  source: S1
  evidence: "that specialist becomes the active agent for the rest of the turn."

- id: C3
  claim: Handoffs are tools to the LLM.
  source: S2
  evidence: "Handoffs are represented as tools to the LLM."

- id: C4
  claim: input_filter filters what the next agent receives.
  source: S2
  evidence: "This lets you filter the input received by the next agent."

## Sources

- [S1] Agent orchestration. OpenAI Agents SDK (Python) docs (GitHub). https://github.com/openai/openai-agents-python/blob/main/docs/multi_agent.md . License: MIT (openai/openai-agents-python LICENSE). Accessed 2026-11-09.

- [S2] Handoffs. OpenAI Agents SDK (Python) docs (GitHub). https://github.com/openai/openai-agents-python/blob/main/docs/handoffs.md . License: MIT (openai/openai-agents-python LICENSE). Accessed 2026-11-09.


License: this note is CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Summary by iinventedlight (AI-assisted). Sources: GitHub repository docs under Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0) or MIT License (https://opensource.org/licenses/MIT), as listed per source; copyright notices remain with the original authors. Text was condensed and changed from the originals.

---

Agents: [/agents.md](/agents.md) | [/.well-known/agent-library.json](/.well-known/agent-library.json).
