LLM等で人間っぽい何かを作る話 その7
Claude Code などから、MCP で VRM Agent Host (仮) が利用できるのかの検証。
サムネは Claude Code が選んだポーズと色(背景)です。
私はテストしてといっただけなのでポーズも色も一切指示してない。
これは一瞬にして彼が私を洞察した結果なのか、それとも人類はこれ好きでしょみたいな?MCPそっちのけですごくない?
本編
本プロジェクトは、VRM制御部、それを制御するテスト用AIチャットクライアントで構成されます。
テスト用AIチャットクライアントのほうが規模的には大きいですが、Main Objective は VRM の制御です。
クライアント部は、VOICEVOXなどの音声合成エンジンの制御と中継、日本語の簡易連文解析、LLM の Tool calling などもサポートしています。
この MCP のテストは、テスト用AIチャットクライアント上で MCP がどう関わるかというものではなく、 VRM制御部を Claude Code などから MCP で制御できるのかを試したものとなります。
つまり、以下のようになります。
Claude Code <--> MCP Proxy (試作) <--> VRM Agent Host
Wave playback も組み込むか別途MCP化したら、Claude Code が身振り手振りしながら話し出しますね。
とはいえ、組み込んだほうがいいかな・・・・VRM Agent Host は空間音響に対応しているので、VRoidのいるその場所から音が聞こえるしリップシンクも使える。
なお、通常の本件に関する動画やデモは以下のように接続しています。
(a) VRM Agent Host テストアプリケーション <--> VRM Agent Host
(b) VRM Agent Host テストアプリケーション <--> LLM <--> Tool Calling <--> Services
(c) VRM Agent Host テストアプリケーション <--> VOICEVOX等の音声合成エンジン
クライアントから MCP を使うことも可能ですが、このクライアントの Tool Calling 部は、純粋に Tool Calling であるため、比較的にLLMは自由に正確なふるまいを生成できるため、現時点においてあまり MCP化するメリットはありません。
将来的にMCPの機能が拡充され利便性が増した際には、MCP専用のパイプラインを載せるべきだとも思いますが、そもそもテストクライアントなので、MCPをアドホックに使うことはあっても探究したりフレームワークのようにすることはなかろうかと思います。
そもそも、特定のアプリーションで AI アバターを作ろうとは思っていないのと、けっしてAI用というわけでもないので、やっぱり MCP proxy というのが正解なのかもしれない。
他の機能に関しても制御系毎にサービスやデーモンでやるのが理想だと思っています。
AI から サービスやデーモンを制御するようなイメージですね。
とはいえ、テストアプリケーションにまとめてしまうと管理が楽なのでしばらくはこのテストアプリケーションに実装していきます。
今後は MCP proxy 側も面倒見る必要がでてきましたね・・・。
やっぱ今はやるべきじゃなかったかもしれない。
