Behavior Trees について
Behavior Treesは、behavior3 JSONやBehaviorTree.CPP XMLを使う開発者向けに、ビヘイビアツリーの検証、形式変換、エディターリンク作成を行います。CLIまたはMCPクライアントから利用でき、リンク先のビジュアルエディターでは、ツリーをアップロードせずに開けます。
主な機能
- 01ビヘイビアツリーの構造を検証
- 02JSONとXMLの形式を変換
- 03編集可能なエディターリンクを作成
- 04ノード型の一覧とサンプル取得
- 05CLIとJavaScriptライブラリから利用
活用シーン
- 01CIでビヘイビアツリーを検査
- 02対応形式間でツリーを変換
- 03ビジュアルエディターでツリーを共有
- 04AIアシスタントでツリーを作成・検査
MCP 対応
リモートのStreamable HTTP MCPサーバーを提供し、stdioでローカル実行することもできます。ツリーの検証と変換、エディターリンクの作成、ノード型一覧、サンプルやガイドの取得に対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://www.behaviortrees.com/mcpclaude mcp add --transport http behaviortrees-behaviortrees https://www.behaviortrees.com/mcp{"mcpServers":{"behaviortrees-behaviortrees":{"type":"http","url":"https://www.behaviortrees.com/mcp"}}}Cursor で開く{"servers":{"behaviortrees-behaviortrees":{"type":"http","url":"https://www.behaviortrees.com/mcp"}}}VS Code で開く{"mcpServers":{"behaviortrees-behaviortrees":{"type":"http","url":"https://www.behaviortrees.com/mcp"}}}{"mcpServers":{"behaviortrees-behaviortrees":{"serverUrl":"https://www.behaviortrees.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
behaviortrees
コマンドラインまたは任意の MCP クライアントから、ビヘイビアツリーを検証、変換、共有できます。behaviortrees.com の無料ビジュアルエディターと同じコードを使用しているため、ここで受け付ける形式はエディターでも開けます。
- 検証:behavior3 JSON と BehaviorTree.CPP XML を検証します。子ノードの参照切れ、複数の親を持つノード、循環、子ノードが複数あるデコレーター、子ノードを持つリーフ、未知のノード名を検出します。
- 変換:behavior3 JSON と BehaviorTree.CPP XML の相互変換に対応します(ROS 2 Jazzy および Groot2 向けの v4、ROS 2 Humble 向けの v3)。
- リンク:ツリーを、エディターで開いて編集できる URL に変換します。ツリーはリンク内に含まれるため、アップロードされることはありません。
CLI
npx behaviortrees validate tree.json
npx behaviortrees convert tree.json --to btcpp-v4 -o tree.xml
npx behaviortrees convert nav2_tree.xml --to behavior3
npx behaviortrees link tree.json --open
npx behaviortrees nodes # built-in node types
npx behaviortrees examples # example trees; add an id to print one
npx behaviortrees guides # behaviortrees.com guides; add a slug to read one
ファイルを省略するか、- を渡すと、標準入力から読み込みます。--json を指定すると機械可読な出力が得られます。また、validate はツリーにエラーがある場合に終了ステータス 1 を返すため、CI で使用できます。
MCP サーバー
AI アシスタントがビヘイビアツリーを作成して検証し、エディターで開けるリンクを渡せるようにします。ツール:validate_tree、create_editor_link、convert_tree、list_node_types、get_example、read_guide。
リモートサーバーを使う場合、インストールは不要です(Streamable HTTP)。
https://www.behaviortrees.com/mcp
または、stdio 経由でローカルに実行します。
{
"mcpServers": {
"behaviortrees": { "command": "npx", "args": ["-y", "behaviortrees", "mcp"] }
}
}
Claude Code の場合:claude mcp add --transport http behaviortrees https://www.behaviortrees.com/mcp
ツリー形式
最小限の behavior3 ツリーです。位置の指定は省略でき、エディターがツリーをレイアウトします。
{
"title": "Guard",
"root": "a",
"nodes": {
"a": { "name": "Priority", "children": ["b", "c"] },
"b": { "name": "Sequence", "children": ["d", "e"] },
"c": { "name": "Patrol" },
"d": { "name": "IsEnemyVisible" },
"e": { "name": "Attack" }
},
"custom_nodes": [
{ "name": "IsEnemyVisible", "category": "condition" },
{ "name": "Attack", "category": "action" },
{ "name": "Patrol", "category": "action" }
]
}
コンポジットは実行順に children を列挙し、デコレーターは child を 1 つ持ち、それ以外はすべてリーフです。Priority は behavior3 のセレクター(フォールバック)です。組み込みでないノードはすべて custom_nodes で宣言してください。
ライブラリ
import { validateTree, convertTree, createEditorLink } from 'behaviortrees';
const { valid, findings } = await validateTree(json);
const { output } = await convertTree(json, 'btcpp-v4');
const { url } = await createEditorLink(json);
ライセンス
AGPL-3.0-only(LICENSE を参照)。一部のコードは、Renato de Pontes Pereira による MIT ライセンスの behavior3editor を基にしています(LICENSE-MIT を参照)。ソース:github.com/behaviortrees/behaviortrees。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。