The Thin Orchestrator: How We Made Our AI Agents More Reliable by Giving the Router Less to Do
- Source
- engineering.fb.com
- Date
Meta's engineering blog describes what it calls the thin orchestrator pattern for its data-pipeline agents. The team started with one agent that knew every domain, and in production it began hallucinating. Larger context windows and better prompts did not fix the problem. The redesign splits the work: a small router handles sequencing and enforces reliability checks, while 14 specialist agents each handle domain reasoning in their own area. The router deliberately knows little about the domains, which keeps its decisions simple and checkable. The lesson Meta draws is that reliability came from narrowing each agent's responsibility, not from giving one agent more information. For teams whose single general agent degrades as more tools and domains are added, the post gives a concrete production example of the alternative and the reasons it held up.

Context
Meta's engineers explain why their data-pipeline agents became more reliable after they took knowledge away from the central instead of adding more (engineering.fb.com). The job was onboarding a new data column across Meta's recommendation systems. That work spans three code repositories in three programming languages and up to six pipeline stages that must stay in sync. Their first version was a single agent loaded with every configuration schema, code-generation rule and data-source pattern. Meta writes that past a certain amount of , extra knowledge made the agent worse. It mixed up concepts, applying one subsystem's field-naming conventions to another, or using a code-generation pattern meant for a different data source. Another single-agent approach they tested succeeded 70-80% of the time, but only when an engineer wrote a custom for each job. Without that, success fell to 10-20%.
The fix splits the work into two layers. The orchestrator is the component that receives a request and decides who handles it. Meta rebuilt it as a 1,300-line router that does no domain work itself. It follows a fixed seven-step protocol that includes checking whether the target already exists, gathering the required fields, running a reliability check, handing the job to a specialist and reporting the result. Only the hand-off step involves LLM reasoning. That reasoning happens inside one of 14 specialist subagents, and each loads only its own domain knowledge, so the agent working on one data source never sees another source's patterns. New use cases are added as workflow templates that run the same subagents in a different order, and Meta says supporting pipeline migration needed no new agent code. Configuration prep for a new column used to take three to four days by hand, and about a day with Meta's earlier config-driven system. Meta reports that it now takes under an hour, and that about two-thirds of the system's changes land without significant human edits.
- Meta's first single agent for data column onboarding began cross-contaminating subsystems once its context passed a threshold, applying one subsystem's naming conventions or code patterns to another. Meta says better prompts or a bigger context did not fix it.
- Meta's 1,300-line orchestrator routes 20+ workflows to 14 isolated specialist subagents through a fixed 7-step protocol. Only the delegation step uses LLM reasoning; duplicate checks, field gathering and reliability gates are deterministic.
- New use cases are added as workflow templates that resequence the same 14 subagents. Meta supported pipeline migration this way with no new agent code.
- Subagents load 25+ domain knowledge files at runtime rather than having them embedded in the orchestrator, so a knowledge update takes effect in the next session without orchestrator changes.
- Per Meta, configuration prep for a new column took three to four days by hand and about a day with its earlier config-driven system, and now takes under an hour. About two-thirds of the system's changes land without significant human edits.
- AI agent — An AI system that doesn't just answer once but works toward a goal in a loop — taking actions, reading the results, and deciding what to do next.
- context window — The maximum amount of text a model can consider at once — its working memory for the current conversation or task.
- system prompt — The standing instructions a model receives before any user input — defining its role, rules, tools, and tone for the whole conversation.
- multi-agent — Using several AI agents on one problem — splitting work in parallel, checking each other, or filling different roles like planner and reviewer.
Checking sign-in…
Loading comments…


