The permission question people ask is "can the agent call this tool?" The question they should ask is "can this specific child, for this argument, now, under whose consent, for how long?" Those are different questions with different answers, and conflating them is the most common source of runaway agents.
A parent agent runs inside a session that already holds user context, an OAuth token, and a configured list of reachable tool servers. A spawned subagent is a new execution principal with narrower instructions and often a different risk profile. Treating it as a clone of the parent collapses the trust boundary described in Permit's analysis of subagent tool permissions. When a child inherits a write-capable token because it shares a workflow, a read-only reporting task can silently perform writes nobody consented to.
This is not theoretical. A bug report against a coding agent described exactly this failure: a user had blocked Bash in their settings, approved a single subagent launch, and the children then ran dozens of shell commands, including reads of SSH keys and shell history, with no per-command gate reported in this issue thread. The deny rule existed. The delegation path bypassed it.
The architectural reason is straightforward. Multi-agent designs distribute control across cooperating processes, each of which may have its own tools, memory and decision-making as JetBrains describes in its comparison of single and multi-agent systems. Once control is distributed, authority has to be distributed deliberately. Otherwise authority leaks along with the delegation.



