当 AI Agent 可以自主调用工具、查询数据库、发送邮件甚至编写代码时,一个绕不开的问题浮出水面:怎么确保它不做不该做的事?
微软开源的 Agent Governance Toolkit(AGT)给出的答案是:别指望提示词约束,用确定性代码在应用层拦截每一次工具调用。
2026 年 3 月创建至今,这个项目在 GitHub 收获 5,392 个 Star,MIT 协议,Python 为主,同时提供 TypeScript、.NET、Rust、Go 多语言 SDK。36氪、HN 等技术社区近期频繁讨论 AI Agent 安全话题,而 AGT 正是目前最系统化的开源治理方案之一。

核心问题:提示词约束为什么不够
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 的核心。用两行代码就能给任意工具函数加上治理层:
from agentmesh.governance import govern
safe_tool = govern(my_tool, policy="policy.yaml")策略用 YAML 定义,规则在每次工具调用时评估,决策被记录,被阻止的操作抛出 GovernanceDenied 异常:
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-1000 | Verified Partner | 加密验证,长期信任 |
| 700-899 | Trusted | 建立了良好记录,拥有较高权限 |
| 500-699 | Standard | 新 Agent 的默认等级 |
| 300-499 | Probationary | 权限受限,处于观察期 |
| 0-299 | Untrusted | 仅限只读或被阻止 |
新 Agent 默认从 500 分(Standard)开始,分数变化由策略合规历史、任务完成情况和信任边界违规记录驱动。
Agent Runtime:四级权限环
借鉴操作系统内核的权限环设计,Agent Hypervisor 根据信任分数将 Agent 分配到四个权限级别:
| 权限环 | 名称 | 允许的操作 | 信任要求 |
|---|---|---|---|
| Ring 0 | Root | 超级管理器配置和惩罚操作 | 仅系统级,需 SRE 人工见证 |
| Ring 1 | Privileged | 不可逆操作 | 信任分 >0.95 且需共识 |
| Ring 2 | Standard | 可逆操作 | 信任分 >0.60 |
| Ring 3 | Sandbox | 只读和研究操作 | 默认等级 |
设计原则有几条硬规则:未知 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 覆盖 | 主要组件 |
|---|---|---|---|
| ASI01 | Agent 目标劫持 | 完整 | 治理中间件,阻止模式匹配 |
| ASI02 | 工具滥用和利用 | 完整 | 受管工具包装器,允许/拒绝列表 |
| ASI03 | 身份和权限滥用 | 完整 | PII 脱敏,策略中的 RBAC |
| ASI04 | Agent 供应链 | 部分 | 策略工具锁定,无 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 用户可以直接通过插件市场安装:
/plugin marketplace add microsoft/agent-governance-toolkit
/plugin install agt-governance@agent-governance-toolkitGitHub 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 提供了一个即插即用的治理层。最小化集成只需两行代码,随着风险画像增长可以逐步添加身份层、审计层和运行时沙箱。
整个工具包通过一条命令安装:
pip install agent-governance-toolkit[full]CLI 工具支持安装检查、OWASP 合规验证、提示注入审计和策略文件校验:
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 和十余个主流框架的适配器,降低了采用门槛。