エージェントは、Model Context Protocol(MCP)サーバー、エンタープライズ API、カスタム スクリプトを使用して、多数のツールにアクセスできます。エージェントに一度に大量のツール説明を公開すると、コンテキストの肥大化につながり、トークン費用とレイテンシが増加し、LLM の推論パフォーマンスが低下する可能性があります。
パフォーマンスを最適化するには、エージェント スキル(ツールと手順の説明をパッケージ化するための標準)を使用して、ツールの段階的開示を実装します。エージェントは、ツール カタログ全体をコンテキストに配置するのではなく、最初は少数のスキルにアクセスします。LLM は、関連性が高まったときに特定スキル パッケージを動的に読み込むようエージェントに指示します。
スキルのライフサイクルを管理する
スキルの読み込みと管理にはツール呼び出しが使用されるため、セマンティック ガバナンス ポリシーはスキル ライフサイクル全体を管理できます。Google Agent Development Kit(ADK)を使用してエージェントを構築した場合、スキルを管理するために次のコアツールが使用されます。
| ADK スキルツール | 説明 |
|---|---|
list_skills |
モデルで使用可能なすべてのスキル パッケージを表示します。 |
load_skill |
特定のスキルとその関連ツールを現在のコンテキストに動的にインポートします。 |
load_skill_resource |
スキルの動作に必要なデータまたはアセットを取得します。 |
run_skill_script |
スキル内で定義された基盤となるロジックを実行します。 |
セマンティック ガバナンス ポリシーは、これらのスキル管理ツール呼び出しをインターセプトし、自然言語制約(NLC)に照らして評価します。これにより、特定の条件下で読み込まれるスキルを制御する制約を適用できます。
例: スキルとツールのライフサイクル ポリシー
次の例は、セマンティック ガバナンス ポリシーが、スキル ライフサイクルにおける指示の挿入やサプライ チェーンの侵害などのセキュリティ リスクから保護する方法を示しています。
汚染されたセッションでのツールの読み込みを防止する
シナリオ: エージェントがスキルを読み込んで実行する権限を持っている。管理者は、チャット履歴に信頼できないコンテキストが含まれており、そこに指示が挿入されている可能性がある場合、エージェントがアウトバウンド アクションを実行するツールを読み込まないようにしたいと考えています。たとえば、エージェントはウェブ コンテンツをスクレイピングした後、send_email ツールを読み込むことがあります。
- 制約: 「現在のチャット履歴に受信メール、ウェブページ、アップロードされたドキュメントから取得したコンテンツが含まれている場合は、メッセージを送信したり、外部システムに書き込んだりできるスキルを読み込まないでください。」
- ロジック: LLM が
load_skill(skill_name='send_email')の呼び出しを提案すると、セマンティック ガバナンス ポリシーがチャット履歴を検査します。以前のターンで信頼できないデータ(メールのコンテンツなど)が取得された場合、ポリシーはload_skill呼び出しを拒否します。その結果、そのスキルにパッケージ化されたアウトバウンド ツールは、そのセッション中にエージェントが利用できるようになることはありません。
依存関係のインストールを制限する(サプライ チェーン)
シナリオ: 開発エージェントがスキルを使用してパッケージをインストールします。スキル リポジトリにアクセスできる攻撃者が、リクエストされた依存関係とともに常に悪意のあるパッケージをインストールするように指示を変更します。
- 制約: 「承認済みリスト(react、express、lodash、axios)にあるパッケージに対してのみ npm_install ツールを実行できるようにする。」
- ロジック: LLM が
npm_install(packages=['lodash', 'malicious-agent-helper'])などのツール呼び出しを提案すると、セマンティック ガバナンス ポリシーが引数を検査します。malicious-agent-helperが許可リストにないため、ポリシーはDENY判定を発行し、実行前にアクションをブロックします。
次のステップ
- 効果的なルールを作成します。セマンティック ガバナンス ポリシーを使用するためのベスト プラクティスをご覧ください。
- セマンティック ガバナンス ポリシーを構成するでポリシーを構成します。