微软 Agent Governance Toolkit
为自主 AI 智能体的工具调用提供可执行的策略、身份与审计控制。
按维度查看评分与理由
证据显示:策略引擎支持最小权限原则,通过YAML策略定义允许/拒绝操作,并支持require_approval机制,体现了用户确认。数据流透明性通过审计日志和决策记录实现。敏感数据处理有输入验证(如拒绝NaN/Inf)和审计日志。依赖安全通过Dependabot、SLSA、OpenSSF Scorecard等工具体现。外部影响通过策略控制工具调用,并有沙箱和权限环。回滚通过审计日志和策略变更管理支持。来源归属通过Microsoft官方组织验证。扣分原因:静态审查无法验证实际执行效果,且部分安全措施仅声明未提供详细证据。
证据显示:自一致性通过形式化规范和992个一致性测试体现。依赖可用性通过多语言SDK和包管理支持。失败消息通过CLI错误处理和测试覆盖,如错误信息不泄露内部细节。扣分原因:静态审查无法验证运行时可靠性,且依赖可用性未提供实际运行证据。
证据显示:受众和场景广泛,支持多种框架和语言。能力边界通过策略和权限环明确。触发精度通过策略条件和干预点实现。环境适配通过多平台部署文档和Docker支持。扣分原因:静态审查无法验证实际适配效果,且部分集成仅声明未提供详细证据。
证据显示:信息架构清晰,有文档、规范、ADR。安装说明详细,支持多语言包。命名稳定性通过版本控制和弃用警告体现。示例和FAQ丰富。已知限制有专门文档。许可证为MIT。版本变更日志存在。维护责任通过GOVERNANCE.md和MAINTAINERS.md明确。扣分原因:静态审查无法验证文档与实际代码的一致性,且部分文档可能未及时更新。
证据显示:输出可用性通过CLI和SDK的多种输出格式(JSON、plain)体现。边际价值通过解决实际问题(如策略执行、审计)体现。成本效益通过开源免费和多种部署选项体现。扣分原因:静态审查无法量化实际效益,且成本效益未提供具体数据。
证据显示:声明可追溯性通过规范、测试和合规映射体现。跨来源佐证通过多个标准(OWASP、NIST等)和外部认证(AARM、ATF)体现。事实与推断分离通过文档区分设计意图和实现。扣分原因:静态审查无法验证外部认证的真实性,且部分声明仅依赖项目自身文档。
- 静态审查无法验证实际执行效果,所有安全声明需通过运行测试和实际部署验证。
- 部分安全措施(如SLSA、OpenSSF Scorecard)仅声明,未提供详细证据,需进一步核实。
- 外部认证(AARM、ATF)的真实性需独立验证。
- 文档可能未及时更新,需与实际代码核对。
这个 Agent 能做什么,适合哪些场景?
Agent Governance Toolkit(AGT)是微软的开源智能体治理工具包,面向会调用工具、浏览网页、查询数据库或委派任务的自主智能体。其核心是在工具调用和消息发送抵达外部系统前,在应用中间件层执行确定性的策略判定,而不是依赖提示词约束。项目包含 Agent OS、Agent Control Specification、Agent Mesh、Agent Runtime、Agent SRE、Agent Compliance 等组件,并提供 Python、TypeScript、.NET、Rust 和 Go 的安装路径。策略可使用 YAML、OPA 或 Cedar,决策可结合身份、信任和防篡改审计记录;被拒绝的调用会产生 `GovernanceDenied`。它适合希望逐步加入策略执行和审计的团队,但其安全边界位于应用进程内,生产环境仍建议将每个智能体置于独立容器中。
开发者用 from agentmesh.governance import govern 导入包装器,并通过 govern(my_tool, policy="policy.yaml") 将现有工具函数置于治理入口之后。每次调用时,AGT 读取并评估 YAML 策略中的条件,例如匹配 action.type in ['drop', 'delete', 'truncate'],记录决策,并在拒绝时抛出 GovernanceDenied;允许的调用才执行原工具。需要程序化判定时,可用 AgentControl.from_path("manifest.yaml") 创建运行时,再以 runtime.evaluate("input", {...}) 获取 verdict。命令行提供 agt doctor、agt verify、agt red-team scan 与 agt lint-policy,分别用于安装检查、OWASP 证据校验、提示注入审计和策略文件校验。项目还列出 MCP Security Gateway、执行沙箱、SLO 与混沌测试、信任评分及框架适配等可选能力。
- 负责生产数据库工具的智能体团队,需要阻止
drop、delete或truncate等破坏性操作,同时允许受策略约束的读取。 - 使用 OpenAI Agents SDK 构建客服或运维智能体的开发者,需要在工具调用前应用策略门控和信任层级。
- 运行多个共享凭据智能体的平台团队,需要通过 AgentMesh 身份、委派链和审计记录区分具体执行主体。
- 为 MCP 服务发布工具的团队,需要检查工具投毒、配置漂移、拼写仿冒或隐藏指令风险。
- 有 OWASP Agentic AI Top 10、NIST AI RMF、EU AI Act 或 SOC 2 证据需求的安全与合规团队,需要使用
agt verify和审计导出支撑检查流程。
这个 Agent 有哪些优点和局限?
- 将策略判定置于工具调用、消息发送和委派操作的应用代码拦截点,可对被拒绝的动作实施确定性阻断。
- 从两行
govern()包装开始,并可按需叠加身份、审计、沙箱和 SRE 层,适合渐进式采用。 - 提供 Python、TypeScript、.NET、Rust 和 Go 路径,以及 OpenAI Agents SDK、Claude Code、Semantic Kernel、LangGraph、CrewAI、MCP 等集成或适配说明。
- 包含
agt verify、策略 lint、提示注入扫描、正式规格和 992 个一致性测试的项目级治理材料。
- 项目标注为 Public Preview,GA 前可能出现破坏性变更;旧 Python 包名已改为重定向到整合发行版的存根包。
- 治理在应用中间件层实施,策略引擎与智能体共享同一进程边界;文档建议以独立容器提供操作系统级隔离。
- 快速开始依赖
agent-governance-toolkit[full]或核心发行版,基础 wheel 仅包含合规 CLI,已有安装方式可能需要调整。 - 不同语言的功能覆盖并不相同:README 明确说明 Python 具有完整栈,其余 SDK 实现核心治理能力。
如何安装或部署这个 Agent?
前提是 Python 3.10+。安装完整快速开始依赖:
pip install agent-governance-toolkit[full]基础 agent-governance-toolkit wheel 只安装合规 CLI;治理模块位于整合后的核心发行版中。也可按语言安装:TypeScript 使用 npm install @microsoft/agent-governance-sdk,.NET 使用 dotnet add package Microsoft.AgentGovernance,Rust 使用 cargo add agent-governance,Go 使用 go get github.com/microsoft/agent-governance-toolkit/agent-governance-golang。Azure 集成功能可选用 AZURE_CLIENT_ID、AZURE_TENANT_ID 和 AZURE_CLIENT_SECRET。
如何使用这个 Agent?
创建 policy.yaml,例如设置 default_action: allow,并添加条件为 action.type in ['drop', 'delete', 'truncate']、动作是 deny 的规则。然后包装工具:
from agentmesh.governance import govern
safe_tool = govern(my_tool, policy="policy.yaml")调用 safe_tool(action="read", table="users") 时会在执行前完成策略检查;调用 safe_tool(action="drop", table="users") 会被拒绝并抛出 GovernanceDenied。可运行 agt doctor 检查安装,使用 agt lint-policy policies/ 验证策略,使用 agt verify --evidence ./agt-evidence.json --strict 在 CI 中严格校验证据。
常见问题
被策略拒绝的工具调用会怎样?
govern() 包装的工具在动作被策略阻断时会抛出 GovernanceDenied,原工具不会在该路径上执行。它能替代容器或操作系统级隔离吗?
是否只能用于某一个智能体框架?
是否需要 Azure 凭据才能开始?
AZURE_CLIENT_ID、AZURE_TENANT_ID 和 AZURE_CLIENT_SECRET 仅被列为 Azure 集成功能的可选环境变量。