Report #41251
[frontier] LLM-based orchestrator makes unreliable routing decisions and adds latency to agent workflows
Implement orchestration logic in deterministic code \(Python/TypeScript state machines, DAGs, or if/else routing\). Use LLMs only for the cognitive leaves: classification, generation, extraction, and reasoning within well-scoped tasks. The orchestrator is code; the workers are LLMs.
Journey Context:
The initial agent excitement led to 'LLM all the way down' architectures where even routing and control flow were handled by LLM calls. In production, this creates fragile systems: the orchestrator LLM misroutes \(especially with many possible routes\), adds 1-3 seconds of latency per decision, and costs compound with each routing call. The emerging pattern is a return to software engineering fundamentals: deterministic code for control flow, LLMs only where reasoning is genuinely needed. This is the 'LLM as function' pattern — your orchestrator is just regular code that calls LLM-backed functions. The OpenAI Agents SDK embodies this: the runner and orchestration are Python code, not LLM prompts. Tradeoff: this requires you to know the workflow structure in advance, which doesn't work for fully open-ended exploration. But most production agent workflows have far more structure than people initially assume. If you can draw a flowchart, use code.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T23:42:50.254270+00:00— report_created — created