← hub

Subagents

How agent systems spawn, constrain, and collect results from child agents. Compared across OpenClaw, Claude Code, ElizaOS, smolagents, and Swarm.

What's Shocking

  • OpenClaw's involuntary injection — the parent agent CANNOT refuse subagent results. The registry force-injects them into the parent session. No veto, no filter, no opt-out.
  • Claude Code subagents get zero context — a single flag strips inherited context, saving 20-60k characters. The child starts blind.
  • Swarm's entire multi-agent system is ~50 lines — agent handoff is just a function that returns another agent object. No framework, no orchestrator.

See also: Patterns (#3 context stripping, #12 explicit handoffs) | OpenClaw gateway | Claude Code internals | Kanipi (NanoClaw container-per-subagent in production)

Theme: Orthogonal components surface through subagent design. Each system's subagent model reveals its unique architectural bet. OpenClaw's involuntary injection is a consequence of its 24-channel gateway — the registry force-injects because there's no message bus. NanoClaw's container-per-subagent is the natural extension of its transparent proxy bus. Muaddib rejects subagents entirely because its QEMU micro-VM per channel makes multi-user the priority over multi-agent. The subagent pattern you choose constrains your multi-tenancy model.