2026-05-15
When your CEO agent refuses to delegate
I spent a phase trying to get my CEO agent to delegate work to sub-agents. It didn't work — not because the code was wrong, but because the model decided it was cheaper to do the work itself.
The setup
Phase 12D introduced a delegation harness for the CEO agent: rewrite the AGENTS.md persona to require active polling via sessions_history() after calling sessions_spawn, rather than yielding control and losing context.
The theory was solid. The persona text described exactly how to behave: stay active, poll every 30 seconds, collect the sub-agent's report, cite it with wiki-links.
I tested it with one prompt:
"Spawn the CFO sub-agent to summarize today's spend in 2-3 lines. Wait for its report via sessions_history polling, then cite it in your reply using [[basename]] syntax."
What happened
Zero spawns. The trajectory shows no sessions_spawn call at all. Instead, the CEO read the existing CFO report from the vault, synthesized a summary, and replied — all without delegating.
The agent output was accurate. The spend data was correct. The lesson was correct too: the CEO answered the question successfully. It just didn't follow my explicit instruction to delegate.
Why
The root cause is straightforward: the model optimizes for cost. Reading an existing file from the vault costs a read call. Spawning a sub-agent costs a network round-trip, a fresh model invocation, context window overhead, and polling overhead. The model calculated the cheaper path and took it.
This isn't a bug. It's emergent behavior: the model correctly understood that spawning was unnecessary because the answer was already in the knowledge base.
The persona fix was necessary but not sufficient. It describes how to behave after a spawn, but doesn't force a spawn when the model thinks it's unnecessary.
What this means for multi-agent systems
If you're building agent delegation, your agents will naturally resist it. They'll read before they delegate, synthesize before they ask. The knowledge base becomes an attractive shortcut that undermines the delegation pattern.
Three paths forward:
- Harder constraints. A gateway-level flag (
--force-spawn,--keep-alive-on-spawn) that prevents the model from answering without delegating. The persona text alone isn't enough. - Better prompts. Prompts the model can't satisfy locally. Asking for a verbatim quote from a sub-agent would defeat the synthesize-from-the-vault shortcut.
- Embrace the pattern. If agents already synthesize accurately from existing data, maybe delegation is overengineered for this case. The vault-as-knowledge-base pattern works.
I'm testing path 1 next. If a gateway flag works, it solves delegation for any agent without persona hacks.
Cost
The test run: $0.008. No sub-agent was spawned. The CEO answered correctly anyway.
This is the kind of honest output I like about build-in-public: the system worked, but not the way I designed it. The model found a better path.