microsoft/agent-governance-toolkit
AI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.
Agent Governance Toolkit – 簡潔で分かりやすい概要
概要 – マイクロソフトがメンテナンスするオープンソースライブラリで、自律型AIエージェントを本番環境で運用しながら、決定論的で監査可能なポリシーを適用できます。エージェントと、エージェントが使用したいツール/サービスの間に位置し、すべてのリクエストをYAML/OPAスタイルのポリシーに対してチェックし、決定をログに記録し、必要に応じて呼び出しをブロックします。
なぜ必要か
- ポリシー適用 – データベースを読み取れるエージェントが、
DROP TABLEのような破壊的なコマンドを発行するのを防ぎます。 - 帰属 – マルチエージェントシステムにおいて、どのエージェント(またはどのAPIキー)が特定のアクションを実行したかを特定します。
- 監査可能性 – 規制当局や内部監査人が検査できる、改ざん防止ログを生成します。
このツールキットはこれをLLMプロンプトの外部で実行するため、保護は確率的なプロンプトレベルの安全性に依存せず、決定論的です。
中核となる概念(「パイプライン」)
Agent ──► Policy Engine ──► Identity ──► Audit Log
(YAML/OPA/Cedar) (SPIFFE/DID/mTLS) (tamper‑evident)
- ポリシーエンジン – ポリシーファイルを評価し、
allow、deny、またはrequire_approvalを返します。 - アイデンティティ – リクエストを特定のエージェントに結び付ける、オプションのSPIFFE/DID/mTLS資格情報。
- 監査ログ – すべての決定の不変の記録。コンプライアンスに役立ちます。
ほとんどのデプロイでは、最初の2つのレイヤー(ポリシー+監査)だけを使用できます。アイデンティティレイヤーはオプションです。
はじめに(Pythonの例)
# フルスタックをインストール(CLI、コンプライアンスツールなどを含む)
pip install "agent-governance-toolkit[full]"
from agentmesh.governance import govern
# エージェントに公開するツールをラップする
safe_tool = govern(my_tool, policy="policy.yaml")
# ポリシーファイル (policy.yaml)
# -------------------------
# apiVersion: governance.toolkit/v1
# name: production-policy
# default_action: allow
# rules:
# - name: block-destructive
# condition: "action.type in ['drop', 'delete', 'truncate']"
# action: deny
# - name: require-approval-for-send
# condition: "action.type == 'send_email'"
# action: require_approval
# approvers: ["security-team"]
>>> safe_tool(action="read", table="users")
{'table': 'users', 'rows': 42}
>>> safe_tool(action="drop", table="users")
GovernanceDenied: Action denied by policy rule 'block-destructive'
ルールがrequire_approvalを返す場合、呼び出しはGovernancePending例外を発生させ、オーケストレーションレイヤーが人間のレビュー担当者にルーティングできます。
言語サポート
| 言語 | パッケージ | インストールコマンド |
|---|---|---|
| Python | agent-governance-toolkit |
pip install "agent-governance-toolkit[full]" |
| TypeScript | @microsoft/agent-governance-sdk |
npm install @microsoft/agent-governance-sdk |
| .NET | Microsoft.AgentGovernance |
dotnet add package Microsoft.AgentGovernance |
| Rust | agent-governance |
cargo add agent-governance |
| Go | agent-governance-toolkit (golang sub‑folder) |
go get github.com/microsoft/agent-governance-toolkit/agent-governance-golang |
すべてのSDKは、同じコアAPI(ポリシーエンジンの作成、リクエストの評価、判定の受け取り)を公開します。
CLIユーティリティ (agt)
agt doctor– インストールの健全性チェック。agt verify– ポリシーに対してOWASP Agentic Top‑10コンプライアンスチェックを実行。agt red-team scan …– インジェクションリスクについて一連のプロンプトを監査。agt lint-policy …– YAML/OPA構文を検証。agt verify --evidence … --strict– コンプライアンスの証拠が弱い場合、CIを失敗させます。
エコシステム統合
このツールキットは、主要なLLMエージェントフレームワーク用のアダプタを同梱しています。
- Microsoft Agent Framework, Semantic Kernel, AutoGen, LangChain/LangGraph, CrewAI, OpenAI Agents SDK, Claude Code, Google ADK, LlamaIndex, Haystack, Mastra, Dify, Azure AI Foundry, GitHub Copilot CLI, など。
適切なアダプタパッケージをインストールし、govern()または低レベルのAgentControl APIでツールをラップするだけです。
ガバナンス関連の追加機能
| 機能 | 追加されるもの |
|---|---|
| MCP Security Gateway | ツールポイズニング、ドリフト、タイポスクワッティング、隠し命令を検出。 |
| Shadow AI Discovery | 登録されていないエージェントをホスト上でスキャン。 |
| Governance Dashboard | フリートの健全性、信頼スコア、ポリシー違反をリアルタイムに表示するStreamlit UI。 |
| PromptDefense Evaluator | プロンプトインジェクションリスクの12ベクトル監査。 |
| Contributor Reputation Action | 低い評判のPR著者をフラグするGitHub Action(ソーシャルエンジニアリング攻撃の防止に役立ちます)。 |
使用するタイミング
- 外部ツール(ウェブ検索、データベースクエリ、電子メール、シェルコマンドなど)を呼び出す自律エージェントをデプロイしている場合。
- プロンプトインジェクション攻撃がどれほど巧妙であっても、特定のアクションが発生しないというハードで決定論的な保証が必要な場合。
- 組織がコンプライアンス(例:GDPR、金融規制)または内部ガバナンスのために監査証跡を保持する必要がある場合。
- サポートされているフレームワークのいずれかをすでに使用しており、ドロップインのポリシーレイヤーが必要な場合。
単純なプロンプトレベルの安全性だけが必要な場合や、ローカルで実験しているだけの場合は、このツールキットは過剰かもしれません。
詳細情報
- 完全なドキュメントサイト – https://microsoft.github.io/agent-governance-toolkit
- クイックスタートガイド –
docs/quickstart.md - 仕様ドキュメント –
policy-engine/spec/SPECIFICATION.mdおよびその他のdocs/specs/* - コミュニティ – README内のDiscordリンク、および優れたサプライチェーンの健全性を示すOpenSSFスコアカードバッジ。
結論 – Agent Governance Toolkitは、自律型AIエージェントが実行できることを決定論的に制御し、すべての決定を記録し、進化するOWASP Agenticセキュリティ標準に準拠するための、本番グレードで言語に依存しない方法を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト