你的AI Agent正在裸奔?微软开源的治理工具包,5分钟给它穿上防弹衣
微软开源了Agent Governance Toolkit(AGT),这是一个为AI Agent提供运行时安全治理的框架。它通过应用层策略执行解决Agent工具调用中的三大核心问题:权限滥用、责任归属和审计追溯。AGT采用模块化设计,覆盖OWASP Agent应用十大安全风险,仅需两行代码即可接入现有系统。该工具支持多语言,提供策略引擎、沙箱隔离、审批工作流等功能,可将Agent违规率从提示词防护
你搭了一个AI Agent,它能发邮件、查数据库、调API,还能自主做决策——听起来很酷,直到某个深夜,它自己把生产库给drop了。
这不是段子。当Agent有了"手脚"(工具调用),Prompt层的安全提示就像门上贴了张"请勿入内"的纸条——红队测试显示,纯提示词防护的策略违规率高达26.67%。
上周,微软开源了 Agent Governance Toolkit(AGT),一个在应用层给Agent加"安全护栏"的运行时治理框架。最关键的是:两行代码就能生效,和任何框架兼容。
🎯 先搞清楚:它治什么病?
AGT解决三个核心问题:
① 这个动作为什么被允许? OAuth和IAM控制的是Agent"能访问哪些服务",但管不了它连上之后干什么。一个有send_email和query_database权限的Agent,理论上也能drop_table。
② 到底是谁干的? 多Agent系统里5个Agent共享一个API Key,出事了只能说"某个Agent干的"——这不是事件响应,是甩锅大会。
③ 能证明发生了什么吗? 审计和合规需要不可篡改的记录:哪条策略在生效、Agent请求了什么、为什么被允许或拒绝。
🚀 5分钟上手:两行代码给Agent加护栏
安装:
pip install agent-governance-toolkit[full]
写一个策略文件 [policy.yaml](http://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"]
两行代码接入:
from
agentmesh.governance
import govern
safe_tool = govern(my_tool, policy="
policy.yaml")
# 每次调用都会检查、记录、执行
效果——
>>> safe_tool(action="read", table="users")
{'table': 'users', 'rows': 42} # ✅ 允许
>>> safe_tool(action="drop", table="users")
GovernanceDenied: Action denied by policy rule 'block-destructive':
破坏性操作需要人工审批 # ❌ 拦截
就这么简单。safe_tool 会在每次调用时评估YAML策略、记录决策,违规则抛出 GovernanceDenied。
🏗️ 拆开看:8个模块各守一道门
AGT不是单点工具,而是一整套治理栈,按需叠加:
|
模块
|
干什么
|
| — | — |
| Agent OS |
策略引擎,Agent行为的"门卫"
|
| Agent Mesh |
Agent发现、路由与信任网格
|
| Agent Runtime |
执行沙箱,4层权限环隔离
|
| Agent SRE |
Kill Switch、SLO监控、混沌工程
|
| Agent Compliance |
OWASP合规验证、策略lint、完整性检查
|
| Agent Marketplace |
插件治理与信任评分
|
| Agent Lightning |
RL训练治理,违规惩罚
|
| Agent Hypervisor |
执行审计、delta引擎、承诺锚定
|
每一层都是可选的。大多数团队跑"策略执行 + 审计日志"就够了,不需要全套上齐。
🛡️ OWASP Agentic Top 10 全覆盖
这是AGT最硬的底气——它覆盖了2026年OWASP Agent应用十大风险的全部10项:
|
OWASP风险
|
AGT怎么防
|
| — | — |
|
ASI-01 Agent目标劫持
|
策略引擎在应用层拦截未授权行为变更
|
|
ASI-02 工具滥用
|
能力沙箱,最小权限授权
|
|
ASI-03 身份与权限滥用
|
DID去中心化身份 + 信任评分(0-1000)
|
|
ASI-04 Agent供应链漏洞
|
AI-BOM追踪模型、数据、权重的完整谱系
|
|
ASI-05 意外代码执行
|
4层权限环执行隔离
|
|
ASI-06 记忆/上下文投毒
|
VFS策略 + CMVK验证
|
|
ASI-07 不安全的Agent间通信
|
IATP + 加密通道
|
|
ASI-08 级联Agent故障
|
熔断器 + SLO + 错误预算
|
|
ASI-09 人-Agent信任利用
|
审批工作流
|
|
ASI-10 流氓Agent
|
Kill Switch + 权限环隔离
|
对比数据很直观:提示词防护策略违规率26.67%,AGT的应用层执行违规率——0.00%。
🔧 实战:三个最常用的场景
场景一:防止Agent删库跑路
from
agent_os.policies
import PolicyEvaluator, PolicyDocument, PolicyRule
from
agent_os.policies
import PolicyCondition, PolicyAction, PolicyOperator, PolicyDefaults
evaluator = PolicyEvaluator(policies=[PolicyDocument(
name="db-safety", 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", "drop_table"]
),
action=
PolicyAction.DENY,
priority=100,
)],
)])
result =
evaluator.evaluate({"tool_name":
"web_search"}) # ✅ Allowed
result =
evaluator.evaluate({"tool_name":
"delete_file"}) # ❌ Blocked
场景二:给Agent发"身份证"
from agentmesh import AgentIdentity
identity =
AgentIdentity.create(
name="data-analyst",
sponsor="admin@
company.com",
capabilities=["read:data"], # 只能读,不能写和删
)
# 身份格式:did:agentmesh:{agentId}:{fingerprint}
# 信任评分会随时间衰减,需要持续"表现良好"来维持
场景三:CI/CD里跑合规检查
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/ # 校验策略文件
把 agt verify --strict 加进CI pipeline,每次部署自动跑一轮OWASP检查。
🌍 多语言支持,无厂商锁定
AGT不是Python专属——
-
Python
:
pip install agent-governance-toolkit[full] -
TypeScript
:
npm install @microsoft/agent-governance-sdk -
.NET
:
dotnet add package [Microsoft.AgentGovernance](http://Microsoft.AgentGovernance) -
-
Rust
-
crates.io
agentmesh
-
crates.io
-
Go
:
go get [github.com/microsoft/agent-governance-toolkit/agent-governance-golang](http://github.com/microsoft/agent-governance-toolkit/agent-governance-golang)兼容AWS Bedrock、Google ADK、Azure AI、LangChain、CrewAI、AutoGen、OpenAI Agents、LlamaIndex等主流框架。
💡 什么时候该用,什么时候不必
✅ 适合用的场景:
-
Agent有数据库/文件系统/邮件等"真实操作"权限
-
多Agent协作,需要区分"谁干了什么"
-
面向企业客户,合规/审计是硬需求
-
Agent接触敏感数据(金融、医疗、法律) ❌ 可以先不用的场景:
-
Agent只做信息检索和摘要,无副作用操作
-
个人项目/原型阶段,安全不是首要考量
-
已经有成熟的治理方案在跑
📌 一句话总结
Prompt层的"请遵守规则"是软约束,应用层的策略执行是硬约束。AGT做的事情很简单:在Agent动手之前,先问一句"这个动作合规吗?"——违规就拦,合规就放,全程留痕。
对于任何要把Agent推向生产环境的团队,这不是锦上添花,是必需品。
🔗 项目地址: https://github.com/microsoft/agent-governance-toolkit
📖 5分钟快速入门: https://microsoft.github.io/agent-governance-toolkit
📋 OWASP合规详情: 项目内 docs/ [OWASP-COMPLIANCE.md](http://OWASP-COMPLIANCE.md)
更多推荐


所有评论(0)