大規模社会シミュレーションを行うマルチエージェントシステム「Agent-Kernel」を用いて災害対応シミュレーションで多様性がもたらす推定を行う

初めに

大規模社会シミュレーションを行うフレームワーク Agent-Kernelを見つけたので、これをもとに具体的な社会シミレーションを行ってみます

以下が今回実験を行ったfork リポジトリです

github.com

オリジナルのリポジトリは具体的な設定はなかったため、以下の設定を行う実験を行いました。 シナリオは「地震後の避難候補地評価」です。5つの候補地を5種類の専門家チームで評価しますが、各専門家は5属性のうち2つしか観測できない設計になっています。個体では原理的に正確な評価ができないため、集団で情報を統合する必要があります。

結論から言うと、多様な専門家10人のチーム(RMSE 3.44)は、同じ専門家120人のチーム(RMSE 18.68)を圧倒する結果になりました。

開発環境

  • Windows 11
  • Python 3.11
  • uv
  • LLM: gpt-4o-mini(OpenAI API)

実験設計

シナリオ

300×300マップ上に5つの避難候補地を配置し、各候補地は5属性(構造安全性・水/衛生・医療アクセス・物資経路・収容力)を持ちます。

専門家のリング構造

5種類の専門家がそれぞれ2属性のみ観測可能で、リング状に属性を共有します。

structural ←→ structural_engineer ←→ water
water      ←→ medical_officer     ←→ medical
medical    ←→ logistics_coordinator ←→ supply
supply     ←→ safety_inspector    ←→ shelter
shelter    ←→ community_liaison   ←→ structural

各属性はちょうど2職業がカバーする対称的な設計です。個体は2属性の値から5属性の合計を外挿(known_total × 5/n_known)するため、必然的に誤差が生まれます。集団の推定は全エージェントの推定値の平均を取ります。

エージェントの行動

各エージェントは LLM(gpt-4o-mini)で意思決定を行い、以下の4つのアクションから選択します。

  • move: 未訪問の候補地に移動して観測
  • share_observation: 近くの異なる専門家に観測データを共有
  • chat: 他エージェントと会話
  • rest: 休憩

実験条件

N シード 合計
実験群(5職業の混合チーム) 10, 20, 40, 60, 80, 120 42, 123, 456 18回
対照群(全員 structural_engineer) 10, 40, 120 42, 123, 456 9回

合計27回のシミュレーションを実行します。

環境構築

git clone https://github.com/yourname/Agent-Kernel.git
cd Agent-Kernel
uv sync --all-extras

.env にAPIキーを設定します。

OPENAI_API_KEY=sk-...

実行

シミュレーション実行

uv run python -m examples.standalone_test.run_wisdom_experiment survey

27条件を順番に実行します。所要時間は約60分です。

実験結果

実験群(混合専門家チーム):

N Collective RMSE Avg Individual RMSE Diversity Bonus Coverage
10 3.44 8.74 5.30 100%
20 1.86 11.83 9.96 100%
40 2.37 13.34 10.97 100%
60 2.77 14.09 11.32 100%
80 3.11 14.61 11.50 100%
120 2.59 15.63 13.05 100%

対照群(全員 structural_engineer):

N Collective RMSE Avg Individual RMSE Diversity Bonus Coverage
10 18.27 19.59 1.33 40%
40 19.19 20.66 1.47 40%
120 18.68 20.22 1.54 40%

結果のポイント

  • 多様性の効果: 混合チーム RMSE ≈ 2〜3 vs 同質チーム RMSE ≈ 18〜19 で約6倍の精度差
  • カバレッジの壁: 混合チームは全条件で Coverage 100% に対し、同質チームは 40% 止まり。同じ専門家を何人増やしても見えない情報は見えないまま
  • Diversity Bonus の拡大: N=10 で 5.30 → N=120 で 13.05。人数が増えるほど集団の利得が拡大
  • 収束パターン: Tick 0〜3 で候補地を巡回し Coverage が急上昇、Tick 3〜10 で情報共有により RMSE が急降下、Tick 10 以降で安定

可視化ダッシュボード

Society Panel の分析ダッシュボードで実験結果を可視化できます。

# Windows
scripts\start_society_panel.bat

# Linux/macOS
./scripts/start_society_panel.sh

http://localhost:5174 にアクセスし、サイドバーから「分析」を選択、録画ドロップダウンから survey_mixed_N* を選択すると、以下の6チャートが表示されます。

チャート 内容
KPIカード Collective RMSE / Diversity Bonus / Coverage / Agent数
RMSE収束曲線 集団 vs 個人平均 vs 最良個体の3本折れ線
多様性ボーナス diversity_bonus のtick推移
属性カバレッジ 0% → 100% のステップ曲線
専門家構成 5専門家のドーナツ円グラフ
候補地マップ 300×300マップ上の候補地 + エージェント(職業別色分け)

まとめ

  • 多様な専門家10人(RMSE 3.44)が、同質の専門家120人(RMSE 18.68)を圧倒する
  • 集合知の鍵は「人数」ではなく「視点の多様性」
  • Agent-Kernel のプラグインシステムを使えば、設定ファイルとプラグインの変更だけでこのような実験を構築できる

参考

  • Agent-Kernel - MicroKernel Multi-Agent System Framework
  • Agent-Kernel 論文 - arXiv:2512.01610
  • Surowiecki, J. (2004). The Wisdom of Crowds. Doubleday.
  • Hong, L., & Page, S. E. (2004). Groups of diverse problem solvers can outperform groups of high-ability problem solvers. PNAS, 101(46), 16385–16389.