Two broad decomposition strategies cover most cases. A fixed sequential pipeline has a known step order in advance, where each step's output feeds the next as a separate, focused call - summarise, then extract, then translate. A dynamic adaptive decomposition lets the agent decide its next step based on what it's learned so far, because the full plan genuinely isn't knowable upfront - this is what an agentic loop (Lesson 3.1) already gives you: each iteration's tool choice is itself a decomposition decision made in response to the latest tool result. Fixed pipelines are simpler to build, test, and debug, since each step's prompt and expected output are stable and can be checked in isolation. Dynamic decomposition is necessary when the task's shape genuinely depends on intermediate findings - debugging an unfamiliar codebase, open-ended research, anything where step 2 can't be written until you know what step 1 found.
Choosing pipeline granularity
Granularity is a real design decision, not a detail to leave to instinct. Steps that are too coarse recreate attention dilution inside a single step - you've just moved the bundling problem down one level. Steps that are too fine add needless round-trip latency and cost, and can lose cross-step context that a slightly larger step would have kept naturally (a step that only sees an isolated fragment of the task may lack the surrounding information to do its narrow job well). A workable rule of thumb: one step should correspond to one checkable objective - something you could independently verify as done correctly or not, given just that step's output.
Attention dilution, mechanically
Handing a single agent several simultaneous objectives in one turn - "summarise this, also extract these five fields, also translate it, and flag compliance issues" - degrades performance on all of them compared to sequencing them as separate steps. This isn't just vague "loss of focus": a single generation pass has to simultaneously satisfy criteria that can actively conflict (concise vs. exhaustive, literal vs. interpretive), and it has one shot to allocate attention across all of them at once rather than each objective getting a full, focused pass. The same fragmentation applies to extended thinking budget: a model given a large thinking budget on a bundled multi-objective prompt tends to spread that budget thin across sub-problems rather than working any single one through completely. Decomposing into smaller, single-objective steps is very often a bigger reliability win than a more carefully worded combined prompt.
Common exam distractor
An answer that tries to fix a multi-objective quality problem purely by rewording the prompt more carefully, without decomposing the task itself, is treating a structural problem as a wording problem. Better instructions can help at the margins, but they don't remove the fundamental fact that several objectives are still competing for the same reasoning pass.
Verification between pipeline steps
In a fixed pipeline, an error or hallucination at step 2 propagates silently into step 3 if step 3 has no way to notice something is off - it just trusts its input and does its job on bad data. A lightweight verification checkpoint between steps (a schema check on extracted fields, a sanity check on item counts, a quick "does this look complete" pass) catches this before it compounds, and is cheap relative to redoing the whole pipeline after a downstream step produces garbage from bad upstream input. This connects directly to Lesson 3.5: verification that must never be skipped belongs in code as a deterministic gate, not left to the next step's judgment.
Practical example: a support-ticket triage pipeline
A team builds an agent to handle incoming support tickets in one bundled call: classify the ticket's category, assess urgency, draft a reply, and flag anything that looks like a legal or safety issue - all in a single prompt against the raw ticket text. Urgency assessment and legal-flagging come back inconsistent; sometimes a genuinely urgent ticket is scored as low priority, and legal-relevant language occasionally slips past the flag entirely.
The team's first instinct is to add more examples and stronger wording to the urgency and legal-flag instructions. It helps marginally, but the inconsistency persists, because the actual cause is structural: four judgment calls sharing one generation pass, two of which (urgency, legal risk) carry outsized cost when wrong. Splitting into a pipeline - classify, then assess urgency using the category as context, then check for legal/safety flags as its own single-objective step, then draft the reply last, informed by all three - resolves the inconsistency far more reliably than any amount of additional prompt tuning on the bundled version. The legal-flag step in particular is a good candidate for the verification-and-gating pattern from Lesson 3.5: given the cost of a missed flag, it may be worth pairing the step with a deterministic keyword/pattern pre-check rather than trusting model judgment alone for that one narrow slice of the pipeline.
Key concept
Decomposition granularity is a design decision on par with prompt wording, not something to leave to instinct - both too coarse (attention dilution inside a step) and too fine (latency, lost context, needless overhead) are real failure modes, not just one of them.