Skip to content

fix(supervise): real default supervisor prompt (was empty) — the topology-tournament gap#399

Merged
drewstone merged 1 commit into
mainfrom
fix/supervisor-default-prompt
Jun 27, 2026
Merged

fix(supervise): real default supervisor prompt (was empty) — the topology-tournament gap#399
drewstone merged 1 commit into
mainfrom
fix/supervisor-default-prompt

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

The gap the topology tournament found: smart-supervise / delegate-to-supervisor (the real supervise()/delegate() LLM-brain front door) scored 0/80 (flaky) and, when they ran, over-spawned 15 workers for a 2-module task at 66x a single agent's tokens — while every lower-level composition (Scope, combinators) hit 80/80 cheaply.

Root cause: supervisor-agent.ts defaulted the brain's systemPrompt to ''. The brain had the coordination verbs but no policy — so it flailed. The supervisor's competence IS its prompt (AgentProfile law); the default was a competence vacuum.

Fix (no bloat — a default prompt, not a flag): defaultSupervisorPrompt encodes the discipline the tournament showed wins (worker-heavy): do small work yourself, delegate sparingly against the conserved budget, give each worker a bounded brief, manage the context lifecycle, settle on real delivery. Profile still overrides; explicit '' preserved.

Gates green; 50 supervise tests pass. Empirical confirmation pending: re-run the tournament's smart-supervise arm with this default to confirm it spawns sensibly + scores better — that's the next verification, not yet claimed.

… empty)

The supervisor brain defaulted to an EMPTY systemPrompt, so a supervise()/delegate() call
with no authored prompt gave the LLM brain the coordination verbs but NO policy for when to
use them — it over-spawned (15 workers for a 2-module task, 66x a single agent's tokens) or
stalled (0 work). Add defaultSupervisorPrompt encoding the discipline the topology tournament
showed wins: do small work yourself, delegate sparingly (conserved budget), give each worker a
bounded brief, manage the context lifecycle, settle only on real delivery. A profile still
overrides it; an explicit '' is preserved (?? fires on undefined only). Gates green, 50 supervise tests pass.
@drewstone drewstone merged commit 9a49aa8 into main Jun 27, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant