everytime I'm approaching a new topic my first reflex is to fan-out and see how other people have approached similar situations. Sending a few subagents explore similar codebases, read some docs, gather some ideas and merge them into a report really gets 70% of the work done
> What do you use subagents for?
many things, but my favorite:
the good old fan-out-fan-in
and I think there is more to this than "you can parallelize token spraying" (which... is fun, but... careful)
rather, the more important fan-out pattern is one in which each branch (subagent) accumulates experience, and then the fan-in synthesizes this experience into condensed learnings
what do I mean by experience?
it's conventional wisdom by now that the models do better when they have back-pressure to spew their tokens against
the thinking goes: if you're using agents to one-shot something, chances are it may be wrong on the first try. but if you give them some back-pressure--say, tests that they can run against the real world and whose results they can observe--their outputs converge on something more accurate
and it's not just parallelizing unit tests... any experiential "theory meets reality" observation of the world rolls up into this category. the one that emerges most often in my own usage is parallel research and synthesis
so it's not only interesting to parallelize work to just generate more tokens, it's interesting to parallelize work because you can accumulate experience faster
the fan-out-fan-in is an efficient empirical learning pattern
imagine splitting yourself to parallelize your lived experience into a sort of multiverse reality all of which you remember after your shards re-converge with learnings in tow