微软开源 Agent Governance Toolkit:用确定性代码拦截 AI Agent 的每一次工具调用

当 AI Agent 可以自主调用工具、查询数据库、发送邮件甚至编写代码时,一个绕不开的问题浮出水面:怎么确保它不做不该做的事?

微软开源的 Agent Governance Toolkit(AGT)给出的答案是:别指望提示词约束,用确定性代码在应用层拦截每一次工具调用。

2026 年 3 月创建至今,这个项目在 GitHub 收获 5,392 个 Star,MIT 协议,Python 为主,同时提供 TypeScript、.NET、Rust、Go 多语言 SDK。36氪、HN 等技术社区近期频繁讨论 AI Agent 安全话题,而 AGT 正是目前最系统化的开源治理方案之一。

Agent Governance Toolkit

核心问题:提示词约束为什么不够

AGT 的 README 开篇就引用了一组让人难以忽视的数据。Andriushchenko 等人在 ICLR 2025 发表的论文报告了针对 GPT-4o、GPT-3.5、Claude 3、Llama-3 的自适应攻击实验,攻击成功率达到 100%——使用 logprob 访问和后缀优化技术,在 JailbreakBench 基准上全部攻破。

OWASP LLM01:2025 也明确写道:「是否存在防不胜防的提示注入方法尚不明确。」微软自己的 AI Red Teaming Agent 将「攻击成功率(ASR)」正式化为衡量此类失败的标准化指标。微软安全博客在《红队测试 100 个生成式 AI 产品的经验》一文中直言:「缓解措施并不能完全消除风险。」

AGT 的设计哲学基于这个判断:模型层面的安全防护是概率性的,你无法靠「请遵守规则」这类提示词来建立可靠的安全边界。AGT 在应用中间件层拦截每一次工具调用、消息发送和 Agent 间委托。被 AGT 内核拒绝的操作在结构上无法执行,没有任何概率绕过。

架构:四个核心子系统

AGT v5.0.0 的架构围绕一个核心理念构建:确定性应用层拦截。每一次 Agent 动作在执行前都会经过策略评估,延迟低于 0.1 毫秒。

Agent OS:策略引擎

这是 AGT 的核心。用两行代码就能给任意工具函数加上治理层:

python
from agentmesh.governance import govern

safe_tool = govern(my_tool, policy="policy.yaml")

策略用 YAML 定义,规则在每次工具调用时评估,决策被记录,被阻止的操作抛出 GovernanceDenied 异常:

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"]

策略引擎支持三种决策:允许(allow)、拒绝(deny)、需要人工审批(require_approval)。被拦截的操作永远不会到达底层工具。

AgentMesh:零信任身份层

多 Agent 系统中,五个 Agent 可能共享同一个 API Key。出问题时,「某个 Agent 干的」不构成事故响应。AgentMesh 为每个 Agent 分配基于 Ed25519 和 SPIFFE 标准的加密身份,并维护一个 0-1000 分的信任评分系统:

分数区间等级含义
900-1000Verified Partner加密验证,长期信任
700-899Trusted建立了良好记录,拥有较高权限
500-699Standard新 Agent 的默认等级
300-499Probationary权限受限,处于观察期
0-299Untrusted仅限只读或被阻止

新 Agent 默认从 500 分(Standard)开始,分数变化由策略合规历史、任务完成情况和信任边界违规记录驱动。

Agent Runtime:四级权限环

借鉴操作系统内核的权限环设计,Agent Hypervisor 根据信任分数将 Agent 分配到四个权限级别:

权限环名称允许的操作信任要求
Ring 0Root超级管理器配置和惩罚操作仅系统级,需 SRE 人工见证
Ring 1Privileged不可逆操作信任分 >0.95 且需共识
Ring 2Standard可逆操作信任分 >0.60
Ring 3Sandbox只读和研究操作默认等级

设计原则有几条硬规则:未知 Agent 默认进入 Ring 3(沙箱),Ring 0 永远不对任何 Agent 开放(除非有 SRE 工程师见证),权限提升是临时性的(自动过期),任何检查失败一律拒绝(fail-closed)。

Agent SRE:运维治理

包括 SLO 引擎、错误预算、熔断器、混沌测试和渐进式部署。当某个 Agent 连续失败 N 次,熔断器打开,阻止级联故障扩散到整个多 Agent 系统。

OWASP Agentic Top 10 覆盖

