agent-governance-toolkit
AI Agent 治理工具包,专注于策略执行、零信任身份、执行沙箱和可靠性工程,覆盖 OWASP Agentic Top 10。亮点是微软出品,提供 Python/TypeScript/.NET/Rust/Go 多语言 SDK,支持 LangGraph、AutoGen、CrewAI 等主流框架,以确定性代码层拦截而非提示层约束,能结构化阻止违规行为。生产级预览,含 992 项一致性测试和完整合规映射,适合需要将 Agent 安全部署到生产环境的团队。
README
Agent Governance Toolkit
将 Agent 安心部署到生产环境
🚀 快速开始 · 📋 规范 · 📦 PyPI · 📝 更新日志
[!IMPORTANT] 公开预览版 —— 生产质量的公开预览版本。可能在正式发布(GA)前发生破坏性变更。
策略执行、身份认证、沙箱隔离和站点可靠性工程(SRE)工具,适用于自主 AI Agent。一条 pip install,兼容任意框架。
问题所在
你的 AI Agent 会调用工具、浏览网页、查询数据库,并将任务委托给其他 Agent。一旦部署,它们会自主做出决策。你需要回答三个问题:
1. 这个动作是否被允许? 一个拥有 send_email 和 query_database 权限的 Agent 不应该能够 drop_table。OAuth 范围和 IAM 角色仅控制 Agent 能访问哪些服务,而不控制 Agent 连接后具体做什么。
2. 是哪个 Agent 做的? 在多 Agent 系统中,五个 Agent 可能共用同一个 API 密钥。当发生问题时,“某个 Agent 干的”并不能作为事故响应。
3. 能否证明发生了什么? 审计人员和监管机构需要防篡改的每一项决策记录:当时生效的策略是什么,Agent 请求了什么,以及为什么被允许或被拒绝。
提示层面(prompt-level)的安全(“请遵守规则”)并不是一种控制面。它只是对随机系统的礼貌请求。OWASP LLM01:2025 明确指出了这一点:“目前尚不清楚是否存在针对提示注入(prompt injection)的完美防御方法。” 已发表的数据也证实了这一点。Andriushchenko 等人(ICLR 2025) 报告,针对 GPT-4o、GPT-3.5、Claude 3 和 Llama-3,使用结合 logprob 访问和前缀优化的自适应攻击,在 JailbreakBench 基准(Chao 等人,NeurIPS 2024)上实现了 100% 攻击成功率。微软自己的 AI Red Teaming Agent 将攻击成功率(ASR) ——在对抗输入下策略被违反的概率——正式定义为这类故障的标准指标。来自对 100 个生成式 AI 产品进行红队测试的经验 进一步强调了这一点:“缓解措施并不能完全消除风险”,而且红队测试必须是一个持续的过程,因为模型层面的防御本质上是概率性的。
AGT 并不试图在提示(prompt)内部赢得这场战斗。每一次工具调用、消息发送和委托,都会在模型的意图到达线路之前,在确定的应用程序代码中被拦截。AGT 内核拒绝的动作并不是“不太可能发生”,而是在结构上不可能发生。这就是“请求一个 Agent 守规矩”与“让一个 Agent 无法违规”之间的区别。
快速开始
前置条件: Python 3.10+
pip install agent-governance-toolkit[full]
使用 [full] 附加安装包来满足下方快速开始的导入需求。基础版
agent-governance-toolkit wheel 仅安装合规 CLI;治理
模块集成在统一的核心发行版中。agentmesh 快速开始
导入仍然是当前封装 API。下方的 agent_os PolicyEvaluator 示例是
旧版兼容性:导入 agent_os 当前会发出
DeprecationWarning,因为旧的 agent-os-kernel 发行版已废弃。
请使用 agent-governance-toolkit-core(或包含它的 [full] 附加包)作为
替代发行版,新策略引擎宿主代码建议使用 AGT 5 的 agt-policies/ACS API。
对于 Claude Code,将 AGT 添加为插件市场并安装治理插件:
/plugin marketplace add microsoft/agent-governance-toolkit
/plugin install agt-governance@agent-governance-toolkit
用两行代码治理任意工具函数:
from agentmesh.governance import govern
safe_tool = govern(my_tool, policy="policy.yaml") # 每次调用都会检查、记录、强制执行
就是这样。safe_tool 在每次调用时评估你的 YAML 策略,记录决策,如果动作被阻止则抛出 GovernanceDenied。
# 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
description: "破坏性操作需要人工批准"
- 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':
破坏性操作需要人工批准
或者使用完整的 PolicyEvaluator API 进行编程控制:
from agent_os.policies import (
PolicyEvaluator, PolicyDocument, PolicyRule,
PolicyCondition, PolicyAction, PolicyOperator, PolicyDefaults
)
evaluator = PolicyEvaluator(policies=[PolicyDocument(
name="my-policy", version="1.0",
defaults=PolicyDefaults(action=PolicyAction.ALLOW),
rules=[PolicyRule(
name="block-dangerous-tools",
condition=PolicyCondition(
field="tool_name",
operator=PolicyOperator.IN,
value=["execute_code", "delete_file"]
),
action=PolicyAction.DENY, priority=100,
)],
)])
result = evaluator.evaluate({"tool_name": "web_search"}) # 允许
result = evaluator.evaluate({"tool_name": "delete_file"}) # 阻止
TypeScript / .NET / Rust / Go 示例TypeScript
import { PolicyEngine } from "@microsoft/agent-governance-sdk";
const engine = new PolicyEngine([
{ action: "web_search", effect: "allow" },
{ action: "shell_exec", effect: "deny" },
]);
engine.evaluate("web_search"); // "allow"
engine.evaluate("shell_exec"); // "deny"
.NET
using AgentGovernance;
using AgentGovernance.Extensions.ModelContextProtocol;
using AgentGovernance.Policy;
var kernel = new GovernanceKernel(new GovernanceOptions
{
PolicyPaths = new() { "policies/default.yaml" },
});
var result = kernel.EvaluateToolCall("did:mesh:agent-1", "web_search",
new() { ["query"] = "latest AI news" });
// MCP server integration
builder.Services.AddMcpServer()
.WithGovernance(options => options.PolicyPaths.Add("policies/mcp.yaml"));
Rust
use agent_governance::{AgentMeshClient, ClientOptions};
let client = AgentMeshClient::new("my-agent").unwrap();
let result = client.execute_with_governance("data.read", None);
assert!(result.allowed);
Go
import agentmesh "github.com/microsoft/agent-governance-toolkit/agent-governance-golang"
client, _ := agentmesh.NewClient("my-agent",
agentmesh.WithPolicyRules([]agentmesh.PolicyRule{
{Action: "data.read", Effect: agentmesh.Allow},
{Action: "*", Effect: agentmesh.Deny},
}),
)
result := client.ExecuteWithGovernance("data.read", nil)
CLI 工具:
agt doctor # 检查安装
agt verify # OWASP 合规检查
agt verify --evidence ./agt-evidence.json --strict # CI 中因证据不足而失败
agt red-team scan ./prompts/ --min-grade B # 提示注入审计
agt lint-policy policies/ # 验证策略文件
完整教程:quickstart.md —— 5 分钟从零到受治理的 Agent。 🌍 也支持:日本語 | 简体中文 | 한국어
工作原理
Agent ──► 策略引擎 ──► 身份认证 ──► 审计日志
(YAML/OPA/Cedar) (SPIFFE/DID/mTLS) (防篡改)
│ │
├── 允许 ──► 工具执行 │
└── 拒绝 ──► GovernanceDenied │
▼
决策记录
每一层都是可选的。从 govern() 开始,随着风险规模的增加逐步添加层。大多数团队只需要策略执行 + 审计日志,从未用到完整的堆栈。
包
| 包 | 描述 |
|---|---|
| Agent OS | 策略引擎、Agent 生命周期管理、治理网关 |
| Agent Control Specification (README) | 无状态、确定性、故障关闭的策略决策运行时(Rust 核心),支撑 AGT 策略层 |
| Agent Mesh | Agent 发现、路由和信任网格 |
| Agent Runtime | 具有四个特权环的执行沙箱 |
| Agent SRE | 终止开关、SLO 监控、混沌测试 |
| Agent Compliance | OWASP 验证、策略 lint、完整性检查 |
| Agent Marketplace | 插件治理和信任评分 |
| Agent Lightning | 带有违规惩罚的强化学习训练治理 |
| Agent Hypervisor | 执行审计、增量引擎、内存中承诺跟踪、命令拒绝列表强制执行 |
附加能力
| 能力 | 描述 |
|---|---|
| MCP 安全网关 | 工具投毒检测、漂移监控、域名抢注、隐藏指令扫描(规范) |
| Shadow AI 发现 | 在进程、配置和仓库中发现未注册的 Agent(发现) |
| 治理仪表板 | 实时集群可见性,涵盖健康、信任和合规(仪表板) |
| PromptDefense 评估器 | 12 向量提示注入审计(评估器) |
| 贡献者声誉 | PR/issue 作者筛查,防范社会工程。可复用的 GitHub Action(Action) |
安装
| 语言 | 包 | 命令 |
|---|---|---|
| Python | agent-governance-toolkit |
pip install agent-governance-toolkit[full] |
| TypeScript | @microsoft/agent-governance-sdk |
npm install @microsoft/agent-governance-sdk |
| Copilot CLI | @microsoft/agent-governance-copilot-cli |
npx @microsoft/agent-governance-copilot-cli install |
| Claude Code | @microsoft/agent-governance-claude-code |
claude --plugin-dir ./agent-governance-claude-code |
| OpenCode | @microsoft/agent-governance-opencode |
npm install @microsoft/agent-governance-opencode |
| .NET | Microsoft.AgentGovernance |
dotnet add package Microsoft.AgentGovernance |
| .NET MCP | Microsoft.AgentGovernance.Extensions.ModelContextProtocol |
dotnet add package Microsoft.AgentGovernance.Extensions.ModelContextProtocol |
| Rust | agent-governance |
cargo add agent-governance |
| Go | agent-governance-toolkit |
go get github.com/microsoft/agent-governance-toolkit/agent-governance-golang |
所有五个语言的 SDK 都实现了核心治理功能(策略、身份、信任、审计)。Python 拥有完整堆栈。Copilot CLI 和 Claude Code 是基于 TypeScript SDK 构建的一流开发者界面。 详细信息请参见 语言包矩阵。
Python 发行版(v4.1.0 — 合并版本)自 v4.1.0 起,45 个包已合并为 5 个顶级发行版:
| 发行版 | PyPI | 包含内容 |
|---|---|---|
agent-governance-toolkit-core |
agent-governance-toolkit-core |
策略引擎、能力模型、审计、MCP 网关、零信任身份、信任评分、A2A/MCP/IATP 桥接 |
agent-governance-toolkit-runtime |
agent-governance-toolkit-runtime |
特权环、Saga 编排、终止控制、执行计划验证、命令拒绝列表强制执行 |
agent-governance-toolkit-sre |
agent-governance-toolkit-sre |
SLO、错误预算、混沌工程、断路器 |
agent-governance-toolkit-cli |
agent-governance-toolkit-cli |
agt CLI、OWASP 验证、完整性检查、策略 lint |
agent-governance-toolkit[full] |
agent-governance-toolkit |
元包,安装上述所有 |
以前的包名(agent-os-kernel、agentmesh-platform、agentmesh-runtime、agent-sre、agent-discovery、agent-hypervisor、agentmesh-marketplace、agentmesh-lightning)仍可作为桩包安装,这些桩包会重定向到合并后的发行版。
前置条件
- Python:3.10+
- Node.js:18+ / npm 9+(TypeScript SDK)
- .NET:8+
- Go:1.25+
- Rust:1.70+
- 可选:对于 Azure 集成功能,需要
AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET
框架支持
| 框架 | 集成方式 |
|---|---|
| Microsoft Agent Framework | 原生中间件 |
| Semantic Kernel | 原生(.NET + Python) |
| AutoGen | 适配器 |
| LangGraph / LangChain | 适配器 |
| CrewAI | 适配器 |
| OpenAI Agents SDK | 中间件 |
| Claude Code | 治理插件包 |
| Google ADK | 适配器 |
| LlamaIndex | 中间件 |
| Haystack | Pipeline |
| Mastra | 适配器 |
| Dify | 插件 |
| Azure AI Foundry | 部署指南 |
| GitHub Copilot CLI | 治理安装程序 |
示例
| 示例 | 框架 | 演示内容 |
|---|---|---|
| openai-agents-governed | OpenAI Agents SDK | 带有信任层级的策略门控工具调用 |
| crewai-governed | CrewAI | 基于角色的多 Agent 治理策略 |
| smolagents-governed | HuggingFace smolagents | 轻量级 Agent 治理 |
| maf-integration | MAF | Microsoft Agent Framework 集成 |
| mcp-trust-verified-server | MCP | 信任验证的 MCP 服务器实现 |
| cedarling-governed | Cedar/Cedarling | Janssen Cedarling 策略引擎集成 |
| governance-dashboard | Streamlit | 实时集群可见性仪表板 |
规范
每个主要组件都有一份正式的 RFC 2119 规范以及一致性测试。这些规范定义了行为契约:实现必须(MUST)、应该(SHOULD)和可以(MAY)做什么。
| 规范 | 范围 | 测试数 |
|---|---|---|
| Agent OS 策略引擎 | 策略评估、规则合并、故障关闭语义 | 68 |
| Agent Control Specification | 无状态干预点策略运行时、裁决、转换、故障关闭 | -- |
| AgentMesh 身份与信任 | 凭证、信任评分、委托链 | 135 |
| Agent Hypervisor 执行控制 | 特权环、Saga 编排、终止开关 | 80 |
| AgentMesh 信任与协调 | 对等信任协商、网格级策略 | 62 |
| Agent SRE 治理 | SLO、错误预算、混沌、断路器 | 111 |
| MCP 安全网关 | 工具投毒、漂移检测、隐藏指令 | 127 |
| Agent Lightning 快速路径 | 强化学习训练治理、违规惩罚 | 100 |
| 框架适配器契约 | 10 个适配器集成、拦截器链 | 152 |
| 审计与合规 | Merkle 审计、合规映射、决策物料清单(Decision BOM) | 157 |
| [AgentMesh 线协议](docs/specs/AGENTM |