AIへ情報を渡すすべての経路に同じルールを使う
安全な公開Viewは、tree取得、検索、状態変化の待機、diagnostics、Recording/Replay、UI操作の許可判定に共通して使われます。非公開にしたobjectは、AIからは存在しないobjectと同じように見えます。UI操作はゲームが実行する直前にも再確認するため、sceneやpolicyが変わった後に古い権限が残りません。
何を見せ、何を隠すか決める
UIまたはWorldのsubtreeをprivateにすると、そのobjectと子objectをAIエージェントプレイヤーへ公開しません。UIは親を含めて表示中であること、World objectはplayer visibilityとactiveな親も必要です。
omitで項目を消す、redactで伏せる、型を保ったreplaceや数値quantizeで詳細度を下げる、といった変換ができます。許可するUI actionもallowlistで限定できます。
Engine設定
Godot UI controlではgua_agent_exposure、gua_agent_field_rules、gua_agent_allowed_actionsを使い、World objectでは対応するgua_world_agent_* metadataを使います。UnityではuGUIまたはWorld objectへGuaAgentPolicyComponentを追加し、UI Toolkit/custom adapterはpolicyをregistryへ登録します。
見せてよい情報と、操作してよいゲーム入力は別に許可する
AIエージェントプレイヤーが見られるUI・World情報と、押してよいUI buttonなどを決めます。
AIがjumpやmoveを実行できるか、キーボードやマウスを直接操作できるかを別に決めます。
たとえば、AIへ敵の位置を見せても、自動的にキャラクターを動かせるようにはなりません。逆に、開発者用Debug Inspectorでkeyboard入力を有効にしても、WebMCPなどのAIエージェントプレイヤーには引き継がれません。ゲーム側でPlayer向けSemantic Game Actionを明示的に許可し、Raw Inputはdevice入力の検証が必要な場合だけ個別に許可します。