synod-council について
Synodは、2つのAIエージェントが対等な立場で意思決定やコード変更を行うための討議システムです。永続化されたセッション、分離されたgit worktree、相互レビュー、検証、人間の承認を組み合わせています。
主な機能
- 01対称的な2エージェント討議
- 02SQLiteによるセッション状態の永続化
- 03セッションごとの独立git worktree
- 04相互レビューと自動検証
- 05承認と批准のワークフロー
活用シーン
- 01技術的な意思決定案の比較
- 02エージェントによるコード変更のレビューと検証
- 03未解決の課題を相手エージェントの批准に回す
MCP 対応
MCP対応クライアントから2つのエージェントによる討議を開始できるMCPサーバーを備えています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Synod
2 つの AI エージェントによる、永続的かつ対称的な熟議 — 分離された Git ワークツリー、 ピアレビュー、自動検証、明示的な承認ワークフローを備えています。
Synod は、個人用 AI インフラストラクチャにおける「council」として誕生しました。2 つの 自律型エージェント(オーケストレーターとエグゼキューター)が、どちらか一方がもう一方の 追認役にひそかになってしまうことなく、実際の意思決定と実際のコード変更を共に行う 必要があったためです。
理由
ほとんどのマルチエージェントフレームワークは、オーケストレーションの見せかけです。1 つの エージェントが別のエージェントをツールとして呼び出し、その出力を「協働」と呼んでいます。 Synod は異なる前提、つまり設計上対等な2 つのエージェントを中心に構築されています。
- 対称的なプロトコル — どちらのエージェントからでも開始できます。プロトコルに優先される側はありません。
- アイデンティティ契約 — すべてのプロンプトでエージェントが誰であるかを再確認するため、能力が低いモデルや注意散漫なモデルが、ピアのふりをして回答するように逸脱することはありません。
- バイアスに強い統合 — 各問題の統合担当は、誰が先に発言したかではなく、問題文のハッシュによって選ばれます。
- 永続状態 — すべてのセッションは、明示的なステージ(
plan、review、synthesize、ratify、...)とともに SQLite に保存されます。実行がクラッシュしても、謎ではなく調査可能な記録が残ります。 - コード変更はワークツリー経由で反映 — 各セッションには専用の Git ワークツリーとブランチが割り当てられます。エージェントが
mainにプッシュすることはありません。「完了したように見える」状態と「公開済み」の状態の間には、人間が行う承認ステップがあります。 - 修正を伴う検証 — 実装後にチェックを実行し、失敗した場合は上限付きの再試行を経て実装担当エージェントに差し戻されます。人間が確認するより前に修正されます。
インストール
pipx install synod-council
またはソースからインストールします。
git clone https://github.com/naruminho/synod-council
cd synod && pip install .
使い方
ライブラリ
from synod.deliberation import Deliberator, Store, HTTPAdapter
adapters = {
"Alice": HTTPAdapter("Alice", "http://127.0.0.1:9001/ask"),
"Bob": HTTPAdapter("Bob", "http://127.0.0.1:9002/ask"),
}
synod = Deliberator(adapters, Store("council.db"))
result = synod.run("Should we use SQLite or Postgres for this workload?", initiator="Alice")
print(result.decision, result.confidence, result.status) # consensus | reconciled
MCP サーバー
Synod にはMCPサーバーが付属しているため、MCP 対応クライアント (Claude Desktop、Claude Code、Cursor、...)ならどれでも熟議を開始できます。
synod-mcp # stdio transport
クライアントの設定に追加し、推測するのではなく熟議するようエージェントに依頼してください。
HTTP サーバー
synod-server --port 8790
curl -X POST http://127.0.0.1:8790/run -d '{"problem": "...", "initiator": "Alice"}'
熟議の流れ
plan (parallel) → cross-review (parallel) → synthesis → [ratification → reconciliation?]
レビュアーが未解決のブロッカーを指摘した場合、または信頼度が 0.7 未満の場合、候補となる 決定は統合を担当していないピアによる批准に進みます。拒否された場合は、暗黙の合意ではなく、 明示的な調整が必要になります。
ステータス
2026 年からアーキテクチャの決定とコードのリリースに利用されてきた、本番環境の個人用 インフラストラクチャから切り出され、実戦で検証されています。2 エージェントの設計は意図的な ものであり、N 人の参加者への対応はロードマップにあります。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。