666ghj/MiroFish
出来事を種にして仮想の社会を作り、そこで先に起こしてみる
- 自社サービス組込み注意 — AGPL-3.0 です。組み込んだ側のソース公開が必要になる場合があります。
どういうものか
MiroFish は、起きたことを入力すると、そこから仮想の社会を組み立てて動かすシミュレーション基盤です。種になるのはニュース、政策の草案、金融の兆候といった現実の材料で、それをもとに登場人物と関係の網が自動で作られます。その中では、性格・長期の記憶・行動の理屈を持つエージェントが多数、互いにやり取りをしながら時間を進めます。人は上から変数を差し込んで、筋を変えながら何度でも試せます。
手順は5段です。まず土台を作る(種から情報を取り出し、記憶を流し込み、グラフをたどって引ける形の検索用データを作る)。次に環境を用意する(登場する主体と関係を取り出し、人格を生成し、エージェントの設定として入れる)。そして動かす(2つのプラットフォームを並行して回し、時間に沿って記憶を更新していく)。動かし終えたら報告をまとめる担当のエージェントが結果を読み、最後に中の住人と直接会話できるところまでが用意されています。出てくるのは予測の報告書と、そのあとも触れる仮想世界の2つです。
エンジンの中核は自前ではなく、CAMEL-AI の OASIS(ソーシャルな相互作用のシミュレーション基盤)を使っていると README に明記されています。動かすには、OpenAI 形式の API で呼べる大規模言語モデルの鍵と、記憶を預ける Zep Cloud の鍵が要ります。README の作例は、大学をめぐる世論の再現と、『紅楼夢』の失われた結末を前80回から推し進めるというものです。真面目な予測と遊びの両方を掲げている作りです。
どんなときに使うか
出す前に、反応の荒れ方を見ておきたいとき
README は、政策や広報を無リスクで試せる「決裁者のためのリハーサル室」を掲げています。実際の作例も世論の再現です。当たる・当たらないより、荒れる筋道が1本しか思いつかない状態を抜けるための使い方に向きます。
物語の続きを試したいとき
『紅楼夢』の失われた結末を、前80回を材料に推し進めるという作例が用意されています。人物の性格と関係を入れて動かすという仕組みは、そのまま創作の実験に転用できます。
注意点
言語モデルの消費が大きいです。 README 自身が「消費が高い。まずは40ラウンド未満の短いシミュレーションから試すこと」と書いています。人格を持つエージェントを多数、何度も往復させる作りなので、当然と言えば当然です。費用の見当を付けてから回すことになります。
出てくるのは予測ではなく、シミュレーションの結果です。 名前も説明も「予測」で通っていますが、根拠になっているのは言語モデルが演じた振る舞いです。統計的な検証の話は README に見当たりません。当たる保証がある種類のものとして読まないでください。
外部サービスへの依存が2つあります。 言語モデルの API に加えて、記憶を預ける Zep Cloud の鍵が必須です(簡単な用途なら無料枠で足りる、と README にはあります)。手元だけで完結する構成ではありません。
動かす環境の指定が狭めです。 Python は 3.11 以上 3.12 以下、Node.js は 18 以上で、Python 側のパッケージ管理には uv を使います。Docker での起動も用意されています。
ライセンスは AGPL-3.0 です。手元や社内で使う分には問題ありませんが、組み込んだサービスを外部に提供する場合、組み込んだ側のソース公開が必要になることがあります。 中国の Shanda(盛大)グループの支援を受けている、と README に記載があります。