AI News HubLIVE
站内改写3 分で読了

Microsoft Agent Governance Toolkitの実装:ポリシー、承認、監査ログ、リスク管理による安全なAIエージェントツール使用

このチュートリアルでは、MicrosoftのAgent Governance Toolkitを参考に、管理されたAIエージェントワークフローを構築します。エージェントがツールを直接実行するのではなく、すべてのアクションがガバナンスレイヤーを通過し、エージェントのID、信頼スコア、リスクレベル、要求されたツール、アクションタイプ、機密レベル、ポリシールールをチェックします。データベースの破壊的操作、外部メール送信、シェル実行、機密データアクセス、金融送金を制御するYAMLベースのポリシーを定義します。各ツールにはガバナンスロジックがラップされ、許可、拒否、サンドボックス、または承認ステップへのルーティングが行われます。また、改ざん防止監査ログ、ポリシーテスト、非常停止スイッチ、ガバナンス決定の要約、およびエージェント、ツール、ルール、結果の関係をグラフとして可視化します。

ソースMarkTechPost著者: Sana Hassan

このチュートリアルでは、MicrosoftのAgent Governance Toolkitを参考に、厳格に管理されたAIエージェントワークフローを構築します。Google Colabで即座に実行可能な実装を作成し、その核となる考え方は、エージェントがツールを直接呼び出すのではなく、すべての操作がまずガバナンスレイヤーを通過する必要があるという点です。このレイヤーは、エージェントのID、信頼スコア、リスクレベル、要求されたツール名、アクションタイプ、機密レベル、そして現在有効なポリシールールを逐一チェックします。

まず、Colab環境をセットアップし、必要なPythonライブラリ(pyyaml、pandas、networkx、matplotlib、richなど)をインストールし、Microsoft Agent Governance Toolkitの公式リポジトリをクローンしました。次に、YAML形式のガバナンスポリシーファイル(advanced_agent_policy.yaml)を定義しました。このポリシーにはいくつかの重要なルールが含まれています:破壊的なデータベース操作(drop_table、delete_table、truncate_tableなど)の禁止、外部メール送信に対する人間の承認要求、シェルコマンドのサンドボックス実行(危険なコマンド(rm -rf、curl http、wget http、chmod 777、sudoなど)のブロック)、低信頼エージェントによる機密データアクセスの制限、高額な金融送金に対する承認要求、そして高リスクエージェントの自律的操作に対するレート制限です。ポリシーのデフォルトアクションは許可ですが、ルールに一致した場合は対応するアクションが実行されます。

次に、コアとなるデータ構造を実装しました:AgentIdentity(エージェントID、名前、ロール、所有者、信頼スコア、リスクレベル、スコープを含む)、GovernanceDecision(各決定の詳細情報)、そしてGovernanceDenied、ApprovalRequired、SandboxViolationなどの例外クラスです。また、ポリシー条件がaction.typeやidentity.trust_scoreなどの値にドット演算子でアクセスできるようにするDotDictヘルパークラスも作成しました。これらに基づき、厳格に制限された名前空間でポリシー条件式を評価する安全な条件評価器safe_eval_conditionを構築しました。

監査ログはガバナンスシステムの重要な構成要素です。TamperEvidentAuditLogクラスを実装し、チェーンハッシュメカニズムを採用しました。各新しいレコードは前のレコードのハッシュ値を含み、改ざん防止の証拠連鎖を形成します。監査ログはレコードの追加、完全性の検証、およびレコードをPandas DataFrameに変換して分析するメソッドをサポートしています。各レコードには、決定ID、タイムスタンプ、ポリシー名、エージェントID、ツール名、アクション詳細、決定結果、一致したルール、深刻度、理由、承認者などの情報が含まれます。

ガバナンスエンジンTutorialGovernanceEngineがシステムの中核です。YAMLポリシーをロードし、監査ログのインスタンスを保持します。エンジンはevaluateメソッドを提供し、与えられたエージェントとアクションに対して各ルールの条件を順番にチェックします。一致した場合、ルールのアクションタイプ(deny、require_approval、sandbox)に応じて対応する決定を返します。エンジンにはグローバルな緊急停止スイッチ(kill_switch)も含まれており、一度有効になると後続のすべての操作が即座に拒否されます。さらに、エンジンはエラーバジェットと最近の拒否回数をカウントし、監視と制限に使用します。

サンプルツール(データベースクエリ、メール送信、シェル実行)のモック実装も作成しました。各ツールはガバナンスエンジンのevaluateメソッドでラップされています。例えば、shell_exec関数では、echo、date、pwd、lsなどの安全なコマンドのみを許可し、その他のコマンドはブロックされます。完全な実装では、実際のツール呼び出しはガバナンス決定の結果に従います。

最後に、さまざまなエージェントIDと操作シナリオをシミュレートして一連のポリシーテストを実行し、ポリシーの正確性を検証しました。また、監査ログのDataFrameサマリーを生成し、NetworkXとMatplotlibを使用してエージェント、ツール、ルール、決定結果の関係をグラフとしてプロットしました。このグラフは、組織がガバナンスシステムの動作状況を迅速に理解するのに役立ちます。

この実装全体により、AIエージェントの動作にきめ細かいセキュリティ制御を適用し、組織のセキュリティとコンプライアンス要件に確実に準拠させるための完全なフレームワークが提供されます。YAMLポリシーの柔軟性により、ルールを簡単に拡張してさらなるシナリオに対応でき、監査ログと可視化機能により透明性とトレーサビリティが向上します。