AGT 最硬的卖点是宣称覆盖了 OWASP Agentic AI Top 10(ASI01-ASI10)的全部 10 个风险类别。项目文档提供了详细的映射表:

ASI ID风险AGT 覆盖主要组件
ASI01Agent 目标劫持完整治理中间件,阻止模式匹配
ASI02工具滥用和利用完整受管工具包装器,允许/拒绝列表
ASI03身份和权限滥用完整PII 脱敏,策略中的 RBAC
ASI04Agent 供应链部分策略工具锁定,无 SBOM
ASI05意外代码执行完整静态审查,检测 pickle/eval
ASI06内存和上下文投毒部分审计哈希链,无内存沙箱
ASI07不安全的 Agent 间通信完整信任门,DID 验证
ASI08级联 Agent 故障完整熔断器,速率限制
ASI09人-Agent 信任利用部分审计追踪,无 UI 层防护
ASI10流氓 Agent完整行为监控器,隔离

7/10 完整覆盖,3/10 部分覆盖,0 个缺口。这份覆盖映射是项目团队的自评估,文档中声明了「这不是经过验证的认证或第三方审计」。

三个「部分覆盖」的领域坦承了当前局限:供应链方向没有内置 SBOM 生成或依赖漏洞扫描(建议集成 Dependabot);内存安全方向缺少内存沙箱模块;人机信任方向没有内置 UI 层审批工作流。

框架集成

AGT 支持主流 Agent 框架,通过适配器模式接入:

框架集成方式
Microsoft Agent Framework原生中间件
Semantic Kernel原生(.NET + Python)
AutoGen适配器
LangGraph / LangChain适配器
CrewAI适配器
OpenAI Agents SDK中间件
Claude Code治理插件
Google ADK适配器
LlamaIndex中间件
Dify插件

Claude Code 用户可以直接通过插件市场安装:

text
/plugin marketplace add microsoft/agent-governance-toolkit
/plugin install agt-governance@agent-governance-toolkit

GitHub Copilot CLI 也有对应的治理安装器。

规格与工程质量

AGT 在工程规范上做得相当扎实。10 份正式 RFC 2119 规格文档定义了每个组件的行为契约,附带 992 个一致性测试。29 份架构决策记录(ADR)文档化了设计选择的理由。

安全工具链覆盖全面:CodeQL 做 Python + TypeScript 静态分析,Gitleaks 做密钥扫描,ClusterFuzzLite 提供 7 个模糊测试目标(策略引擎、注入、MCP、沙箱、信任层),Dependabot 覆盖 13 个依赖生态。OpenSSF Scorecard 每周评分并上传 SARIF 报告。

实际定位:应用中间件,不是内核隔离

AGT 在文档中对自身边界有清醒的认识。策略引擎和 Agent 共享同一个 Python 进程边界,治理在应用中间件层执行,而非 OS 内核层。

对于高安全部署场景,文档建议每个 Agent 运行在独立容器中(Docker、gVisor、Kata),将治理中间件放在容器内部,实现应用层策略执行和 OS 级隔离的双重防御。

AGT 也不覆盖物理 Agent(机器人、无人机、自动驾驶)的安全控制。文档明确:「AGT 的 allow 决策意味着软件操作满足配置的治理策略,不代表物理运动或驱动是安全的。」物理安全控制器必须保持权威地位。

开发者影响

对于正在构建 AI Agent 系统的团队,AGT 提供了一个即插即用的治理层。最小化集成只需两行代码,随着风险画像增长可以逐步添加身份层、审计层和运行时沙箱。

整个工具包通过一条命令安装:

bash
pip install agent-governance-toolkit[full]

CLI 工具支持安装检查、OWASP 合规验证、提示注入审计和策略文件校验:

bash
agt doctor                              # 检查安装
agt verify                              # OWASP 合规检查
agt red-team scan ./prompts/ --min-grade B  # 提示注入审计
agt lint-policy policies/               # 策略文件校验

agt verify --evidence ./agt-evidence.json --strict 可以在 CI 流水线中作为门禁,弱证据直接导致构建失败。

AGT 解决的是一个正在快速成形的工程问题:当 Agent 进入生产环境,提示词层面的安全约束不够用了,你需要确定性的、可审计的、可验证的治理基础设施。微软把这套基础设施以 MIT 协议开源,同时覆盖了五大语言的 SDK 和十余个主流框架的适配器,降低了采用门槛。

来源:GitHub - microsoft/agent-governance-toolkit | 官方文档