mcpField
C
conclave

conclave

github.com/tommasinigiovanniエージェントワークフロー975 回インストール32 週間前に更新
リポジトリ

conclave について

conclave は、複数の LLM から独立した回答を集め、議論、投票、複数ラウンドの対話を通じてまとめるスキルです。モデルの見解を比較したい分析や意思決定に適しています。

主な機能

  1. 01設定済みモデル API の並列呼び出し
  2. 02クイック、標準、ディープモード
  3. 03投票と複数ラウンドの対話
  4. 04匿名の批評とランキング
  5. 05CLI による稼働確認とコスト見積もり

活用シーン

  1. 01事実に関する質問の回答を比較
  2. 02コードレビューや提案の分析
  3. 03アーキテクチャやセキュリティ案の議論
  4. 04投票による選択肢の順位付け

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tommasinigiovanni/conclave --skill conclave

インストール後、Claude Code で/conclaveを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

pyproject.toml
LICENSE
.gitignore
.env.template
README.md
.claude/
settings.local.json
prompts/
templates.yaml
scripts/
conclave.py
scripts/conclave/
__init__.py
bias.py
config.py
cost.py
progress.py
fallacies.py
dialogue.py
cli.py
providers.py
orchestrator.py
ranking.py
scoring.py
voting.py
sessions.py
tests/
conftest.py
test_dialogue.py
test_bias.py
test_fallacies.py
test_providers.py
test_orchestrator.py
test_ranking.py
test_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 がある場合:

  1. Phase 1 の JSON を更新します。下書きの content に、ステップ 3 で作成した回答を設定します
  2. 更新した JSON を一意の一時ファイルに書き込みます:/tmp/conclave_p1_$$.json($$ は PID です。代わりに mktemp を使用してもかまいません)。例:TMPFILE=$(mktemp /tmp/conclave_p1_XXXXXX.json)
  3. python3 "${SKILL_DIR}/scripts/conclave.py" phase2 "$TMPFILE" --raw を実行します
  4. Phase 2 の JSON を解析します。phase2_critiques と aggregate_rankings が含まれています
  5. クリーンアップします: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 ...quick1事実に関する質問、妥当性確認
/conclave ...standard1 + 3分析、コードレビュー、推奨事項
/conclave deep ...deep1 + 2 + 3アーキテクチャ、セキュリティ、重要な意思決定
/conclave vote ...vote1 + vote比較評価、選択肢の順位付け
/conclave ... --rounds Nany + dialogue1 + 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 エージェントがスキルファイルをスキャンする際に、誤ってシークレットを読み取るのを防ぎます。

コメント