ツールスキーマの設計は、実行前に有効なツール呼び出しになり得るパラメーターとアクション形式を制限することで、ホームAIエージェントの動作範囲を制約します。
モデルが誤った推論をする可能性はありますが、型付きフィールド、必須ターゲット、列挙値、バリデーションによって、その誤りが表現できる内容を抑えられます。その後、権限レイヤーと承認レイヤーがアクションの実行可否を判断します。
ツールスキーマは許可されたリクエストの形を定義する
エージェントツールは、単なる名前と説明ではありません。スキーマによって、指定できるフィールド、その型、構造上許容される組み合わせが定義されます。
現在のMCP仕様では、JSON Schemaで定義されたinputSchemaが必要です。これにより、自然言語だけに頼るのではなく、ランタイムが機械可読な契約を利用できます。Model Context Protocolでは、入力スキーマを用いてツールを定義するため、ツール呼び出しの実行前に受け入れ可能な引数の構造が明示されます。詳しくはMCPツール入力スキーマをご覧ください。
ホームサーバーでは、これにより、限定的な再起動ツールと曖昧な管理用シェルを区別できます。
任意のコマンドを表現できない呼び出しは、それだけでアクションの対象範囲が狭くなります。
必須フィールドが不完全なアクションを防ぐ
必須プロパティを設定すると、モデルは操作に必要な情報を必ず提示するよう求められます。ファイル移動ツールでは移動元と移動先の両方を必須にでき、コンテナツールではターゲットとアクションを必須にできます。
MCPはJSON Schemaのバリデーションセマンティクスに従っており、必須プロパティや型制約をサポートします。JSON Schemaのバリデーションでは、必須プロパティなどの構造上のアサーションを定義でき、不完全なリクエストを拒否できます。詳しくはJSON Schemaバリデーション語彙をご覧ください。
これにより、アプリケーションコードが不足しているターゲットを推測したり、危険なデフォルト値を引き継いだりするのを防げます。不足は暗黙のアクションではなく、バリデーションエラーになります。
列挙値と範囲によってモデルが表現できないアクションを排除する
スキーマでは、フィールドを列挙された値の集合や上限・下限のある範囲に制約できます。アクションが再起動、停止、起動だけを許可している場合、そのフィールドから削除を実行することはできません。
MCPでは、ツール引数がツールの入力スキーマに適合している必要があります。単に通常実行すべき内容を説明するだけの場合よりも、構造上の制約のほうが強力です。OpenAPIスキーマでは、列挙値、数値制限、型付きプロパティを表現できます。詳しくはOpenAPIスキーマ定義をご覧ください。
家庭内でも同じ仕組みによって、サーモスタットの設定値、保存日数、サービス名、バックアップ先などを制限し、アクションの語彙を明確に保てます。
説明は選択を導くが、構造を強制するのはバリデーション
自然言語による説明は、モデルがツールを選び、フィールドを解釈する際に役立ちます。しかし、契約外の呼び出しを拒否するバリデーターと同じ境界を強制することはできません。
MCPでは、ツールの説明をモデルの理解を助ける人間可読のヒントとして扱い、inputSchemaによって正式なパラメーター契約を提供します。Anthropicのツール利用も、宣言されたツールパラメーターを使ってモデルが生成する呼び出しを導きますが、モデルへのガイダンスとランタイムのバリデーションは異なります。詳しくはAnthropicのツール利用スキーマをご覧ください。
この点は、ZimaSpaceの記事利用可能なツールが多すぎるとツール選択の信頼性が低下する問題とは異なります。選択の曖昧さはツールが選ばれる前に発生しますが、スキーマ制約は候補となる呼び出しそのものに適用されます。
スキーマのバリデーションは権限を付与しない
構造上有効なリクエストでも、認証済みとは限りません。スキーマでrestart(container=postgres)が許可されていても、呼び出し元にはメディアコンテナの再起動しか許可されていない可能性があります。
MCPでは、ツールの利用を外部システムとの対話として扱い、呼び出しに対するセキュリティ対策と人による承認管理を推奨しています。スキーマの正しさは1つのレイヤーにすぎず、完全な権限システムではありません。Google Geminiのファンクションコーリングも構造化された関数宣言を使用しますが、認証はスキーマ自体の外部で管理されます。この分離についてはGeminiのファンクションコーリングスキーマをご覧ください。
この境界は、ZimaSpaceのホームAIエージェントにおけるツール範囲の制限にもつながります。スキーマは表現可能なパラメーターを制約し、スコープと機能は、実際にどの有効な操作が認証されるかを決定します。
小さなスキーマはテストと監査が容易
多数のオプションフィールドを持つ幅広いツールでは、有効な組み合わせが数多く生まれます。
ツールを限定すれば、評価でカバーすべき動作の数を減らせます。
JSON Schemaは、オブジェクトのプロパティ、必須メンバー、追加プロパティの制御をサポートしており、想定外のフィールドを暗黙的に受け入れるのではなく拒否できます。Pydanticは、型付きモデルから機械可読なスキーマを生成できます。小さく明示的なスキーマがバリデーションとテストに適している理由については、PydanticのJSON Schema生成をご覧ください。
これにより、モデルをファイル、コンテナ、デバイス、バックアップシステムに接続する前に、許可されたアクション、無効な組み合わせ、境界値、拒否動作をテストで列挙できます。
テック&AIハブ
もっと読む

ホームカメラはクラウドの時刻サービスなしでイベントを同期できますか?
クラウドを使わないカメラ時刻の仕組みを優先した説明、共有リソースに伴うトレードオフ、クエリのファンアウトに関する3つのFAQ、そして実践的な検証手順。

ローカルAIサービスは推論前に破損したモデルレイヤーを検出できますか?
破損したモデル層の検出について、メカニズムを優先して説明し、共有リソースのトレードオフ、クエリのファンアウトに関する3つのFAQ、実践的な検証プロトコルを取り上げます。

すべての埋め込みを再生成せずにRAGシステムを復元できますか?
再埋め込みなしでRAGを復元する仕組み優先の説明、共有リソースのトレードオフ、クエリファンアウトに関する3つのFAQ、そして実践的な検証プロトコル。

