「AIに質問して、自信満々な一段落の回答が返ってくる…でも本当にそれって正しいの?」そんなモヤモヤ、感じたことありませんか?
海外の開発者コミュニティで、そのモヤモヤをまるごとひっくり返すような面白いプロジェクトが話題になっています。その名も RabbitHole。一言で言うと、「複数のAIエージェントが同じ資料を読んで、お互いに議論し合う」マルチエージェントシステムです 🐰
RabbitHoleって何をするもの?

普通のRAG(検索拡張生成)システムは、こんな流れですよね。
- ユーザーが質問する
- 関連ドキュメントを検索して取得する
- LLMが「答え」を一つ返す
RabbitHoleはここが違います。同じ取得済みドキュメントを複数のエージェントに渡して、それぞれ異なる立場・視点から議論させるんです。
たとえばこんなエージェントたちが登場します。
- ⚖️ State Advocate(国家擁護派):規制・国家の立場で主張する
- 🔒 Privacy Activist(プライバシー活動家):個人の権利を最優先で守る
- 📋 Compliance Officer(コンプライアンス担当):法令・規則に則って判断する
イメージとしては、「法廷で弁護士・検察・専門家証人がそれぞれ主張し合う」感じです。一つの問いに対して、複数の角度から光を当てることで、より深い洞察が得られるんですよね。
技術スタックのざっくり解説
RabbitHoleは LangGraph をベースに構築されています。LangGraphはLangChainチームが開発したライブラリで、複数のエージェントやステップを「グラフ構造(ノード+エッジ)」として定義できるのが特徴です。
マルチエージェントの基本構造をシンプルに書くと、こんなイメージです。
# LangGraphでエージェントをノードとして定義するイメージ
from langgraph.graph import StateGraph, END
from typing import TypedDict, List
# 共有する会話状態を定義
class DebateState(TypedDict):
question: str # ユーザーの質問
retrieved_docs: List # 取得したドキュメント
arguments: List[str] # 各エージェントの主張
conclusion: str # 最終まとめ
# 各エージェントをノードとして追加
workflow = StateGraph(DebateState)
workflow.add_node("state_advocate", state_advocate_agent) # 国家擁護派
workflow.add_node("privacy_activist", privacy_activist_agent) # プライバシー派
workflow.add_node("compliance_officer", compliance_agent) # コンプライアンス派
workflow.add_node("judge", judge_agent) # 最終判断ノード
# エッジで処理の流れを定義
workflow.set_entry_point("state_advocate")
workflow.add_edge("state_advocate", "privacy_activist")
workflow.add_edge("privacy_activist", "compliance_officer")
workflow.add_edge("compliance_officer", "judge")
workflow.add_edge("judge", END)
app = workflow.compile()
ポイントをまとめるとこんな感じです 👇
- StateGraph:エージェント間で共有する「状態(State)」を管理する
- ノード:各エージェントの処理(LLMの呼び出し)を担当
- エッジ:処理の順番・分岐を定義する接続線
- 全エージェントが同じ retrieved_docs を参照しながら、それぞれ異なる主張を生成する
なぜこのアーキテクチャが面白いのか
単一LLMへの問いかけでは「一番もっともらしい答え」が返ってきます。でも現実の問題って、正解が一つじゃないことの方が多いですよね。
RabbitHoleのアプローチは、AIの「自信過剰問題」に対する一つの答えとして注目できます。複数の立場が議論することで、見落としや偏りが自然と浮かび上がってくるんです。
LangGraphを使ったマルチエージェント設計は、実務でも応用範囲が広いですよ。たとえば「コードレビューエージェント×セキュリティ診断エージェント」とか「営業視点×コスト視点」での意思決定支援なんかにも使えそうです 🎯
まとめ
今回は複数AIエージェントが議論し合う RabbitHole と、その基盤となる LangGraph のアーキテクチャを紹介しました。「一つのLLMに聞く」から「複数の視点で議論させる」という発想の転換、ぜひ自分のプロジェクトでも試してみてください!💡
LangGraphの基本的な使い方に興味が出てきた方は、公式ドキュメントもあわせてチェックしてみてくださいね。一緒に学んでいきましょう!





