executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
agentic-architectureUse when deciding how an LLM-backed system should be structured — whether it needs an agent at all or a deterministic workflow, which orchestration pattern fits (chain, router, parallel fan-out, orchestrator-worker, evaluator-optimizer, supervisor, hierarchical), how many agents, how state and durability work, where tools and human approval gates belong, ho…
Independent GitHub snapshot · Automated classification · Original documentation governs
Verified 2026-07-29. Framework positions move fast; the patterns below have been stable for roughly two years and the framework names have not.
Most agentic projects that fail, fail on orchestration design rather than model capability — forecasts through 2027 put a large share of agentic initiatives at risk of cancellation on cost, governance and scaling grounds, and the common root is architecture, not the model.
The strongest single guideline: if the task can be done with one well-prompted call or a fixed chain, do that. An agent is what you reach for when the steps genuinely cannot be known in advance — and that is rarer than it feels during design.
A healthy production system is mostly deterministic. Aim for the large majority of the work running as fixed, testable steps, with agentic reasoning confined to the parts where the path really does depend on what was found. Deterministic steps are debuggable, cheap and repeatable; agentic steps are none of those.
Can one well-prompted call do it?
├─ YES → Do that. Stop. Add retries and validation, not an agent.
└─ NO
│
Are the steps known in advance?
├─ YES → WORKFLOW
│ ├─ Fixed order, each step feeds the next .............. Prompt chain
│ ├─ Input kind decides the branch ..................... Router
│ ├─ Independent subtasks, results combined ............ Parallel fan-out
│ └─ Quality must clear a bar before release ........... Evaluator–optimizer
└─ NO — the path depends on what is found → AGENT
│
Does one agent with a tool loop cover it?
├─ YES → Single agent + tools. Default. Go no further.
└─ NO — genuinely separate domains, tools or context
│
How many, and who decides the split?
├─ Decomposed at runtime by a planner .... Orchestrator–worker
├─ Fixed specialist roles, one coordinator Supervisor
└─ More than ~20 agents ................. Hierarchical — and re-read §3
Two questions carry almost all the weight: are the steps known in advance? (workflow vs agent) and is there a real reason for a second agent? (§3).
Every additional agent adds coordination cost, latency, token spend and a new failure mode, and information is lost at every handoff — the receiving agent gets a summary, not the context.
Legitimate reasons for a second agent:
Not reasons: mirroring your org chart · "specialists sound better" · a framework's examples all being multi-agent · a single agent's prompt getting long (fix the prompt).
Roughly six patterns cover nearly all enterprise use cases — supervisor, sequential pipeline, parallel fan-out, router, hierarchical, evaluator–optimizer — and production systems typically compose two or three, e.g. a router at the front dispatching into orchestrator–worker pipelines whose output passes an evaluator.
An agent that cannot resume is a prototype. Real runs hit rate limits, timeouts, restarts and deploys mid-flight.
Tool quality determines agent quality more than prompt wording does.
search_invoices_by_supplier
beats queryDocsV2.skill-intake measures for skills.list_suppliers for valid
names" is recoverable; Error 500 ends the run.Autonomy is a per-action decision, not a system-wide setting. Reads and reversible writes can run free; payments, external messages, deletions, deploys and anything customer-visible get a gate.
Every loop needs a bound, and "the model will stop when it is done" is not one.
llm-api-optimization §9). Loops are invisible in per-call cost.| Class | Fits |
|---|---|
| No framework — a loop, your tools, your state | Single agent, a handful of tools. Start here |
| Graph / state-machine orchestration | Production stateful workflows needing branching, checkpointing, resumption, human-in-the-loop |
| Conversation-oriented multi-agent | Collaborative agents negotiating a result |
| Role/crew abstractions | Fast prototyping of fixed specialist teams |
The 2026 production centre of gravity is graph-based orchestration with durable checkpointing, with an integration/toolkit layer beneath it — the graph is the motherboard, the toolkit supplies the components. But note what that reflects: the winning property is durable, inspectable state, not any particular vendor.
Write the loop yourself first. A framework adopted before you understand your own control flow buys abstractions over a problem you have not yet met, and every one of them is a dependency with its own upgrade treadmill. Adopt when you need checkpointing, resumption and human-in-the-loop — that is the point at which hand-rolling stops being cheaper.
A correct answer reached by nine redundant retrievals and two lucky guesses is not a working system.
| Level | Measure |
|---|---|
| Outcome | End-to-end task success against a golden set |
| Trajectory | Steps taken, redundant or repeated calls, whether it stopped when it had enough |
| Tool use | Right tool chosen; arguments valid; failures recovered |
| Cost | Tokens and spend per resolved task |
| Safety | Did it stay inside its permissions and gates |
Build a regression set of real tasks early. Agent behaviour changes with every prompt, tool and model edit, and without a fixed set of tasks you are judging on whatever someone tried last.
Log the whole trajectory in a readable form. The single highest-value piece of agent infrastructure is being able to read exactly what the agent did, in order, after the fact.