
🦊embeddingモデル不要:NPC記憶エンジン「MindFox」OSS公開🎈
こんにちは!気球人です🎈
ガタガタやってた、ゲームのNPCに「記憶」と「忘却」を与える Rust 製ミドルウェア、MindFox をOSSとして公開しました!
🦊 https://github.com/kikyujin/MindFox
📦 https://crates.io/crates/mxbs
ゲームのNPCに記憶を持たせる🧠
普通に考えるとクラウドAPI必須だったり、400MBのembeddingモデルが必要で、オフラインでは動かない。
ゲームってオフラインで動いてなんぼじゃない?🎈
そこで『embeddingモデルを捨てて、ゲームデザイナーが定義した16バイトの因子ベクトルに置き換えた』ら、これが意外と良かったのです!😁
パッケージ内容📦️
MxBS — 記憶エンジン🧠
記憶を管理するコアエンジン。
記憶1セルあたりたった16バイトのベクトル(従来のembeddingは4KB以上)
依存はSQLiteのみ。ONNX不要、ベクトルDB不要、外部モデル不要
忘却機能内蔵 — 安い記憶は自然に消える。高い記憶は残る。もちろんプリセット記憶も実現。
UNIX風のアクセス制御 — NPCの内心(0o700)は他のNPCから見えない。ギルドの話はギルドメンバーしか知らない。
Dream — 埋もれた重要記憶が浮上する仕組み。NPCが忘れかけた昔の大事なことを思い出す🤔
MxMindFox — 気分・判断レイヤー
MxBSの上に乗るレイヤー。
直近の記憶からNPCの気分(Mood)を計算
気分で攻撃閾値や外交態度が変わる
確率的判定 — 同じ状況でも毎回違う判断をする「揺らぎ」
デモ3本同梱
戦国SIM - 5カ国の戦国大名が覇を競う
使用LLM: gemma4:e2b
おやつを食べたのはだれ? - 7人のAIキャラで社会推理ゲーム
使用LLM: gemma4:26b
ページワン - LLMゼロでカードゲーム。50ゲーム1秒未満
使用LLM: なし
ページワンデモが結構面白いのです😁
LLMを一切使わずに MxBS の忘却+ reinforce だけでキャラの個性が出ます。
記憶力の高いキャラは覚え続け、低いキャラは忘れ続けるのですが、「揺らぎ」で思わぬ結果も!
embeddingモデルいらないじゃん💥
これが最大の発見、かつアピールポイント。
ゲームNPCの記憶に汎用言語モデルの1024次元エンベッディングは冗長。
ゲームデザイナーが「ゲームで意味のあるパラメータ」を16個定義して、そこにスコアを入れるだけで十分なのです。
しかもこの方式だとなぜその記憶が検索されたか説明できる。
「外交スコアが高いから」「攻撃性が近いから」って因子名で説明できるのは、ブラックボックスのembeddingにはない強み。
興味あるゲーム開発者の方、ぜひ触ってみてください 🦊
※ 弊社にて有償サポートします😁
▶ https://multitapps.com/