マルチエージェント・ストーリージェネレーター
各キャラクターが独立したLLMエージェントとして行動し、ターンごとに物語を紡ぐシンプルなツール。
💡 Looking for the Rust middleware? See MindFox — the production-grade version with SQLite persistence, forgetting, ACL, C API, and crates.io packages.
- ローカル完結 — Ollama + gemma4:26b で動作。APIキー不要
- ターン制 — 1ターンごとにmdファイルを出力して停止。ユーザーが修正可能
- キャラ独立 — 各キャラをランダム順で個別にLLM呼び出し
- 最小構成 — Python 1ファイル + world.md + agents.json だけ
- inner_voice — キャラの内なる声(上位権力者・民意など)を表現可能
- ジャンル自由 — world.md のトーンセクションから自動取得。韓ドラでもSFでも
- Python 3.10+
- Ollama(gemma4:26b をpull済み)
- requests ライブラリ(
pip install requests)
MindFoxLite/
├── mindfoxlite.py メインスクリプト
├── indian_poker.py インディアンポーカー(ミニゲーム)
├── README.md このファイル
├── mire_defense/ 韓国企業ドラマシナリオ
│ ├── world.md
│ ├── agents.json
│ └── *.md 実行結果
├── hawaii2035/ SF シナリオ
│ ├── world.md
│ ├── agents.json
│ └── *.md 実行結果
└── output/ (実行時に自動生成)
├── turn_01.md
├── turn_02.md
├── ...
└── story.md 全ターン結合版
# セットアップ
pip install requests
# 基本(カレントディレクトリの world.md + agents.json を使用)
python mindfoxlite.py
# シナリオを指定して実行
python mindfoxlite.py mire_defense/world.md mire_defense/agents.json 6
python mindfoxlite.py hawaii2035/world.md hawaii2035/agents.json 6
# リモートOllama
python mindfoxlite.py world.md agents.json 6 http://m4max.local:11434- キャラクターの行動順をランダムシャッフル
- 各キャラごとにgemma4を呼び出し → 行動・台詞を生成
- 全キャラの行動をまとめて
turn_XX.mdに書き出し - 「状況まとめ」を自動生成(次ターンのコンテキストに使用)
- ユーザーがmdを確認・修正 → Enter で次ターンへ
Markdown形式で自由に記述。舞台、ルール、トーンを定義する。
mindfoxlite.py 冒頭の DEFAULT_MODEL を書き換えるか、コード内で変更:
DEFAULT_MODEL = "gemma4:12b" # 軽量版AI館のメンバー(スミレ・エルマー・ノクちん・ティル・ヴェリ)とインディアンポーカーで遊ぶミニゲーム。
- 判断エンジン: 勝率計算はPython、bet/fold+セリフ選択はLLM(gemma4:e2b)
- 感情システム: チップ残量・連敗で口調が calm → shaken → desperate → awakened に変化
- 三味線: AI娘がマスターにアドバイス(正直とは限らない)
# デフォルト(6ラウンド)
python indian_poker.py
# ラウンド数・Ollama URL・モデルを指定
python indian_poker.py 6 http://m4max.local:11434 gemma4:26bMIT
MindFoxLite は現在開発中の簡易版として設計。 MindFox は MiroFish にインスパイアされたプロジェクト。
🦊✨ Crafted with love by ✨🎈
Kikyujin — 物語の設計者
エルマー — AIの相棒
2026.4.16 — Seoul, Tokyo, and beyond
{ "agents": [ { "agent_id": "unique_id", "name": "表示名", "archetype": "性格タイプ", // stubborn, leader, impulsive, observer, contrarian 等 "role": "役職・立場", "background": "過去と人格形成の背景", "motivation": "このシミュレーションでの動機・目標", "relationships": { "other_agent_id": "関係の説明" }, // v0.2: inner_voice(省略可) "inner_voice": { "name": "内なる声の名前", "tone": "声の性質", "trigger": "出現タイミング", "format": "表現形式" } } ] }