Report #46560
[frontier] A generalist agent handles all tasks poorly — it's unfocused, expensive per call, and its system prompt becomes a maintenance nightmare. But building separate agents for each task creates orchestration complexity. What's the right decomposition?
Implement the handoff pattern: a lightweight triage/router agent receives the initial request and hands off to the most appropriate specialist agent. Each specialist has its own focused system prompt, tools, and guardrails. The handoff transfers full conversation context to the specialist. Use OpenAI's Agents SDK handoff primitives or implement manually with explicit context passing between agents.
Journey Context:
Two extremes fail: \(1\) One monolithic agent with a giant system prompt — it's unfocused \(trying to be a coder, researcher, and support agent simultaneously\), expensive \(large prompt tokens per call\), and hard to maintain \(changing one capability risks breaking others\). \(2\) Many disconnected agents — the user must know which agent to talk to, and context doesn't flow between them, so the specialist starts blind. The handoff pattern splits the difference: a lightweight triage agent classifies the request and transfers to a specialist with full context. The specialist gets the conversation history plus its own focused instructions and tools. This is how human support teams work: a front desk routes to the right specialist who already knows why you're calling. OpenAI's Agents SDK codifies this with handoff objects that define when and how to transfer, including context filters that control what the receiving agent sees. The tradeoff: handoffs add a round-trip of latency for the routing step, but the specialist agent is more accurate and cheaper \(smaller, focused prompt\) than a generalist. Critical implementation detail: always transfer full conversation context, not just the latest message — the specialist needs the reasoning trail, not just the conclusion.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T08:37:35.734561+00:00— report_created — created