Here’s the thing: subagents stopped being a cute demo the moment I had to ship real work. Once you’ve run a few parallel sweeps (one agent mapping code, another breaking a repro, another fixing), you don’t want to go back to a single-threaded blob that “thinks” and “acts” in one mushy stream. Simon’s note on Codex subagents being GA finally makes it feel official. About time. https://simonwillison.net/2026/Mar/16/codex-subagents/
I’m more interested in the custom agents config than the marketing buzz. A TOML file that says “this agent is for UI tracing, that one is for fixes, this one is for brute-force grep” is how you tame chaos. I’ve watched agent work go sideways because the agent didn’t know its lane. A simple role boundary solves 80% of that. The rest is the model you pick — fast for reconnaissance, slow for surgical edits. It’s not mystical, it’s operations.
The only part I don’t buy is the idea that the default “worker” vs “default” distinction will matter. Most people will just spawn whatever’s easiest and hope for the best. The win comes from people who actually name their agents after the job, and enforce it. I’ve started doing that in our OpenClaw routines and it cuts the mess in half. Serious.
P.S. The moment you wire subagents into a real production workflow, you stop caring about “agent hype” and start caring about latency and token bills.