AI AGENT SKILLS

Council Of Llms

一个面向 Automation 场景的 Agent 技能。原始说明:Real multi-model council deliberation for OpenClaw subagents. Spawns 3 parallel subagents with different LLMs and distinct analytical perspectives (Strategy,...

SKILL.md

SKILL.md


name: council-of-llms
description: "Real multi-model council deliberation for OpenClaw subagents. Spawns 3 parallel subagents with different LLMs and distinct analytical perspectives (Strategy, Analysis, Creativity), then synthesizes their independent outputs into a unified verdict with consensus points, disagreements, and action items. Fixes the single-model roleplay anti-pattern that causes context overflow and shallow analysis. Requires the subagent-orchestration skill for base spawning patterns. Triggers on: council, deliberate, debate, review, stress-test, multi-model, decision, verdict, analysis, perspectives."
tags:

  • council
  • multi-model
  • deliberation
  • analysis
  • decision-making
  • subagent
  • orchestration
  • llm
  • review
  • stress-test

Council of LLMs

Overview

A real council spawns 3 parallel subagents, each with a different model and perspective, then synthesizes their outputs into a unified verdict. This is NOT one model roleplaying 3 experts — it's genuinely different models providing independent analysis.

Models

Configure your council models in ~/.openclaw/council-config.json:

{
  "council_models": [
    "your-strategic-model",
    "your-analytical-model",
    "your-creative-model"
  ],
  "default_timeout": 900,
  "max_tokens": 8192
}

Choose models with different strengths:

  • Strategos (Strategic): Pick a model known for strategic thinking, long-context reasoning, and business insight
  • Analyticos (Analytical): Pick a model known for data analysis, technical precision, and logical reasoning
  • Creativos (Creative): Pick a model known for creative thinking, novel perspectives, and user empathy

The more diverse the models, the better the council output. Using the same model for all three defeats the purpose.

Example configuration:

{
  "council_models": [
    "ollama/kimi-k2.6:cloud",
    "ollama/deepseek-v4-pro:cloud",
    "ollama/gemma4:31b-cloud"
  ],
  "default_timeout": 900,
  "max_tokens": 8192
}

Perspectives

Each model gets a different analytical lens:

| Perspective | Role | Focus |
|------------|------|-------|
| Strategos | Strategic analyst | Big-picture strategy, business impact, feasibility, ROI |
| Analyticos | Data & logic analyst | Technical correctness, edge cases, data quality, consistency |
| Creativos | Creative thinker | Novel alternatives, user experience, unconventional approaches |

How to Run a Council

Step 1: Prepare the Context

Gather all relevant data BEFORE spawning. Council agents cannot browse the web or access your conversation history. Paste everything they need inline.

Step 2: Spawn 3 Parallel Subagents

Read the model names from council-config.json and spawn each with a different perspective:

sessions_spawn(
  runtime: "subagent",
  mode: "run",
  model: <first model from config>,
  label: "Council-Strategos",
  lightContext: true,
  runTimeoutSeconds: <default_timeout from config>,
  task: "You are Strategos, a strategic analyst. [PASTE CONTEXT HERE]

  Analyze from a STRATEGIC perspective:
  - Business impact and feasibility
  - Resource requirements and ROI
  - Strategic risks and opportunities

  Return your analysis as a structured review with: verdict, conditions, risks, recommendations."
)

sessions_spawn(
  runtime: "subagent",
  mode: "run",
  model: <second model from config>,
  label: "Council-Analyticos",
  lightContext: true,
  runTimeoutSeconds: <default_timeout from config>,
  task: "You are Analyticos, a data and logic analyst. [PASTE CONTEXT HERE]

  Analyze from an ANALYTICAL perspective:
  - Data quality and completeness
  - Technical correctness and edge cases
  - Logical consistency

  Return your analysis as a structured review with: verdict, conditions, risks, recommendations."
)

sessions_spawn(
  runtime: "subagent",
  mode: "run",
  model: <third model from config>,
  label: "Council-Creativos",
  lightContext: true,
  runTimeoutSeconds: <default_timeout from config>,
  task: "You are Creativos, a creative thinker. [PASTE CONTEXT HERE]

  Analyze from a CREATIVE perspective:
  - Novel alternatives and unconventional approaches
  - User experience and usability
  - What's missing that no one else would think of

  Return your analysis as a structured review with: verdict, conditions, risks, recommendations."
)

Step 3: Synthesize

When all 3 return, merge their verdicts:

  1. Consensus points — where all 3 agree
  2. Disagreements — where they differ and why
  3. Blind spots — what none of them caught
  4. Final verdict — weighted synthesis with conditions
  5. Action items — concrete next steps

Write the synthesis to council-review-[topic].md.

Critical Rules

  1. Paste ALL context inline — agents have no conversation history
  2. Keep task descriptions under 2000 words — longer = context overflow = failure
  3. Use lightContext: true — always, to prevent context bloat
  4. Set runTimeoutSeconds from config — default 900, increase for complex topics
  5. Don't spawn with too much data — if pasting 10k+ words, summarize first
  6. Wait for ALL 3 to complete — don't synthesize with 2/3 results
  7. Never re-spawn — if one model times out, note it in the synthesis

Common Failure Modes

| Symptom | Cause | Fix |
|---------|-------|-----|
| All 3 return empty | Gateway overload | Kill zombie subagents, wait, retry |
| One model times out | Slow model + complex task | Increase timeout or simplify task |
| Context overflow (300k+ tokens) | Too much data pasted | Summarize to <2000 words |
| Shallow analysis | Vague task description | Be specific about what to analyze |
| All 3 say the same thing | Not enough perspective differentiation | Make perspective prompts more distinct |

Security & Safety

This skill is read-only and sandbox-safe:

  • Spawns 3 text-in/text-out subagents via sessions_spawn — no filesystem access, no arbitrary commands, no network calls
  • Subagents receive a text prompt and return a text analysis — that's it
  • No exec, no shell commands, no file reads/writes, no API calls
  • Models are configured locally — you control which models run
  • All output is a markdown synthesis file written to your workspace

Anti-Patterns

  • Spawning one subagent and asking it to "be 3 experts" — that's roleplay, not a council
  • Pasting 10k+ words of raw data — summarize first
  • Using the same model for all 3 perspectives — defeats the purpose
  • Synthesizing before all 3 complete — wait for everyone
  • Ignoring disagreements — disagreements are the most valuable output