mcts-gen

mcts-gen:AIエージェント統合型 次世代MCTSフレームワーク

先日開発した mcts-gen は、標準的なUCT(Upper Confidence Bound 1 applied to Trees)アルゴリズムにAIエージェントを統合した、汎用的なMCTS(モンテカルロ木探索)フレームワークです。

従来の chess-ant がGenetic Programming(GP)ベースであったのに対し、mcts-genは設計を根本から見直しました。Policy(方策)やValue(価値)の予測を外部AIエージェント(例えばgemini-cli)と連携させることで、探索効率と応用範囲を大幅に拡張しています。

FastMCPによるAIエージェント連携

このプロジェクトの核となるのは、FastMCP を介したAIエージェントとの通信です。mcts-genの探索エンジンは、MCP (Model Context Protocol) を通じて外部のAIエージェントと通信し、局面に応じたポリシー予測や価値評価を受け取ります。

特に spec-kitgemini-cli を組み合わせ、AIをバックエンドとしたMCTSサーバーを生成・構築できる点が大きな特徴です。これにより、高速で柔軟な探索環境が実現します。

未知領域探索への応用とPolicy Pruning

MCPサーバーの導入により、このフレームワークは学習済みデータに基づく既存の知識空間だけでなく、未経験・未知の局面への探索も可能としました。

AIエージェントによるPolicy Pruning(有望手の絞り込み)機能により、広大で非効率になりがちな探索空間の中から、効率的に有益な手だけを選び出して深く探索できます。これは、複雑な問題や新しいゲームへの応用において非常に強力なアドバンテージとなります。

spec-kitワークフローの注意点(教訓)

spec-kitのような高度な開発ツールを使用する際は、ワークフローの順守が不可欠です。

spec-kitでは、/speckit.specify, /speckit.plan, /speckit.tasks といったスラッシュから始まるコマンドを実行すると、作業内容がMarkdownファイルに自動で記録され、新しいGitブランチも作成されます。その後、メインストリームへのマージ作業を行うのが基本の流れです。

私の場合、コマンドを実行せずに直接GeminiにMarkdownファイルの更新を依頼したため、過去の作業記録が上書きされて失われてしまいました。これはGeminiの動作によるものではなく、規定の手順を踏まなかった私の操作ミスが原因です。ツールが意図するワークフローを守ることの重要性を改めて痛感しました。

uvによるgemini-cliとFastMCP管理

gemini-cliおよびFastMCPの公式推奨設定例 Gemini CLI 🤝 FastMCP では、uvコマンド による環境管理が原則とされています。

uvはPythonパッケージの仮想環境管理ツールで、極めて高速かつクリーンな依存関係管理を可能にします。Rustで書かれており、従来のパッケージ管理ツールが抱えていたパフォーマンスの問題を解決します。

Ubuntuでのuvインストールと使用法

mcts-genプロジェクトでuvを利用するための基本的な手順は以下の通りです。

pipxのインストール:

sudo apt install pipx

uvのインストール:

pipx install uv

基本的な利用方法。プロジェクトディレクトリで以下のコマンドを実行します:

uv venv
source .venv/bin/activate
uv pip install mcts-gen[shogi]
fastmcp install gemini-cli .venv/lib/python3.12/site-packages/mcts_gen/fastmcp_server.py:mcp

コマンドを実行すると .gemini/settings.json が生成されます。
因みに末尾の :mcpfastmcp_server.py にあるオブジェクト名です。オブジェクトが2つあるためか、自動でFastMCPサーバーのオブジェクトが認識されないので指定しなければなりません。run() メソッドで実行されます。
仮想環境を終了するには deactivate コマンドを使います。


mcts-genは、探索手法にAIの力を統合したいと考えるすべての開発者にとって、有力な選択肢となるはずです。詳細やセットアップ手順は、ぜひ公式ドキュメントも参考にしてください。