微软开源的 agent 治理框架,涵盖策略执行、零信任身份、沙箱隔离和可靠性工程,对标 OWASP Agentic Top 10。生产级 agent 开发必读。
🌍 English | 日本語 | 简体中文 | 한국어
让 Agent 安心投入生产环境
🚀 快速开始 · 📋 规范 · 📦 PyPI · 📝 变更日志
公开预览版——达到生产质量的公开预览版本。在正式发布(GA)之前可能存在破坏性变更。
为自主 AI Agent 提供策略执行、身份认证、沙箱隔离和 SRE 能力。只需安装一个 pip 包,即可适配任意框架。
你的 AI Agent 会调用工具、浏览网页、查询数据库,并将任务委派给其他 Agent。一旦部署,它们便会自主做出决策。你需要回答三个问题:
这个操作是否被允许?一个有权访问 send_email 和 query_database 的 Agent,不应该也能执行 drop_table。OAuth scopes 和 IAM roles 控制的是 Agent 可以访问哪些服务,而不是它连接服务之后可以做什么。
这是哪个 Agent 做的?在多 Agent 系统中,五个 Agent 可能共用同一个 API key。出现问题时,“某个 Agent 做的”无法作为有效的事件响应结论。
你能证明发生了什么吗?审计人员和监管机构需要每次决策的防篡改记录:当时启用了什么策略、Agent 请求执行什么操作,以及该操作为何获准或被拒绝。
prompt 层面的安全约束(“请遵守规则”)并不是一个可靠的控制面。它只是对随机系统提出的一项礼貌请求。OWASP LLM01:2025 明确指出:“目前尚不清楚是否存在能够彻底防范 prompt injection 的万无一失的方法。”已发表的数据也印证了这一点。Andriushchenko 等人(ICLR 2025)使用可访问 logprob 并进行后缀优化的自适应攻击,在 JailbreakBench 基准(Chao 等人,NeurIPS 2024)上进行评估,报告了针对 GPT-4o、GPT-3.5、Claude 3 和 Llama-3 的攻击成功率均达到 100%。Microsoft 自己的 AI Red Teaming Agent 将 Attack Success Rate(ASR,攻击成功率)——即对抗性输入下发生策略违规的比率——正式定义为衡量此类故障的标准指标。《Lessons from Red Teaming 100 Generative AI Products》进一步强化了这一观点:“缓解措施无法完全消除风险”;同时,红队测试必须持续进行,因为模型层防御从设计上就是概率性的。
AGT 并不试图在 prompt 内部赢下这场对抗。在模型的意图真正传输到外部系统之前,每一次工具调用、消息发送和任务委派都会被确定性的应用程序代码拦截。被 AGT kernel 拒绝的操作并非只是“不太可能发生”,而是在结构上根本无法发生。这正是“要求 Agent 规范行事”和“让 Agent 无法违规”之间的区别。
前置要求:Python 3.10+
pip install agent-governance-toolkit[full]
若要使用下面快速入门中的 import,请安装 [full] extra。基础版 agent-governance-toolkit wheel 只会安装合规 CLI;治理模块位于整合后的 core distribution 中。agentmesh 的快速入门 import 仍是当前使用的 wrapper API。导入 agent_os 会产生 DeprecationWarning,因为旧的 agent-os-kernel distribution 已被弃用。请改用 agent-governance-toolkit-core,或使用包含它的 [full] extra。Policy-engine 的宿主代码使用 agt-policies 和 ACS APIs;ACS 之前的 agent_os.policies 规则模型已被移除,BREAKING_CHANGES.md 中列出了它的替代方案。
对于 Claude Code,请将 AGT 添加为 plugin marketplace,然后安装治理 plugin:
/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") # every call checked, logged, enforced
就是这么简单。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: "Destructive operations require human approval"
- 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':
Destructive operations require human approval
你也可以使用完整的 AgentControl API 进行编程式控制:
from agent_control_specification import AgentControl
runtime = AgentControl.from_path(str("manifest.yaml"))
result = runtime.evaluate(
"input",
{
"envelope": {"agent_id": "example-agent"},
"input": {"body": {"action": "web_search", "params": {}}},
},
)
print(result.verdict)
runtime.close()
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"
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"));
use agent_governance::{AgentMeshClient, ClientOptions};
let client = AgentMeshClient::new("my-agent").unwrap();
let result = client.execute_with_governance("data.read", None);
assert!(result.allowed);
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)
agt doctor # check installation
agt verify # OWASP compliance check
agt verify --evidence ./agt-evidence.json --strict # fail CI on weak evidence
agt red-team scan ./prompts/ --min-grade B # prompt injection audit
agt lint-policy policies/ # validate policy files
完整演练:quickstart.md——5 分钟内从零开始构建受治理的 Agent。🌍 另有以下语言版本:日本語 | 简体中文 | 한국어
Agent ──► Policy Engine ──► Identity ──► Audit Log
(YAML/OPA/Cedar) (SPIFFE/DID/mTLS) (Tamper-evident)
│ │
├── Allowed ──► Tool executes │
└── Denied ──► GovernanceDenied │
▼
Decision Record
每一层都是可选的。你可以先从 govern() 开始,再随着风险等级的提高逐步添加其他层。大多数团队只运行策略执行和审计日志,并不需要完整的技术栈。
所有五种语言的 SDK 都实现了核心治理能力,包括策略、身份、信任和审计。Python 提供完整的技术栈。Copilot CLI 和 Claude Code 是基于 TypeScript SDK 构建的第一方开发者入口。有关各语言的详细覆盖范围,请参阅 Language Package Matrix。
从 v4.1.0 开始,45 个 package 已整合为 5 个顶层 distribution:
以前的 package 名称(agent-os-kernel、agentmesh-platform、agentmesh-runtime、agent-sre、agent-discovery、agent-hypervisor、agentmesh-marketplace、agentmesh-lightning)仍然可以安装,但它们现在是 stub package,会重定向至整合后的 distribution。
Node.js:18+ / npm 9+(TypeScript SDK)
可选:若要使用 Azure 集成功能,请配置 AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET。
完整列表:Framework Integrations · Quickstart Examples
每个主要组件都有一份遵循 RFC 2119 的正式规范,并配有一致性测试。这些规范定义了行为契约:实现必须(MUST)、应该(SHOULD)和可以(MAY)做什么。
992 项一致性测试确保代码始终与规范保持一致。29 份 Architecture Decision Records 记录了相关设计决策背后的原因。
AGT 在应用程序 middleware 层执行治理,而不是在 OS kernel 层执行。Policy engine 与 Agent 共享同一个进程边界。
生产环境建议:将每个 Agent 运行在独立的 container 中,以实现 OS 级隔离。请参阅 Architecture: Security Boundaries。
有关真实的设计边界及推荐的分层防御方案,请参阅 Known Limitations。
Contributing Guide · Community · Discord · Security Policy · Changelog
正在使用 AGT?请将你的组织添加到 ADOPTERS.md。
如果你使用 Agent Governance Toolkit 构建与第三方 Agent framework 或服务协作的应用程序,相关风险由你自行承担。我们建议你审查与第三方服务共享的所有数据,并充分了解第三方在数据保留期限和数据存储位置方面的做法。
Agent Governance Toolkit 唯一的官方来源如下:
项目团队不维护、也不认可任何自称官方的第三方网站、package 或文档站点。如果你发现使用 Agent Governance Toolkit 名称的可疑网站或 package,请通过 SECURITY.md 中说明的渠道进行报告。
本项目采用 MIT License。
本项目可能包含其他项目、产品或服务的商标或 logo。Microsoft 商标或 logo 的授权使用必须遵守 Microsoft Trademark & Brand Guidelines。在本项目的修改版本中使用 Microsoft 商标或 logo 时,不得引起混淆,也不得暗示该版本获得了 Microsoft 的赞助。任何第三方商标或 logo 的使用均须遵守相应第三方的政策。