feat(council): add configurable rounds, flow parameters, and round-specific prompts

- Parameters: flow (parallel/sequential/debate), rounds (1-5), tier (light/medium/heavy)
- Round-specific prompt templates: opening, rebuttal, final position
- Multi-round referee template tracks position evolution across rounds
- Word count guidance decreases per round to control token cost
- Subagent labeling convention: council-r{round}-{role}
- Updated from live testing with 1-round and 3-round parallel debates
This commit is contained in:
zap
2026-03-05 16:21:22 +00:00
parent 7274d399ce
commit da36000050
4 changed files with 224 additions and 63 deletions

View File

@@ -1,6 +1,6 @@
---
name: council
description: "Convene a council of AI advisor agents with distinct perspectives to deliberate on a topic, then synthesize their views into a verdict. Use when: (1) user asks for multi-perspective analysis, (2) wants to brainstorm with diverse viewpoints, (3) requests a council or advisors opinion, (4) needs a balanced decision on a complex question. Supports parallel (default), sequential, and debate flows. NOT for: simple factual lookups, single-perspective tasks, or quick one-liner answers."
description: "Convene a council of AI advisor agents with distinct perspectives to deliberate on a topic, then synthesize their views into a verdict. Use when: (1) user asks for multi-perspective analysis, (2) wants to brainstorm with diverse viewpoints, (3) requests a council or advisors opinion, (4) needs a balanced decision on a complex question. Supports parallel (default), sequential, and debate flows with configurable round count. NOT for: simple factual lookups, single-perspective tasks, or quick one-liner answers."
---
# Council Skill
@@ -9,6 +9,20 @@ Spawn a council of 3 advisor subagents + 1 referee subagent to deliberate on a t
Each advisor has a distinct personality/lens. The referee synthesizes their output into a
final verdict with collapsed advisor perspectives.
## Parameters
| Parameter | Default | Description |
|-----------|---------|-------------|
| flow | parallel | `parallel`, `sequential`, or `debate` |
| rounds | 1 | Number of deliberation rounds (1-5). Round 1 = opening positions. Round 2+ = rebuttals where advisors see and respond to each other. |
| tier | light | Model tier: `light`, `medium`, or `heavy` (see Model Selection) |
**Quick reference:**
- `flow=parallel, rounds=1` — fast single-shot, all advisors in parallel, then referee (default)
- `flow=parallel, rounds=3` — parallel opening + 2 rebuttal rounds + referee (recommended for depth)
- `flow=sequential, rounds=1` — each advisor sees prior outputs, then referee
- `flow=debate, rounds=3` — parallel opening + cross-advisor rebuttals + referee synthesis
## Advisor Roster (default)
| Role | Lens | System stance |
@@ -21,46 +35,67 @@ The referee is a separate agent: balanced, fair, synthesis-oriented.
## Flows
Three deliberation flows are available. Default is **parallel**.
### 1. Parallel + Synthesis (default)
Single-round version (rounds=1):
1. Spawn all 3 advisors simultaneously via `sessions_spawn` (mode=run).
2. Each advisor receives the same topic prompt with their personality instructions.
3. Wait for all 3 to complete (push-based — they announce when done).
4. Spawn the referee with all 3 advisor outputs as context.
3. Wait for all 3 to complete (push-based).
4. Spawn the referee with all 3 advisor outputs.
5. Referee produces the final verdict.
Multi-round version (rounds=N):
1. **Round 1**: Spawn all 3 advisors in parallel with opening position prompt.
2. Collect all outputs.
3. **Round 2..N**: For each rebuttal round, respawn all 3 advisors in parallel. Each receives:
- Their own prior position(s)
- All other advisors' prior round output
- Round-specific instructions (rebuttal prompt for middle rounds, final position prompt for last round)
4. Collect outputs after each round.
5. **Referee**: Spawn referee with the full debate transcript (all rounds, all advisors).
### 2. Sequential Rounds
Single-round (rounds=1):
1. Spawn advisors one at a time, each seeing prior advisor outputs.
2. After all advisors, spawn referee with full thread.
3. Optionally run a rebuttal round (advisors respond to each other).
2. Spawn referee with full thread.
Multi-round (rounds=N):
1. **Round 1**: Advisors go sequentially, each seeing prior advisors in that round.
2. **Round 2..N**: Each advisor sees ALL prior round outputs before giving their rebuttal/final take.
3. **Referee**: Gets the full thread.
### 3. Debate
1. Spawn advisors in parallel for initial takes.
2. Share outputs across advisors for rebuttals (1-2 rounds).
3. Referee moderates and calls convergence.
Always multi-round (minimum rounds=2, default rounds=3 for this flow):
1. **Round 1**: Parallel opening takes.
2. **Round 2..N-1**: Cross-rebuttals — each advisor responds to all others.
3. **Round N**: Final positions.
4. **Referee**: Gets full debate transcript, notes evolution of positions.
## Model Selection
Pick model tier based on topic complexity:
- **Light topics** (casual brainstorm, simple pros/cons): use default model for advisors and referee.
- **Medium topics** (architecture decisions, strategy): use default model for advisors, stronger model for referee.
- **Heavy topics** (critical decisions, deep analysis): use stronger model for all agents.
- **light** (casual brainstorm, simple pros/cons): default model for advisors and referee.
- **medium** (architecture decisions, strategy): default model for advisors, stronger model for referee.
- **heavy** (critical decisions, deep analysis): stronger model for all agents.
The caller (main agent) determines tier before spawning.
## Prompt Templates
## Round-Specific Prompt Guidance
See `references/prompts.md` for full advisor and referee prompt templates with placeholders.
See `references/prompts.md` for all prompt templates. Key points:
- **Round 1 (Opening)**: Full advisor system prompt + topic. Ask for opening position.
- **Middle rounds (Rebuttals)**: Include prior positions from ALL advisors. Ask: where do you agree, push back, or change your mind? Keep shorter (200-300 words).
- **Final round**: Ask for final synthesis — what changed, what held firm, final recommendation in 2-3 sentences. Keep shortest (150-250 words).
- **Referee (multi-round)**: Include the FULL debate transcript organized by round. Ask referee to note position evolution, not just final states.
## Implementation
Read `scripts/council.sh` for the orchestration logic.
For programmatic invocation, the main agent can also call `sessions_spawn` directly
For programmatic invocation, the main agent calls `sessions_spawn` directly
following the patterns above.
## Configuration
@@ -71,3 +106,4 @@ Default roster and prompt templates live in `references/prompts.md`.
## TODO (revisit later)
- Revisit subagent personality depth — richer backstories, communication styles
- Revisit skill name — "council" works for now
- Experiment with different round counts and flows to find optimal depth/cost tradeoffs