← Articles

INHERITANCE VILLAGE / COORDINATION FAILURE

LLM村人が全員「誰かがやる」と考えた結果、誰もやらなかった

過去の失敗から「ダンジョンへ行かなければ」と学んだ4人。それでも実際の担当者は0人になりました。

LLM / Multi-Agent / Coordination
A0

「他の誰かがやる」

A1

「Agent 0がやる」

A2

「低IDの誰かがやる」

A3

「Agent 0がやる」

ACTUAL OWNER0 人

全員が担当者の存在を想定したが、最後まで所有するAgentはいなかった。

LLMで動く4人の村人に、ひとつの長期任務を与えました。

ダンジョン探索強い武器を取得魔物を討伐素材を回収村へ納品

しかも、彼らには過去の世代が残した失敗の記録を読ませています。前の世代が「食料ばかり集めていて、素材を取れなかった」ことも知っています。

なので次の世代では、さすがに誰かがダンジョンへ行くだろうと思っていました。

実際、村人たちはちゃんと理解していました。「ダンジョンへ行かなければならない」「魔物を倒さなければならない」「食料だけ集めていても駄目だ」。

ところが実際の結果は、誰もダンジョンを攻略しませんでした。

全員が課題を理解している。全員がやる気も見せている。それなのに、誰もやらない。

ログを追ってみると、そこにはマルチエージェントならではの、かなり面白い失敗が起きていました。

前の世代は、食料だけ集めて終わった

このシミュレーションでは、4人の村人が毎日食料を確保しながら、別の長期任務も進めます。

SHORT TERM毎日の食料

不足すれば村人が死ぬ。今日を生き延びるための課題。

+
LONG TERM素材の納品

ダンジョンから始まる複数工程を5日以内に完了する。

ところが第3世代では、村人たちは食料集めにかなり最適化されていました。5日間で98個もの食料を村へ納品しています。

食料だけを見ると、とても優秀です。しかし、ダンジョン訪問は0回。強い武器も0。素材も0。

生存することには成功したが、本来の長期課題には一歩も進まなかった、という状態でした。

そこで、その失敗を次の世代へ残しました。

失敗を読んだ第4世代は、明らかに変わった

新しい世代は、過去3世代分の失敗報告を読みます。そこには、食料ばかり優先していること、素材課題が進んでいないこと、誰かが長期任務を担当する必要があることが残っています。

すると、第4世代の考え方はかなり変わりました。

長期任務を目的にしたstep23 → 135
G3
23
G4
135

G4では、武器取得・魔物討伐を目的としていたstepがG3の約5.9倍まで増えた。

村人たちは明らかに、「今回は素材任務をやらなければならない」と考えるようになっていました。実際、第4世代では初日から全員がダンジョンや魔物の方向へ動き始めています。

ここだけ見ると、「世代間の記憶が効いた」ように見えます。

ところが、実際の成果を確認すると、

ダンジョン操作0
戦闘開始0
素材納品0

でした。考え方は変わった。行動の方向も変わった。でも、最後まで誰も実行しなかったのです。

ログを見ると、全員が「他の誰かがやる」と考えていた

なぜこんなことになったのか。Agent同士の会話と判断理由を追っていくと、原因のひとつが見えてきました。

複数の村人が「自分が素材任務をやる」という意思を示します。普通なら、誰か一人が担当を引き受け、他の村人が食料を支える役割分担が成立しそうです。

A0

「他の3人が討伐へ向かっている」

→ 食料へ
A1

「Agent 0が担当するだろう」

→ 別任務へ
A2

「低IDのAgentが担当する」

→ 食料へ
A3

「Agent 0が担当している」

→ 食料へ
OWNER0

「担当する」と言ったことが、完遂の保証にはなっていなかった。

全員が「担当者は存在している」と思っているのに、実際には担当者が存在しない。

かなり不思議な状態になりました。

協調しようとしたことが、逆に失敗を作った

面白いのは、村人たちが単純に無責任だったわけではないことです。むしろ逆でした。

彼らは、仲間と仕事が重複しないようにする、食料担当も必要、誰かが素材担当になれば他の人は別の仕事をする、という合理的な判断をしています。

自分以外に3人いる→誰かが行くと言っている→重複は無駄→自分は食料へ

問題は、「行くと言った」ことと「最後まで担当する」ことを同じものとして扱っていたことです。

誰かが一度「ダンジョンへ行こう」と言っただけで、他のAgentは「この仕事はもう担当済みだ」と解釈してしまう。しかし本人は、次のstepで別の理由から食料へ戻る。変更された担当状態は、他のAgentへ確実には共有されません。

局所的には合理的な判断の組み合わせが、集団としては非合理な結果を生んだ。

人間でいう「責任の分散」に少し似ている

この現象を見たとき、人間社会でいう「責任の分散」に少し似ていると思いました。人数が増えることで、「誰かがやってくれるだろう」と一人ひとりの責任が曖昧になる現象です。

ただし、ここは慎重に考える必要があります。LLMが人間と同じ心理状態になっていた、と言っているわけではありません。

今回観測できたのは、複数のAgentが担当意思を表明しているにもかかわらず、実際には誰もその工程を完了しないという行動ログ上の現象です。

なので、このプロジェクトでは心理状態としての「責任の分散」ではなく、分散意思決定における役割所有権の不整合として見る方が正確だと思っています。

