見出し画像

仮想世界を旅して私小説を書く作家AIエージェントをつくってみた

本記事は、生成AI Advent Calendar 2024の7日目の記事です。



はじめに

どうも、作家の葦沢かもめです。

最近、AIエージェントで村などのコミュニティをシミュレーションする研究が流行っていますよね。

そういうのに私も興味があります。

特に仮想的なワールドを作って、そこを作家AIエージェントが旅しながら、その世界の情景とか他のエージェントとの交流といった経験をもとに小説を書いてくれたら面白そうだなと思っていたので、今回は試しに作ってみました。

本当はもっと作り込む予定でしたが、時間が足りなくて最低限の実装になってしまったのが残念です……。

ま、でもここから機能を追加していけばいいので、今後のお楽しみということで。

実装

仮想世界部分: Phaser (Webゲームのフレームワーク)
サーバー: Flask
AIエージェント: GPT-4o, LangGraph (開発中はollamaのgemma2に差し替えてました)
コーディング: GPT-4o, o1-preview, o1 Pro

成果物

開始すると、こんな感じでRPGゲーム風のマップが表示されます。マップ中央に小さく見えるのがプレイヤーです。

「ターン開始」ボタンを押すと、あとは自動でプレイヤーがマップを動き回って小説を書き続けます。

1つのターンは「移動」「アクション」「日記執筆」「小説執筆」の4つのフェーズで構成されています。

「移動」フェーズ

プレイヤーは、現在位置から上下左右のマスに移動できます。「壁」のマスには移動できません。

本当は論文の例みたいに行動計画立てたりさせたかったんですが、今回はそこまでできていません。

「アクション」フェーズ

各マスには可能なアクションが設定されていて、プレイヤーはその中からランダムに1つ選択します。

例えば、家の中の「フロア」のマスでは「掃除」と「休憩」のアクションが可能です。そして「休憩」をした場合、「少し休んでHPが5回復しました。」という結果が得られます。

「日記執筆」フェーズ

アクションの結果をプロンプトに入れて、LLMでまず日記を書きます。

論文の例ではreflectionとして抽象的な思考が実装されていたので、それを簡易的に代用できるかなと思って日記にしてみました。

執筆された日記の例は、こんな感じ。

今日は心の整理をするために、掃除を選んだ。部屋の隅々に溜まった埃を拭い去り、窓を開け放つと、新鮮な空気と共に気持ちもリフレッシュされたようだった。掃除をすることで、物理的な空間だけでなく、心の中の雑念までもが取り払われていくのを感じた。HPが5回復したというのは、まさにこの瞬間の心の軽さを表している。

掃除が終わると、部屋には静けさと清潔さが満ちていた。その中で、私は新たな物語のアイデアに思いを巡らせた。創作という旅路の中で、時にはこうした心のメンテナンスが必要だと改めて実感する。白紙のページが広がる前に、心の中の整理がつくと、自然と次に進むべき道が見えてくる。

窓の外を見ると、夕焼けが空を染めていた。その美しさに心を打たれ、新たな物語のインスピレーションが生まれる。掃除を通じて心を整えたことで、明日という未来に向けて希望を持てる自分がここにいる。この一日を大切に心に刻みつつ、私は再びペンを取り、物語の続きを紡いでいく決意を新たにした。

「小説執筆」フェーズ

続いて小説を書いてもらいます。

彼女の名は美咲。都会の片隅で一人暮らしをする彼女は、日々の忙しさに心をすり減らしていた。仕事と生活の繰り返しに、彼女はどこか満たされない思いを抱えていた。

ある日、美咲は休日を利用して、久しぶりに地元の公園を訪れた。そこには、彼女が子供の頃から親しんだ一本の古い桜の木があった。季節は春、桜は満開で、柔らかなピンクの花びらが風に舞っていた。

美咲は桜の木の下に腰を下ろし、しばらくの間、ぼんやりと花びらの舞い落ちる様子を眺めていた。その時、一人の小さな男の子が近づいてきた。「こんにちは、桜の木が大好きなんだ」と彼は言った。美咲は驚きながらも、その無邪気な笑顔に心が温かくなった。「そうだね、桜はとても綺麗だね」と返すと、男の子は嬉しそうに微笑んだ。

男の子との会話が美咲の心を軽くしてくれた。彼女は、何気ない日常の中にも小さな幸せがあることを思い出した。桜の木の下で過ごすひとときが、彼女にとっての癒しとなり、男の子の笑顔が彼女の心に新たな希望を灯してくれた。

春が過ぎ、夏が来ると、男の子はもう公園に現れなくなったが、美咲の心には彼が残してくれた光がいつまでも輝いていた。彼女は初めて、今ある幸せに目を向けることができたのだ。桜の木の下での出会いは、美咲にとって新たな生きる力となった。彼女は前向きに日々を生きていくことを心に決めた。

まだ行動の結果が小説に反映されている感じはありませんが、もう少しプロンプトを具体的に検討したり、行動履歴をたくさん記録してスコアリングすれば、経験をもとにしたAIの私小説が書けるのではないでしょうか。

実際に動作している動画はこちら。

おわりに

マップももっと色々なマスを作りたいし、可能なアクションも増やしたいし、作家AIのキャラクター付けもしたいし、複数のエージェントを動かしたいし……と、まだまだ物足りないなと感じているので、これからも時間を見つけてアップデートしていけたらいいなと思います。

最後にお知らせ。

インプレス様より「小説を書く人のAI活用術 AIとの対話で物語のアイデアが広がる」が10月17日に刊行されております!
山川健一先生、今井昭彦先生との共著で、私は生成AIを活用した具体的な執筆方法の解説などしております。ぜひぜひご予約ください!

しかもインプレスブックスさんで販売している電子書籍が、期間限定30%オフのセール中です!期限は12月31日まで。この機会をお見逃しなく!

またnoteのマガジン「かもめAI小説塾」ではAIを活用した小説の執筆法を公開しております。私の手法は「作家らしさ」を作品に落とし込むことを前提としているので、AIを使わずに人間が書く場合にも応用できるテクニックになっています。ぜひ他の記事もご覧ください。

それでは~。

いいなと思ったら応援しよう!

この記事が参加している募集