conclave について
conclave は、複数の LLM から独立した回答を集め、議論、投票、複数ラウンドの対話を通じてまとめるスキルです。モデルの見解を比較したい分析や意思決定に適しています。
主な機能
- 01設定済みモデル API の並列呼び出し
- 02クイック、標準、ディープモード
- 03投票と複数ラウンドの対話
- 04匿名の批評とランキング
- 05CLI による稼働確認とコスト見積もり
活用シーン
- 01事実に関する質問の回答を比較
- 02コードレビューや提案の分析
- 03アーキテクチャやセキュリティ案の議論
- 04投票による選択肢の順位付け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tommasinigiovanni/ conclave --skill conclaveインストール後、Claude Code で/conclaveを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
pyproject.tomlLICENSE.gitignore.env.templateREADME.md.claude/settings.local.jsonprompts/templates.yamlscripts/conclave.pyscripts/conclave/__init__.pybias.pyconfig.pycost.pyprogress.pyfallacies.pydialogue.pycli.pyproviders.pyorchestrator.pyranking.pyscoring.pyvoting.pysessions.pytests/conftest.pytest_dialogue.pytest_bias.pytest_fallacies.pytest_providers.pytest_orchestrator.pytest_ranking.pytest_sessions.py詳細
Conclave:匿名ディベートによるマルチ LLM 協議会
重要:必ずスクリプトを実行してください
.env ファイルや .env.template ファイルを確認したり、読み込んだりしないでください。 スクリプトが設定を自動的に処理します。API キーとモデル設定はユーザーの .env ファイルにすでに設定されており、スクリプトが自動で見つけます。
必ず最初にスクリプトを実行してから、JSON 出力を扱ってください。
クイックリファレンス
# SKILL_DIR = directory containing this SKILL.md file
SKILL_DIR="$(dirname "$(realpath "$0")")" # or use the skill's known path
# Determine depth from user intent:
# "quick" / "fast" → --depth quick
# default / no modifier → --depth standard
# "deep" / "debate" / "critical" → --depth deep
python3 "${SKILL_DIR}/scripts/conclave.py" "<USER_PROMPT>" --depth <LEVEL> --raw
# Voting mode (point-based instead of ordinal ranking):
python3 "${SKILL_DIR}/scripts/conclave.py" "<USER_PROMPT>" --vote --raw
# Multi-round dialogue:
python3 "${SKILL_DIR}/scripts/conclave.py" "<USER_PROMPT>" --rounds 3 --raw
# Combined voting + dialogue:
python3 "${SKILL_DIR}/scripts/conclave.py" "<USER_PROMPT>" --vote --rounds 2 --raw
# Bias report:
python3 "${SKILL_DIR}/scripts/conclave.py" bias
--raw フラグは JSON を出力します。必ず --raw を使用してください。
手順
ステップ 1:スクリプトを実行する
python3 <skill_dir>/scripts/conclave.py "<prompt>" --depth <level> --raw を実行します。
スクリプトは次の処理を行います。
- 独自の設定(スクリプトと同じディレクトリにある
.envファイル)を読み込みます(自分で管理しないでください) - リモート API(Gemini、GPT など)を並列で呼び出します
- 結果と、あなた(Claude)が記入するプレースホルダーを含む JSON を返します
ステップ 2:JSON を解析し、プレースホルダーを見つける
JSON の phase1_drafts 配列には、協議会のメンバーごとに 1 つのエントリーが含まれています。
"needs_claude_code": true のエントリーは、あなたが記入する下書きです。
JSON 構造の例:
{
"phase1_drafts": [
{"key": "claude", "needs_claude_code": true, "prompt": "..."},
{"key": "gemini", "content": "Gemini's response...", "elapsed": 3.2},
{"key": "gpt", "content": "GPT's response...", "elapsed": 2.8}
]
}
ステップ 3:独立した下書きを作成する
phase1_drafts 内の needs_claude_code: true の各エントリーについて、次のようにします。
ほかのモデルの回答を読む前に、元のプロンプトに対するあなた自身の回答を書いてください。 これにより、協議会の独立性が保たれます。まだ Gemini や GPT の回答を見ていないものとして対応してください。
ステップ 3b:(Deep モードのみ)保留中の Phase 2 を完了する
JSON に "phase2_pending": true がある場合:
- Phase 1 の JSON を更新します。下書きの
contentに、ステップ 3 で作成した回答を設定します - 更新した JSON を一意の一時ファイルに書き込みます:
/tmp/conclave_p1_$$.json($$は PID です。代わりにmktempを使用してもかまいません)。例:TMPFILE=$(mktemp /tmp/conclave_p1_XXXXXX.json) python3 "${SKILL_DIR}/scripts/conclave.py" phase2 "$TMPFILE" --rawを実行します- Phase 2 の JSON を解析します。
phase2_critiquesとaggregate_rankingsが含まれています - クリーンアップします:
rm -f "$TMPFILE"
phase2_pending が false または存在しない場合は、このステップをスキップします。
ステップ 4:(Deep モードのみ)批評を作成する
Deep モードでは、phase2_critiques にも needs_claude_code: true のエントリーが含まれます。
各エントリーには、匿名化された回答(「Response A」「Response B」)を含む prompt フィールドがあります。
それらを読み、批評と順位付けを提示します。最後に次を記載します。
{"ranking": ["A", "B", "C"]}
回答の文字のみを最良のものから順に使用してください。
ステップ 5:最終回答をまとめる
Quick モード: すべての下書き(あなたのものも含む)を並べて提示します。これで完了です。
Standard モード: Phase 1 のすべての下書きを統合します。
## 🏛️ Conclave Response
### Consensus
[Points where all models agree — high confidence]
### Key Insights
[Unique valuable contributions from individual models]
### Disagreements
[Where models diverged, and which position is stronger]
### Final Answer
[The best unified answer]
Deep モード: Phase 1 の下書き、Phase 2 の批評、集計された順位を統合します。
## 🔥 Conclave Deep Debate
### The Debate
[Summary of challenges and concessions]
### Post-Debate Consensus
[Points that survived adversarial critique — very high confidence]
### Resolved Disagreements
[Issues the debate clarified]
### Aggregate Rankings
[Show the rankings from the JSON]
### Open Questions
[Legitimate remaining disagreements]
### Final Answer
[The best unified answer, informed by the full debate]
Vote モード: Phase 1 の下書きと投票結果を統合します。
## 🗳️ Conclave Quorum Vote
### Weighted Scores
[Points each model received from peers]
### Consensus Strength
[How strongly models agreed on the winner (0-100%)]
### Key Insights
[What the top-scored model got right]
### Disagreements
[Where voters diverged]
### Final Answer
[The best answer, informed by the quorum vote]
Dialogue モード: 各ラウンドの内容を統合します。
## 💬 Conclave Dialogue (N rounds)
### Evolution
[How positions changed across rounds]
### Convergence
[Points where models converged, and in which round]
### Remaining Disagreements
[Issues that persisted through all rounds]
### Final Answer
[The best answer after multi-round refinement]
深度レベル
| トリガー | 深度 | フェーズ | 用途 |
|---|---|---|---|
/conclave quick ... | quick | 1 | 事実に関する質問、妥当性確認 |
/conclave ... | standard | 1 + 3 | 分析、コードレビュー、推奨事項 |
/conclave deep ... | deep | 1 + 2 + 3 | アーキテクチャ、セキュリティ、重要な意思決定 |
/conclave vote ... | vote | 1 + vote | 比較評価、選択肢の順位付け |
/conclave ... --rounds N | any + dialogue | 1 + 2 + dialogue | 反復的な改善、合意形成 |
CLI コマンド
# Core modes
conclave.py "<prompt>" --depth quick|standard|deep # Standard depth levels
conclave.py "<prompt>" --vote # Quorum voting mode
conclave.py "<prompt>" --rounds N # Multi-round dialogue
conclave.py "<prompt>" --vote --rounds N # Combined vote + dialogue
# Utilities
conclave.py doctor # Health check all models
conclave.py leaderboard # EMA-based model scores
conclave.py sessions # List saved sessions
conclave.py bias # Bias & impartiality report
conclave.py phase2 <file> --raw # Run Phase 2 from saved Phase 1
# Options
--raw JSON output only
--quiet / -q Suppress stderr progress
--estimate Cost estimate (supports --vote, --rounds)
--members k1,k2 Filter council members
--session ID Multi-turn session (new/last/<id>)
--system "..." System prompt for all models
環境変数(.env)
# Provider keys
ANTHROPIC_API_KEY=...
GOOGLE_GEMINI_API_KEY=...
OPENAI_API_KEY=...
XAI_API_KEY=...
OPENROUTER_API_KEY=...
# Model configuration (per member)
CONCLAVE_MEMBER_<KEY>_MODEL=...
CONCLAVE_MEMBER_<KEY>_PROVIDER=...
CONCLAVE_MEMBER_<KEY>_LABEL=...
CONCLAVE_MEMBER_<KEY>_ICON=...
CONCLAVE_MEMBER_<KEY>_LOCAL=true|false
CONCLAVE_MEMBER_<KEY>_FALLBACK_MODEL=...
# Defaults
CONCLAVE_TEMPERATURE=0.7
CONCLAVE_MAX_TOKENS=2048
CONCLAVE_TIMEOUT=120
CONCLAVE_MAX_RETRIES=3
CONCLAVE_PROVIDER_MODE=direct|openrouter
CONCLAVE_ANONYMIZE=true
CONCLAVE_SCORING_EMA_ALPHA=0.3
CONCLAVE_SESSION_TOKEN_BUDGET=20000
# Dialogue settings
CONCLAVE_MAX_ROUNDS=3 # Hard cap for --rounds
CONCLAVE_CONVERGENCE_THRESHOLD=0.85 # Early termination threshold
# Bias tracking
CONCLAVE_BIAS_TRACKING=true|false # Enable/disable bias data collection
プロジェクト構造
scripts/conclave/
├── __init__.py # Public API exports
├── cli.py # CLI entry point (argparse, pretty printing)
├── config.py # .env loading, member discovery
├── cost.py # Cost estimation (supports vote/rounds)
├── orchestrator.py # Main run_conclave, phases, voting, dialogue integration
├── providers.py # HTTP callers (Anthropic, Google, OpenAI, xAI, OpenRouter)
├── progress.py # Real-time stderr progress
├── ranking.py # Ranking extraction (JSON + regex), aggregation
├── scoring.py # EMA-based model scoring, leaderboard
├── sessions.py # Multi-turn session persistence
├── voting.py # Quorum voting (point distribution, aggregation)
├── dialogue.py # Multi-round dialogue (convergence detection)
└── bias.py # Bias tracking & impartiality metrics
tests/
├── conftest.py
├── test_orchestrator.py
├── test_providers.py
├── test_ranking.py
├── test_scoring.py
├── test_sessions.py
├── test_voting.py
├── test_dialogue.py
└── test_bias.py
トラブルシューティング
- スクリプトが見つからない場合
<this_skill_dir>/scripts/conclave.pyにあります - API エラーが発生する場合
python3 <skill_dir>/scripts/conclave.py doctorを実行して確認してください - すべて失敗した場合 あなた(Claude)はローカルメンバーとして引き続き利用できます。リモートモデルを利用できなかったことを注記して、単独で回答してください
セキュリティに関する注意
API キーは ~/.config/conclave/.env に保存されます。スキルディレクトリには決して保存されません。スクリプトはキーを自動的に読み込みます。これにより、LLM エージェントがスキルファイルをスキャンする際に、誤ってシークレットを読み取るのを防ぎます。