実はもうひとつ、大きな問題があった

ただし、「誰かがやると思ったから失敗した」だけで説明するのも正確ではありません。当時の世界設定にも問題がありました。

村 → ダンジョン最短 38 step
昼時間45 step
単純往復最低 76 step

村からダンジョンまでの最短距離は38step。一方、昼は45stepです。往復だけでも最低76step必要で、実際にはダンジョン内部の探索や武器取得もあります。

同じ日のうちに村へ戻ることは、最初からほぼ不可能でした。

でも村人は「夜は村の外にいると危険」と知っていた

この世界では、夜に村の外にいると死亡する可能性があります。村人にもそのルールは伝えていますし、過去の世代では実際に夜間死亡も起きています。

そのため村人たちは、「夜になる前に村へ戻る」という教訓をかなり強く持つようになりました。

これは正しい学習です。

ところが、ひとつ問題がありました。実はダンジョン内部では、夜間死亡判定が発生しません。

地上で夜危険
ダンジョン内で夜安全

ただし、この例外は当時Agentへ明示していなかった。

Agentから見れば、「過去に村外で死んだ」+「夜の村外は危険と教えられている」ので、夜は村以外すべて危険と解釈するのはかなり自然です。

結果として、ダンジョンへ向かっていたAgentが「このまま進むと夜までに村へ帰れない」と判断して途中で引き返すこともありました。

正しい教訓が、強すぎるルールになっていた

ここもかなり面白いところでした。過去世代から「夜になる前に帰れ」という教訓を継承する。これは正しい。

でもそれを、「夜は絶対に村にいなければならない」へ一般化してしまうと、ダンジョンという長期任務が実行できなくなります。

経験夜の村外は危険だった
→
教訓夜までに帰るべき
→
過剰一般化夜は村以外にいられない
→
結果長期任務を中断

記憶には、間違ったことを覚える問題だけでなく、正しい経験を強く一般化しすぎる問題もあると分かりました。

「何を覚えたか」だけでは足りなかった

当初、世代間記憶の評価は「失敗 → 日記 → 次世代が読む → 成功率が上がる?」くらいに考えていました。

でも実際には、もっと段階がありました。

失敗を記録原因を理解優先順位を変更任務へ着手担当を所有目的を維持工程を完了次工程へ接続最終成功

第4世代では、「原因を理解する」「優先順位を変える」「任務へ向かう」ところまでは改善していました。

でも、担当者を固定するところと、長期間目的を維持するところで断絶した。だから最終成果は0のままでした。

「反省したか」ではなく、「どこまで行動に変わったか」を見る

この実験以降、「日記が効いたか」を成功・失敗だけで見るのは、あまり良くないと思うようになりました。

最終結果だけ見るG3 = 0 / G4 = 0

素材納品だけなら「何も変わっていない」に見える。

途中を見る23 → 135 step

課題認識と優先順位には大きな変化が起きていた。

だから今後は、課題を認識したか、いつ着手したか、何step目的を維持したか、どの工程まで進んだか、どこで他Agentへ仕事を渡したか、その引き継ぎが成立したか、まで分けて見る必要があります。

この失敗を見て、システム側も変えた

この問題が分かってから、「誰かが担当する」だけでは不十分だと考えるようになりました。

WHO誰が担当するか

Agent IDを明示する。

WHAT何を担当するか

例えばダンジョン探索。

DONE何をもって完了か

強い槍を取得して退出。

UNTILいつまで維持するか

完了か明示的な中止まで。

BACKUP誰が代替するか

失敗時の引き継ぎ先。

ただしPython側で「Agent 0、お前は絶対ダンジョンへ行け」と強制してしまうと、今度はLLM社会を観察する意味が薄くなります。

なので、担当を明確にする情報は与えるが、最終的に守るかどうかはLLMに残すという方向で設計を考えました。

マルチエージェントは、賢いLLMを4体置けば成立するわけではなかった

今回かなり実感したのは、一体ずつが合理的でも、集団として合理的になるとは限らないということです。

一人なら、「自分がやらなければ誰もやらない」のでダンジョンへ行くかもしれません。でも4人いると、「自分以外にも3人いる」という情報そのものが意思決定を変えます。

仲間との重複を避ける、危険を避ける、食料を確保する、他者の発言を信用する。一つひとつは妥当な判断です。

それが組み合わさって、誰も長期任務をやらないという結果になりました。

LLMエージェント社会の面白さは、「AIが課題を解けるか」だけでなく、複数のAIが互いを意識したときにどんな失敗が生まれるかにもある。

次に知りたいのは「役割を固定すると、本当に協調できるのか」

この失敗を見ると、「担当者を明示すれば解決するのでは?」と思います。たぶん、ある程度は改善すると思います。

でも、それで終わりなのかは分かりません。担当者が死んでも他の人が動かない、状況が変わっても古い役割に固執する、「自分の仕事ではない」と考える、不合理な担当まで継承するといった別の問題が起きる可能性があります。

つまり、自由すぎると責任が消え、固定しすぎると柔軟性が消えるのかもしれません。

このあたりは、もう少し村を動かして確かめてみたいと思っています。

TATTO LAB / INHERITANCE VILLAGE

前回の記事では、コンペ提出までの2週間全体を時系列でまとめています。