Most people use subagents wrong. Here's what actually works.
Subagents are one of the most powerful features in Claude Code and most people either ignore them or use them like a worse version of asking Claude directly. I use them on probably 60% of my sessions now, and the difference is night and day — but it took me a while to figure out why some attempts flopped and others saved me 20 minutes.
Three mistakes I kept making
>1. Treating subagents like a second Claude chat. I'd spin one up and give it the same vague prompt I'd give my main session — "look at this codebase and tell me what's going on." That's just burning tokens on unfocused exploration. A subagent without a specific mission comes back with a wall of text you still have to synthesize yourself.
>2. Running them sequentially when they could run in parallel. I was launching one agent, waiting for it to finish, reading the result, then launching the next one. That's literally the same as doing it in your main thread — you're just adding overhead. The whole point is parallelism.
>3. Dumping the results into my main context. I'd have an agent explore 40 files and then paste the full output back into my conversation. Now my context window is stuffed with code I only needed once, and Claude starts losing my earlier requirements.
What actually works
1. Brief them like a colleague, not a chatbot. "Search the data layer for how we handle campaign state — specifically look for persistence patterns and any sync logic. Report back the file paths and the pattern, not the full code." Specific mission, specific output format. The agent comes back with 10 useful lines instead of 200 lines of noise.
2. Launch 2-3 agents in parallel for multi-area tasks. Planning a feature that touches the UI, the data layer, and an API? Three explore agents, one per area, all running simultaneously. What takes 15 minutes sequentially finishes in 3. Each one returns a focused summary. My main window gets three clean reports I can actually make decisions from.
3. Use them for independent review. After I finish a feature, I spin up a review agent with a fresh context. It hasn't seen my thought process, my wrong turns, or my justifications. It just sees the diff. That independence catches things I'd never notice reviewing my own work — missing edge cases, inconsistent patterns, subtle bugs that look fine when you've been staring at them for an hour.
The real unlock
Subagents aren't about doing more work — they're about keeping your main conversation coherent. Every file Claude reads, every search result, every code block fills the context window. When it fills up, Claude loses your earlier context. Your requirements from the beginning of the session just quietly disappear.
The pattern that changed everything for me: plan in the main thread, delegate exploration to subagents, synthesize their reports myself, then execute. The main window never sees raw exploration output. It stays clean, focused, and remembers what I told it 45 minutes ago.