Appearance
An agent's output quality is the signal-to-noise ratio of its context — and every irrelevant token is a tax paid on every response.
Principle
Avoid Context Pollution
Why it's true
The model attends to everything — at once.
An LLM doesn't skim. Every token competes for attention with every other token.
context window
planning_transcriptprior_validator_reporttask_descriptionuser_issue_threadold_PR_commentstarget_file_pathunrelated_feature_specteam_slack_dumpacceptance_criteriajust_in_case_backgroundfull_conversation_historylast_week's_retro
The agent is asked: "implement validate_session_token()"
3 tokens of signal drowning in 9 tokens of noise — the signal can't dominate.
The agent drifts, answers the wrong question, or invents constraints that don't apply.
The violations
What pollution actually looks like.
✗
Passing {full_conversation_history} to a sub-agent "so it has context"
The agent anchors to irrelevant prior turns and references the wrong phase, the wrong files, the wrong constraints.
✗
Combining unrelated concerns in a single prompt
Concerns compete for attention. The agent optimizes for the average — none gets treated well.
✗
Adding "just in case" background the agent won't use
Every line you add is a line the model attends to. "Just in case" is a tax paid every response with no reliable benefit.
✗
Giving an implementor the planning transcript, the test results, and the PR history — when it only needs the spec
The agent hallucinates constraints lifted from context that doesn't apply to its sub-task.
✗
Using a monolithic agent for work that could scope to a sub-agent
A broader scope loads broader context. The remedy is decomposition, not bigger prompts.
Each pattern looks like convenience. Each is a tax paid per call, at a thousand calls a month.
The scale multiplier
The indirect cost is larger than the direct one.
Bloated context charges you twice. The second charge is the one that hurts.
Direct cost
What you see on the invoice.
- more tokens per call
- longer latency
- linear in call volume
Indirect cost
What you pay in rework.
- lower-quality outputs
- correction loops
- humans intervening
- drift and wrong-phase answers
At 1,000 invocations/month, bloated context is a compounding cost — the correction loops outweigh the savings from skipping the extraction step.
The discipline in practice
Extract what the agent needs. Nothing else.
Poorly applied
prompt to /implement+ full planning session transcript+ validator's prior-task report+ user's original issue thread+ team Slack context+ task description+ file paths
💥references wrong phase, wrong files, wrong constraints
Diagnosis: the agent anchors to the loudest context — which is rarely the relevant one.
Well applied
prompt to /implement+ task description+ AGENT_SYSTEM.md overview+ exact file paths to read+ acceptance criteria
🎯produces code that meets the spec on first pass
Diagnosis: signal dominates. Operationalized by Minimum Context.
Sub-agent context is an engineering problem, not a convenience.
You don't forward the conversation — you extract the minimum payload.
The discipline
Every token in context is a vote on what matters — pack it with noise and the agent votes wrong.
The model attends to everything simultaneously. Convenience-forwarding a conversation history feels cheap — until you pay for it on every single response, forever.