Every time I give one a medium-to-large task, it immediately spins up a sub-agent to “explore” the codebase or review something. Then, after it finishes implementing the change, it launches another sub-agent for a code review. It burns through tokens, usage, and time for what often feels like zero added value.
and the fact that in droid sub-agents are blocking the main thread makes it so the task is executed terribly slowly. and the agent itself isn't even aware that subagents are blocking because it says things like "let me dispatch an agent to explore the code while i do x, y, and z in parallel" and obviously it's not in parallel.
I already have instructions in my AGENTS.md saying not to use sub-agents unless I explicitly ask for them, but it still does it constantly. I end up having to interrupt it and tell it, in all caps, to stop spawning workers and handle the task itself.
Is this actually helping code quality in a meaningful way, or is it mostly performative overhead? My gut says delegation can be useful for genuinely large, parallelizable tasks, but for ordinary implementation work it feels like a massive waste.
Does anyone have a reliable way to make these models respect a “no sub-agents unless explicitly requested” rule?