INHERITANCE VILLAGE / COMPETITION DEVELOPMENT
コンペのために、Codexと2週間でLLMの村を作った
食料を取りに行くだけだった4人の村人が、日記を書き、世代を越えて失敗を受け継ぎ、ダンジョンへ向かうまでの開発記。

8月の半ば、コンペに出すためにひとつのシミュレーションを作り始めました。
作りたかったのは、LLMで動く村人たちが暮らす小さな世界です。
4人の村人がそれぞれ自分で考え、食料を取りに行き、会話し、ときには危険な場所へ向かう。そして世代が失敗したら、その経験を次の世代へ残す。
そんな世界を、コンペの締切までの約2週間でどこまで作れるか試してみることにしました。実装、長時間runの監視、ログの分析、問題点の整理、提出資料づくりまで、Codexとかなり密に往復しながら進めました。
最初は「食料を取って帰る」だけだった
最初の村人たちに与えた課題は、とても単純でした。村を出て食料を探し、日が暮れる前に持ち帰る。それだけです。
村の近くには少量の食料が取れる場所があり、少し遠くには多くの食料を取れる森があります。夜になると村の外は危険です。
つまり村人は、「どこへ食料を取りに行くか」だけでなく、「あと何歩なら帰れるか」「今持っている量で十分か」「仲間も食料を持って帰っているか」といったことを考える必要があります。
この時点では、まだ「LLM社会」というより、LLMに小さなサバイバルゲームを遊ばせているくらいの感覚でした。
ところが、ここですぐに問題が出てきました。
LLMが「できた」と言っても、本当にできたとは限らない
LLMをゲーム世界の住人にすると、ひとつ厄介なことがあります。
例えば村人が「食料を村へ納品しました」と言ったとしても、それをそのまま事実にするわけにはいきません。位置的にはまだ森にいるかもしれないし、そもそも食料を持っていないかもしれません。
そこで、このシミュレーションでは役割をかなり明確に分けました。
目的、行動、会話、理由、個人記憶、感情、反省を生成する。
位置、時刻、HP、食料、武器、戦闘、死亡、納品、世代交代を管理する。
LLMには意思決定の自由を与える。ただし、世界の物理法則を書き換える権限は与えない。
この分離によって、「本人は成功したと思っていた」と「Python上で本当に成功していた」を別々に確認できるようになりました。
この設計は、2週間の最後までかなり重要でした。
4Bでは、そもそも村人がうまく生活できなかった
最初はQwen3-4Bを使っていました。ローカルで動かしやすい小さなモデルです。
ところが実際に村へ入れてみると、食料を取ったのに持ち帰らない、村と食料地の間を何度も往復する、途中で目的を変える、JSONが途中で壊れる、といった問題がかなり出ました。
日記には「夜になる前に村へ帰るべきだった」と、それらしい反省を書くのですが、次の行動ではまた似たことを繰り返します。
正しい反省を書けることと、それを実際の行動へ変えられることは別だった。
そこで途中からQwen3.6-27Bへ切り替えました。同じ食料課題を使った単一seedの予備比較では、27Bは2日間で29個の食料を採取し、29個すべてを村へ納品しました。4Bでは12個採取して、納品できたのは3個でした。
もちろん各1 runなので、これだけでモデル性能の一般的な差を証明できるわけではありません。ただ、このプロジェクトではひとつ重要なことが分かりました。
世代間の記憶を評価する前に、その記憶を行動へ変換できる程度には基礎能力のあるモデルが必要だったのです。
失敗した世代の日記を、次の世代へ残すことにした
食料を取って帰るだけなら、毎世代ほとんど同じことを繰り返します。これでは「経験を継承する意味」があまりありません。
そこで、世代が失敗したときに2種類の記録を残すことにしました。
恐怖、後悔、安堵、次にどうするべきかなど、村人本人の主観を残す。
死因、食料不足、完了工程、未完了工程など、検証可能な事実を残す。
次の世代は、「先代がどう感じたか」と「実際に何が起きたか」の両方を読んでから生活を始めます。
物理的な武器や食料は受け継ぎません。受け継ぐのは言葉だけです。
このあたりから、最初に考えていた「村のシミュレーション」らしくなってきました。
食料だけでは簡単すぎるので、ダンジョンを作った
次に、毎日の生存と並行して進めなければならない長期課題を追加しました。
村人たちは食料を毎日確保しながら、5日以内にこの工程を完了しなければなりません。
誰かが食料を集めなければ村は全滅します。一方で、全員が食料だけを集めていても長期課題は終わりません。誰かが危険な仕事を引き受ける必要があります。
そして、ここでかなり面白い失敗が起こりました。
全員が「誰かがやる」と考えた結果、誰もやらなかった
過去の失敗を読んだ第4世代では、明らかな変化がありました。
前の世代より、「武器を取りに行く」「魔物を倒す」という長期任務を目的として維持するstepが大幅に増えました。G3の23 stepから、G4では135 stepです。
つまり村人たちは、「食料だけ集めていても駄目だ」とは理解していました。
ログを読むと、複数の村人が「Agent 0が担当しそうだから、自分は食料を集めよう」「他の村人が魔物へ向かっているから、自分は食料へ行こう」といった判断をしていました。
ところが、その担当候補も別の誰かへ任せて食料へ戻る。
全員が課題の重要性を理解しているのに、全員が他人に任せた。
人間社会でいう「責任の分散」に少し似ています。もちろん、LLMが人間と同じ心理状態だったと主張したいわけではありません。
ただ、ログ上では「複数人が担当する意思を表明しているのに、実際の担当者が0人になる」という現象が起きました。これは、一人のLLMだけを動かしていたら出てこなかった失敗だと思います。
失敗するたびに、世界そのものも直していった
ここからは、村人だけが学んでいたわけではありません。私の方もログを見ながらシステムを直していきました。
採取・帰還・昼夜・死亡を実装。
感情日記、失敗報告、次世代戦略を追加。
ダンジョン、武器、戦闘、素材納品へ拡張。
地図、行動Schema、武器庫在庫、再開機能を改善。
開発史で初めて全工程を完遂。
改善済みシステムを記憶ゼロのG1からやり直した。
ダンジョンまで遠すぎる。LLMに見せる地図が分かりにくい。武器庫にいるのに武器を取らず帰る。目的と実際の行動が噛み合わない。コンテキストが長くなりすぎる。
こうした問題が見つかるたびにCodexとログを読み、原因を切り分け、インターフェースや記憶方式を修正しました。
そのため、G1からG18までを「18世代かけてLLMだけが学習した」と単純には言えません。LLMの世代継承と同時に、作っている人間側も世界を改善し続けていたからです。
18世代目で、初めてすべてがつながった
G17まで、素材の納品は一度も成功しませんでした。
そしてG18。Agent 3がDay 1にダンジョンへ入り、強い槍を取得。Day 2に魔物を倒し、Day 3に素材を村へ持ち帰りました。Day 5の最終判定も成功しました。
2週間ずっとログを見ていたので、素材が村へ納品された瞬間はかなり嬉しかったです。
ただし、ここで終わりにはしませんでした。G18までの間にシステム自体を何度も変更しています。本当に継承によって変化したのかを見るには、完成したシステムを固定して最初からやり直す必要があります。
完成版を、記憶ゼロの第1世代からもう一度走らせた
そこでG18までの改善を反映したシステムを固定し、過去の世代記録を一切持たない新しいGeneration 1を作りました。
G1はかなり健闘しました。強い槍を取り、魔物を倒し、素材まで回収しました。
しかし、その素材を村へ持ち帰る途中で夜になり、4人全員が死亡しました。
あと「村へ帰って納品する」だけの状態で、全滅した。
そこでG2は、この失敗報告書と先代の日記を読んでスタートします。

