开源项目

agent-governance-toolkit

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 Governance Toolkit

将 Agent 安心部署到生产环境

完整文档

🚀 快速开始 · 📋 规范 · 📦 PyPI · 📝 更新日志

CI Discord License: MIT PyPI version npm NuGet OpenSSF Scorecard OpenSSF Best Practices OWASP Agentic Top 10 AARM Extended ATF

[!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 进行编程控制:

PolicyEvaluator 示例
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
开源项目microsoft2026-07-28原文

相关内容