Skip to content

Build1 publisher3 min readPublished

A spawned sub-agent inherits the parent's bypass settings unless you scope it explicitly

A dev.to post argues that real-time supervision of a swarm is not available and the work of oversight becomes prevention by construction. All four of its requirements have to be enforced at the tool call every sub-agent shares.

The Engineer · Build desk

Illustration accompanying A spawned sub-agent inherits the parent's bypass settings unless you scope it explicitly

What happened

  • A dev.to post on human-in-the-loop design says no human can supervise swarm activity directly, so the work of oversight shifts almost entirely to prevention built into the system.
  • It asks for four things: least privilege per sub-agent, a distinct traceable identity for each, a cap on the whole system's blast radius, and one kill switch that halts everything at once.
  • The first failure it names is permission inheritance, where a sub-agent spawned for a small task takes the parent's settings by default and arrives with full tool access and no approval gates.
  • Five problems compound in its account, among them provenance blurred by shared credentials and a blast radius that grows when ten sub-agents each do something modest in parallel.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • exposure An orchestrator configuration that passes review can still spawn a child holding full tool access. The grant happens on the spawn path, which is where the audit has to look.
  • cost Per-sub-agent identity becomes a runtime credential service. Spawn depth is decided while the system runs, so the identities cannot be provisioned in advance.
  • decision Capping the system puts a serialised counter into a design bought for its parallelism, and teams have to decide how much of the concurrency they will pay back for an aggregate limit.
  • constraint If the dangerous behaviour is a property of how agents feed each other, then reviewing each component on its own cannot surface it, and per-component sign-off stops being sufficient evidence.

The failure starts at spawn. You configure an orchestrator with a narrow tool list and approval gates, it decomposes the goal, and it creates a child agent for one piece of the work. According to the dev.to post, that child can silently inherit the parent's permissions and bypass settings unless you scope it explicitly, arriving with full tool access and no approval gates [8]. "Nobody granted it that on purpose. The default did," the post says [9]. It refers to the LoopRails codex for the scoping guidance and does not name a particular runtime or setting, so the check is on your own spawn call and what a child gets when you pass nothing [19].

The grading rule is what forces the design. Each tool action is scored on reversibility, blast radius and stakes, G0 to G3, and the instruction is to grade the action regardless of which agent or sub-agent takes it [14]. A grade that belongs to the action has to be enforced where actions happen, which is the client library or broker the calls pass through. Provenance ends up in the same place, because five agents sharing one set of credentials produce logs that say "the system did X" and cannot say which one acted [10].

Three of the four prevention requirements are pre-call checks, so one component in the call path can carry all of them [18]. The cap is the expensive one. The post's example is ten sub-agents each making small external calls, spending a little and touching a few records, which adds up to a system-level effect that no per-action grade captures [11]. A per-action check sees one call. Seeing the total means a counter every agent decrements before it acts, and those agents run concurrently and pass results back to the orchestrator [7].

The kill switch has the same shape. "If you can only stop them one at a time, the rest keep running while you scramble, which is not a stop at all," the post says [13]. A flag the broker reads before each call meets that bar for every call that goes through the broker. In the reference architecture described, one sub-agent writes code and another calls external APIs [7]. Give the code writer a shell and the gate, the counter and the switch all have a path around them.

This is a design argument, and the post presents no incident and no measurement. It rests on one question from the LoopRails framework, whether a human can realistically catch the mistake in time, and answers almost always no for a swarm [6]. Underneath it the author puts the principal-agent problem: stack more delegates and the action drifts further from the human meant to own it [15]. I think the four moves are right in a system where every tool call already passes through one client you own. Where they do not, that client is the first thing to build, and the controls are configuration on top of it [5].

What to watch

  • An incident report from a real multi-agent deployment where a sub-agent acted under inherited permissions, which would move this from design argument to evidence.
  • Any agent framework shipping per-spawn credential issuance with the parent recorded, instead of handing children the parent's process credentials.
  • Publication of the LoopRails codex sections the post cites for explicit per-sub-agent scoping.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories