はじめに
あなたはこんな光景を目にしたことがあるでしょう。ある企業が新しい方針を発表する。有名人が物議を醸す発言をする。誰も予想しなかったニュースが飛び込んでくる。ソーシャルメディアは爆発的に広がり、その影響は誰も予測できなかった形で波及していきます。
もし、現実世界で何かが起こる前に、そのシナリオがどのように展開するかを見ることができたらどうでしょうか?
MiroFishは、ソーシャルメディアに関する「もしも」の問いに答えるマルチエージェントAIシミュレーションプラットフォームです。 これは、それぞれ異なる個性、記憶、行動パターンを持つ何百ものAIエージェントが自由に交流するデジタルパラレルワールドを作り出します。ニュース記事、政策草案、研究論文などの元となる資料をアップロードすると、MiroFishは時間の経過とともに異なるオーディエンスがどのように反応するかをシミュレートします。
💡 MiroFishチームは、すべてのシミュレーションAPIをApidogを使って構築・テストしました。 グラフ構築エンドポイントの設計から、インタビューAPI応答の検証に至るまで、Apidogは開発全体を通してバックエンド/フロントエンド契約の唯一の信頼できる情報源として機能しました。
この説明では、MiroFishの機能、マルチエージェントシミュレーションの仕組み、およびその使用時期について解説します。
MiroFishが解決する問題とは?
予測のギャップ
ソーシャルメディアは急速に変化し、予測不可能な方法で反応します。従来の分析ツールは過去データの解析に留まります。
- 感情分析は、人々が今何を考えているかを示します
- トレンドモニタリングは、今日何が人気かを示します
- エンゲージメント指標は、すでに起きたことを測定します
これらは、「もしアナウンスを公開したらどうなるか」「新しい政策を発表したら何が起きるか」といった未来の仮説的状況には対応できません。
代替案:デジタルパラレルワールド
MiroFishは、実際のSNSを直接分析するのではなく、仮想のシミュレート環境を作成します。
- ソースドキュメントからナレッジグラフを構築
- エンティティ(人物・組織・メディア)を抽出し、AIエージェントへ変換
- パーソナリティ割り当て(活動レベル・影響力・立場など)
- シミュレーション実行:仮想時間で投稿・コメント・反応を生成
- 結果分析:物語の形成・影響力の分布・対抗運動の出現など
ソーシャルメディアの「フライトシミュレーター」として機能します。
MiroFishの仕組み:5段階のワークフロー
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ ステップ1 │ ──► │ ステップ2 │ ──► │ ステップ3 │ ──► │ ステップ4 │ ──► │ ステップ5 │
│ オントロジー │ │ GraphRAG │ │ 環境 │ │ シミュレーション│ │ レポート │
│ 生成 │ │ 構築 │ │ 設定 │ │ 実行 │ │ 生成 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
ステップ1:オントロジー生成
- 入力ドキュメントと要件をLLMで解析し、10種類のエンティティタイプと関係タイプ、属性を持ったカスタムオントロジーを自動生成
- 2層構造:8つの特定タイプ+2つの汎用型(Person/Organization)
ステップ2:GraphRAG構築
- ドキュメントを500文字単位(50文字重複)でチャンク化し、Zep Cloudにバッチ送信
- 一意ID付きスタンドアロングラフを作成し、カスタムオントロジー設定、エンティティ・関係抽出、ノード&エッジの最終グラフを取得
ステップ3:環境設定
- ナレッジグラフ分析からエージェントパラメータ(活動レベル、タイムゾーン、応答遅延、影響力など)を生成
- イベント設定(初期投稿・ホットトピック)、プラットフォーム設定(Twitter/Reddit)も自動作成
ステップ4:シミュレーション実行
- エージェントはスケジュールに従い覚醒、投稿・コメント・リアクションを開始
- Twitter/Redditで並行シミュレーション、全アクションをJSONL形式でリアルタイム記録
- 例:72時間のシミュレーションで数千アクション
ステップ5:レポート生成
- InsightForge(詳細検索)、PanoramaSearch(全体像表示)、InterviewAgents(ライブエージェントへのインタビュー)を活用
- 物語の進化、重要な瞬間、影響力のある声、対抗運動を抽出
MiroFishにおけるAIエージェントとは?
MiroFishの各エージェントは独立したAIエンティティです。主な属性は以下の通りです。
| 属性 | 説明 | 例 |
|---|---|---|
| アイデンティティ | 名前・ユーザー名・自己紹介 | 「@ZhangWei_学生」 |
| ペルソナ | 個性と背景 | 「AI倫理を研究する大学院生」 |
| 活動レベル | 投稿頻度(0.0~1.0) | 0.8 = 非常に活発 |
| 活動時間帯 | オンラインになる時間 | [8, 9, 10, 11, 18, ...] |
| 応答遅延 | 反応速度(分) | 5~30分 |
| 影響力 | 投稿が他者に見られる確率 | 0.8(低)~3.0(高) |
| スタンス | トピックへの立場 | 支持、反対、中立、傍観者 |
| 記憶 | 過去の行動・交流 | Zep Cloudグラフに保存 |
エージェントは個々のパラメータとシミュレーションの状態に応じて、投稿・コメント・リアクションを自律的に選択します。
何がシミュレートできるか?
ニュースと政策発表
- 政策草案やニュース記事をアップロードし、さまざまな利害関係者の反応を可視化
- 増幅される声、現れる批判、24~72時間での物語の進化を分析
学術研究
- 研究論文をアップロードし、学術・一般それぞれの受容や誤解、専門家と一般人の反応の違いをシミュレート
危機シナリオ
- インシデントレポートや背景資料をもとに、即時対応と遅延対応の比較、対抗物語の出現、インフルエンサーの特定
文学的・歴史的分析
- 小説や歴史文書をアップロードし、「もしも」の展開や代替的な結果、プロットの推進要因を探る
MiroFishの独自性とは?
群知能によるシミュレーション
- 単一エージェントではなく、異なる個性を持つ多数のエージェントが相互作用し、創発的な物語や動きを生み出します
デュアルプラットフォーム対応
- Twitter:急速拡散+インフルエンサー影響
- Reddit:スレッド形式+コミュニティ主導
- 両者の比較でプラットフォーム特性が明確に
時間的ナレッジグラフ
-
valid_at/invalid_at/expired_atなど時間軸付き関係 - 関係性の進化や変化点を詳細に追跡可能
ライブエージェントインタビュー
- シミュレーション中・後に、アクティブエージェントへリアルタイム質問
- 定量指標だけでなく質的インサイトも取得可能
技術アーキテクチャの概要
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ フロントエンド │ │ バックエンド │ │ 外部 │
│ (Vue.js) │ ◄─► │ (FastAPI) │ ◄─► │ サービス │
│ │ │ │ │ │
│ - グラフビルダー│ │ - REST API │ │ - Zep Cloud │
│ - シミュレーション│ │ - サブプロセス │ │ - LLM API │
│ モニター │ │ 管理 │ │ - OASIS │
│ - レポートビューアー│ │ - JSONLストリーム│ │ フレームワーク│
└─────────────────┘ └─────────────────┘ └─────────────────┘
バックエンドスタック
- Python FastAPI(RESTエンドポイント)
- OASIS Framework(エージェントシミュレーション)
- Zep Cloud(ナレッジグラフ保存・検索)
- SQLite(シミュレーション状態DB)
フロントエンドスタック
- Vue.js 3(リアクティブUI)
- WebSocket(リアルタイム更新)
- D3.js(グラフ可視化)
ApidogによるAPI設計
MiroFishのバックエンドは、40以上のエンドポイントを5サービスに分けて公開しています。
| サービス | エンドポイント数 | 目的 |
|---|---|---|
| グラフ構築 | 8 | オントロジー生成・バッチアップロード・ステータス監視 |
| エンティティリーダー | 4 | エンティティフィルタ・タイプ選択・エクスポート |
| 設定ジェネレーター | 6 | 時間/イベント/エージェント/プラットフォーム設定生成 |
| シミュレーションランナー | 12 | 開始・停止・監視・インタビュー・状態管理 |
| レポートジェネレーター | 5 | 検索・分析・要約生成 |
Apidogは、エンドポイント設計・モックレスポンス/ドキュメント生成を一元管理し、スキーマ不一致の早期発見・開発効率向上を実現しました。
MiroFishはいつ使うべきか?
良い使用例
- シナリオ計画:「来週Xを発表したらどうなるか?」
- 利害関係者分析:「異なるグループはYにどう反応するか?」
- 物語追跡:「Zに対するどのような反論が現れるか?」
- 研究検証:「オーディエンス行動の仮説検証」
- 教育的探求:「歴史上人物が現代イベントにどう反応するか?」
適さない使用例
- 正確な予測:保証された未来予測ではなくシナリオ探索用
- リアルタイム監視:ライブSNS分析には非対応
- 小規模分析:数十人規模ではオーバースペック
- 非社会現象:経済/物理システム等には不向き
MiroFishを始めるには
要件
- Python 3.10以上
- Node.js 18以上
- Zep Cloud APIキー
- LLM APIアクセス(OpenAI互換)
クイックスタート
# リポジトリをクローン
git clone https://github.com/666ghj/MiroFish.git
cd MiroFish
# 依存関係をインストール
pip install -r requirements.txt
npm install
# 環境変数を設定
cp .env.example .env
# .envをAPIキーで編集
# バックエンド起動
python backend/app/main.py
# フロントエンド起動
npm run dev
最初のシミュレーション
- ドキュメントをアップロード:PDF/TXT/MD形式のソース資料
- シミュレーション要件定義:問いを設定
- オントロジー生成:エンティティタイプを自動生成
- ナレッジグラフ構築:エンティティと関係を抽出
- 設定・実行:期間などを指定しシミュレーション開始
- 監視とインタビュー:リアルタイムでアクション監視&エージェント質問
- レポート生成:要約・洞察を取得
一般的な初回シミュレーションは30~60分で完了します。
よくある質問
シミュレーションの精度は?
MiroFishは、入力データと行動モデルからもっともらしいシナリオを生成します。厳密な予測ではなく、「ダイナミクスの仮説検証」に最適です。
何人のエージェントをシミュレートできる?
50~200人規模は快適に動作。500人以上も可能ですが、計算リソースと時間が増加します。
エージェントの行動はカスタマイズ可能?
はい。活動パターン・影響力・スタンス分布などを編集できます。上級ユーザーは各エージェント設定を直接編集可能です。
中国以外のシナリオもサポート?
デフォルトは中国SNSに最適化されていますが、時間設定などを変更することで他地域にも対応可能です。
データのプライバシーは?
ドキュメントはローカル処理され、エンティティ抽出のみZep Cloudへ送信。機密資料はローカルDBへの切り替えも検討してください。
結論
MiroFishは、現実世界で起こる前にソーシャルメディアのシナリオを仮想世界で検証できる強力なプラットフォームです。多数のAIエージェントによる創発的な物語や対抗運動、影響力の分布を明らかにし、従来の分析手法では見えない洞察を提供します。
政策発表、オーディエンス行動調査、文学的なifシナリオの探求など、複雑な社会ダイナミクスの理解にMiroFishを活用してください。
Top comments (0)