docs(council): target dedicated council agents by role

This commit is contained in:
zap
2026-03-11 20:26:29 +00:00
parent 54f9921953
commit 9e9f7996e9
2 changed files with 69 additions and 11 deletions

View File

@@ -120,13 +120,37 @@ Always multi-round (minimum rounds=2, default rounds=3 for this flow):
## Model Selection
Pick model tier based on topic complexity:
Pick model tier based on topic complexity and role mission:
- **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.
- **light** (casual brainstorm, simple pros/cons)
- advisors / freethinkers / arbiters: use dedicated council role agents on `litellm/gpt-5-mini`
- referee / meta-arbiter: use dedicated synthesis agents on `openai-codex/gpt-5.4` (with configured fallbacks)
- **medium** (architecture decisions, strategy)
- advisors / freethinkers / arbiters: still use dedicated council role agents on `litellm/gpt-5-mini`
- referee / meta-arbiter: use dedicated synthesis agents on `openai-codex/gpt-5.4`
- **heavy** (critical decisions, deep analysis)
- keep dedicated council role agents by profile
- prefer stronger synthesis on `openai-codex/gpt-5.4`
- if a specific council run is unusually high-stakes, the caller may override the spawned session model upward, but should preserve the dedicated council agent identity/role
The caller (main agent) determines tier before spawning.
### Dedicated council agent roster
Personality mode:
- `council-pragmatist`
- `council-visionary`
- `council-skeptic`
- `council-referee`
D/P mode:
- `council-d-freethinker`
- `council-d-arbiter`
- `council-p-freethinker`
- `council-p-arbiter`
- `council-meta-arbiter`
### Spawn rule
When invoking the council skill, explicitly target these dedicated agent ids via `sessions_spawn` instead of generic/default subagents. The caller (main agent) determines tier before spawning, but should preserve the role-specific council agent identity and use model overrides only when the mission/tier truly justifies it.
## Round-Specific Prompt Guidance

View File

@@ -117,14 +117,48 @@
# ─── SUBAGENT LABELING ────────────────────────────────────────────
#
# Personality mode:
# Labels: council-r{round}-{role}
# Examples: council-r1-pragmatist, council-r2-skeptic, council-referee
# Single-round: council-pragmatist, council-referee (no round prefix)
# Agent ids:
# council-pragmatist
# council-visionary
# council-skeptic
# council-referee
# Labels can still be council-r{round}-{role} for bookkeeping, but sessions should target
# the dedicated council agent ids above.
#
# D/P mode:
# Labels: council-r{round}-{group}-{role}
# Examples: council-r1-d-freethinker, council-r1-p-arbiter, council-meta
# Single-round: council-d-freethinker, council-p-arbiter, council-meta
# Agent ids:
# council-d-freethinker
# council-d-arbiter
# council-p-freethinker
# council-p-arbiter
# council-meta-arbiter
# Labels can still be council-r{round}-{group}-{role} for bookkeeping, but sessions should target
# the dedicated council agent ids above.
#
# ─── ROLE-AWARE MODEL TIERING ─────────────────────────────────────
#
# light:
# advisors/freethinkers/arbiters -> dedicated council role agents on litellm/gpt-5-mini
# referee/meta-arbiter -> dedicated synthesis agents on openai-codex/gpt-5.4
#
# medium:
# advisors/freethinkers/arbiters -> dedicated council role agents on litellm/gpt-5-mini
# referee/meta-arbiter -> dedicated synthesis agents on openai-codex/gpt-5.4
#
# heavy:
# preserve dedicated role agent ids; prefer strongest synthesis on referee/meta-arbiter.
# Only override advisor models upward when the task is genuinely high-stakes or unusually complex.
#
# Principle: mission-specific synthesis gets the stronger model first; broad advisor diversity stays cheap
# unless the topic quality/risk clearly justifies escalation.
#
# Example sessions_spawn targeting:
# sessions_spawn(... agentId="council-pragmatist" ...)
# sessions_spawn(... agentId="council-referee" ...)
# sessions_spawn(... agentId="council-meta-arbiter" ...)
#
# Single-round labels may still look like council-pragmatist / council-meta for readability,
# but the runtime target should be the dedicated council agent id.
#
# ─── WORD COUNT GUIDANCE ──────────────────────────────────────────
#