Skip to main content

Multi-model deliberation for important decisions. 5 frontier LLMs debate, then a judge synthesizes consensus.

Project description

Frontier Council

Multi-model deliberation for important decisions. 5 frontier LLMs debate a question, then a judge synthesizes consensus.

Inspired by Andrej Karpathy's LLM Council, with added blind phase (anti-anchoring), explicit engagement requirements, devil's advocate role, and social calibration mode.

Models

  • Claude (claude-opus-4.5)
  • GPT (gpt-5.2-pro)
  • Gemini (gemini-3-pro-preview)
  • Grok (grok-4)
  • Kimi (kimi-k2.5)
  • Judge: Claude Opus 4.5

Installation

pip install frontier-council

Or with uv:

uv tool install frontier-council

Setup

Set your OpenRouter API key:

export OPENROUTER_API_KEY=sk-or-v1-...

Optional fallback keys (for flaky models):

export GOOGLE_API_KEY=AIza...      # Gemini fallback
export MOONSHOT_API_KEY=sk-...     # Kimi fallback

Usage

# Basic question
frontier-council "Should we use microservices or monolith?"

# With social calibration (for interview/networking questions)
frontier-council "What questions should I ask in the interview?" --social

# With persona context
frontier-council "Should I take the job?" --persona "builder who hates process work"

# Multiple rounds
frontier-council "Architecture decision" --rounds 3

# Save transcript
frontier-council "Career question" --output transcript.md

# Share via GitHub Gist
frontier-council "Important decision" --share

# List past sessions
frontier-council --sessions

All sessions are auto-saved to ~/.frontier-council/sessions/ for later review.

Options

Flag Description
--rounds N Number of deliberation rounds (default: 2, exits early on consensus)
--output FILE Save transcript to file
--named Let models see real names during deliberation (may increase bias)
--no-blind Skip blind first-pass (faster, but first speaker anchors others)
--context TEXT Context hint for judge (e.g., "architecture decision")
--share Upload transcript to secret GitHub Gist
--social Enable social calibration mode (auto-detected for interview/networking)
--persona TEXT Context about the person asking
--advocate N Which speaker (1-5) should be devil's advocate (default: random)
--quiet Suppress progress output
--sessions List recent saved sessions
--no-save Don't auto-save transcript to ~/.frontier-council/sessions/

How It Works

Blind First-Pass (Anti-Anchoring):

  1. All models generate short "claim sketches" independently and in parallel
  2. This prevents the "first speaker lottery" where whoever speaks first anchors the debate
  3. Each model commits to an initial position before seeing any other responses

Deliberation Protocol:

  1. All models see everyone's blind claims, then deliberate
  2. Each model MUST explicitly AGREE, DISAGREE, or BUILD ON previous speakers by name
  3. After each round, the system checks for consensus (4/5 agreement triggers early exit)
  4. Judge synthesizes the full deliberation

Anonymous Deliberation:

  • Models see each other as "Speaker 1", "Speaker 2", etc. during deliberation
  • Prevents models from playing favorites based on vendor reputation
  • Output transcript shows real model names for readability

When to Use

Use the council when:

  • Making an important decision that benefits from diverse perspectives
  • You want models to actually debate, not just answer in parallel
  • You need a synthesized recommendation, not raw comparison
  • Exploring trade-offs where different viewpoints matter

Skip the council when:

  • You're just thinking out loud (exploratory discussions)
  • The answer depends on personal preference more than objective trade-offs
  • Speed matters (council takes 60-90 seconds)

Python API

from frontier_council import run_council, COUNCIL
import os

api_key = os.environ["OPENROUTER_API_KEY"]

transcript, failed_models = run_council(
    question="Should we use microservices or monolith?",
    council_config=COUNCIL,
    api_key=api_key,
    rounds=2,
    verbose=True,
    social_mode=False,
)

print(transcript)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

frontier_council-0.1.2.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

frontier_council-0.1.2-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file frontier_council-0.1.2.tar.gz.

File metadata

  • Download URL: frontier_council-0.1.2.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for frontier_council-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1898ec13da7dfaa874d4fc4500686bb6ad445cfcbbd400e348ac17dfa95e7ade
MD5 de052a9f6e2a1fac234aee6368924b7f
BLAKE2b-256 1e08d9fcd25110374beecedf96dd354c42f179409ac2b35ab78bc8ceba6df104

See more details on using hashes here.

File details

Details for the file frontier_council-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for frontier_council-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9a1ddc6cc799d7a523aec3f82c4d68d3f7176eeaa973f69e4fd23ce4ff18e343
MD5 5007fc2f7f1d05086a34744b220db7c0
BLAKE2b-256 080a4e018f22d206d5ff799d4325fd4c7b26400f0039f5826c90e61d50754b28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page