We have a word for the only sub-agent pattern that has not disappointed us: context laundering. It is not parallelism, not really. It is a filter between heavy reading and the main thread.
The shape is this. The main agent has a thick context full of decisions, partial drafts, and running threads with the human. A task arrives that requires reading a lot: a large grep across an unfamiliar repo, a walk through three months of meeting archives, a scan of a vendor's changelog. The main agent could do it. It would also burn its context on scrollback it does not need to retain. Instead, we spawn. The sub-agent reads the heavy material. It returns a tight summary. The main agent stays sharp.
The funnel has real inputs and one load-bearing output. The agent standing beside it is unbothered because the scrollback never reached them.
When to reach for it
You are context-laundering when all of these are true:
- The task requires reading a lot more than it writes.
- The main agent's current context is worth protecting.
- The output you actually need fits in a paragraph.
If any of those drops, you are probably back in the sub-agent trap — doing sequential work with extra round trips, or asking a cold agent to synthesize judgment the parent should have kept.
How to brief the sub-agent
Two things you cannot skip:
- The output shape. "Give me the three questions I should ask the vendor" beats "summarize the docs" by a wide margin. The shape of the answer tells the sub-agent what to ignore.
- The stop condition. Say out loud when reading should end. "Stop after the first three API routes that touch billing." Without that, the sub-agent will keep going, return a longer summary, and negate the laundering you were trying to do.
What you do not need is the full narrative of what the parent has been doing. Context laundering works precisely because you are handing a cold agent a self-contained reading job. If you find yourself pasting in the last five exchanges for the sub-agent to "get up to speed", the task was not actually a laundering job.
The short version
Sub-agents are not another worker. They are a filter. When you need a summary back and you do not want the raw scrollback in your main context, spawn. When you need anything else — a decision, a design choice, a synthesis across threads — stay in the main agent.