G2ではDay 1に武器を取得。Day 2に魔物を倒して素材を回収。Day 3に村へ素材を納品し、Day 5の最終判定まで成功しました。
先代が最後に残した未完了工程を、次の世代が完了した形になりました。
これはこの2週間で一番、「継承する村」という名前らしい結果でした。
でも「日記のおかげで成功した」とは、まだ言えない
この結果だけを見ると、「世代間継承に成功した」と言いたくなります。
でも、まだそこまでは言えません。
実験したのは1つのseedだけです。さらにG2はPythonの客観的失敗報告と、村人の感情日記の両方を読んでいます。
したがって、「客観的な未完了工程を教えるだけでも同じ結果になったのでは?」という可能性が残っています。
現在言えるのは、過去世代の失敗を継承した後、その未完了工程と整合する行動変化が実際に観測されたところまでです。
「感情を含む日記そのものに意味があったのか」は、これから比較する必要があります。研究としては、むしろここからが面白いところです。
コンペ提出で一区切り。でも、知りたいことは増えた
最初はコンペに出すための2週間プロジェクトでした。
食料を取って帰るだけだった小さな村が、日記を書き、失敗を記録し、世代を交代し、ダンジョンを探索し、魔物と戦い、自分だけの地図まで持つ世界になりました。
最終的には、行動、会話、理由、感情、死因、地図、世代記録をほぼすべて保存し、後から2Dリプレイとして再生できるところまで作ることができました。
ただ、作っているうちに新しい疑問も増えました。
- 感情日記は本当に行動を変えるのか
- 間違った教訓を残したら、誤った文化も継承されるのか
- 地図を世代へ渡したら、探索はどう変わるのか
- 性格の異なる村を何世代も続けたら、村ごとに違う文化が生まれるのか
コンペ用の開発はここで一区切りですが、「継承する村」自体はもう少し続けてみたいと思っています。
この協調失敗については、実際のログとG3→G4の変化を追った記事に分けて詳しくまとめました。
TATTO LAB / INHERITANCE VILLAGE
現在のシステム、結果、提出資料、GitHubはProjectページにまとめています。