← 返回信息流
GitHub 热榜GitHub Trending · 周·7 天前

微软 Agent 治理工具包:自主 AI 代理的安全治理与合规框架

原标题:microsoft/agent-governance-toolkit
Python3,078 stars+1,314 本周

速览

该项目旨在解决 AI 代理在自主运行中的安全与治理难题,通过内置策略引擎和沙箱机制实现细粒度的权限控制与隔离。它特别适用于需要高可靠性、合规性及零信任架构的企业级 AI 应用部署场景。

AI 深度解读

Microsoft Agent Governance Toolkit (AGT) 深度解析

这是什么

Agent Governance Toolkit (AGT) 是微软开源的一套用于自主 AI 智能体(Autonomous AI Agents)治理、身份验证、沙箱隔离及 SRE(站点可靠性工程)的基础设施工具包。该项目主语言为 Python,目前在 GitHub 上已获得约 3078 颗 Star。

AGT 的核心理念是将 AI 智能体的行为控制从“概率性”的提示词工程(Prompt Engineering)转移到“确定性”的应用代码层面。它通过中间件层拦截智能体的每一次工具调用、消息发送和任务委派,在动作实际执行前进行策略评估。

  • 当前状态:Public Preview(公共预览版),提供生产级质量且经微软签名的发布版本,但在 GA(通用可用)之前可能包含破坏性变更。
  • 安装方式pip install agent-governance-toolkit[full]
  • 多语言支持:虽然核心为 Python,但提供了 TypeScript、.NET、Rust 和 Go 的 SDK,支持跨语言治理。

解决的问题

随着 AI 智能体从简单的问答助手演变为能自主浏览网页、查询数据库、发送邮件甚至委派任务的复杂系统,传统的安全防护手段面临失效风险。AGT 旨在解决以下三个核心痛点:

  1. 权限边界模糊(Is this action allowed?)

    • 现状:传统的 OAuth 作用域和 IAM 角色仅控制智能体能“连接”哪些服务,却无法限制连接后“做什么”。例如,拥有 send_email 权限的智能体不应具备 drop_table 的能力。
    • AGT 方案:在应用层强制实施细粒度策略,区分服务访问权限与具体操作权限。
  2. 责任归属缺失(Which agent did this?)

    • 现状:在多智能体系统中,多个智能体可能共享同一个 API 密钥。当发生异常时,“某个智能体做了坏事”无法作为有效的事故响应依据。
    • AGT 方案:引入身份标识(Identity)和审计日志,明确记录每个决策背后的具体智能体实例。
  3. 合规与审计困难(Can you prove what happened?)

    • 现状:审计员和监管机构需要防篡改的记录,包括当时生效的策略、智能体的请求内容以及允许/拒绝的理由。
    • AGT 方案:生成防篡改的决策记录(Decision Records),满足 OWASP 及行业合规要求。

为什么提示词安全不够? AGT 明确指出,基于提示词的安全(如“请遵守规则”)是对随机系统的礼貌请求,而非控制面。引用 OWASP LLM01:2025 及多项研究(如 JailbreakBench),自适应攻击对前沿模型的越狱成功率接近 100%。AGT 不试图在提示词层面战胜对抗性攻击,而是通过确定性代码使违规操作在结构上成为不可能。

核心功能

AGT 的架构遵循 Agent -> Policy Engine -> Identity -> Audit Log 的流程,主要功能模块如下:

1. 确定性策略执行 (Policy Enforcement)

AGT 在应用中间件层拦截所有工具调用。它不依赖模型自身的意图判断,而是通过预定义的 YAML 或代码策略进行拦截。

  • 拦截机制:在模型意图到达网络层(wire)之前,由 AGT 内核进行拦截。
  • 结果确定性:被拒绝的操作不是“不太可能发生”,而是“结构上不可能执行”。

2. 声明式策略定义 (Declarative Policies)

支持通过 YAML 文件定义复杂的业务逻辑,也可通过编程 API 进行控制。

  • 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"]
    
  • 编程式 API:提供 PolicyEvaluator,支持更复杂的逻辑判断(如字段匹配、优先级设置)。

3. 身份与信任管理 (Identity & Trust)

  • 支持 SPIFFE、DID (Decentralized Identifiers) 和 mTLS。
  • 在多智能体环境中,为每个智能体分配唯一身份,确保操作可追溯。

4. 审计与证据链 (Audit & Evidence)

  • 生成防篡改的审计日志,记录每次决策的上下文。
  • 提供 CLI 工具 agt verify 进行 OWASP 合规性检查,并生成证据文件供 CI/CD 流水线使用。

5. 红队测试与扫描 (Red Teaming)

  • 内置 CLI 工具 agt red-team scan,可针对提示词目录进行注入审计,评估策略强度。

亮点 / 与同类相比

| 特性 | AGT (Agent Governance Toolkit) | 传统 LLM 安全方案 | 其他 Agent 框架 | | :--- | :--- | :--- | :--- | | 控制层级 | 应用中间件层 (确定性代码) | 提示词层 / 模型层 (概率性) | 通常缺乏内置治理 | | 安全性基础 | 结构上阻止违规 (Structurally Impossible) | 依赖模型对齐,易受越狱攻击 | 依赖开发者自行实现 | | 策略执行 | 每次调用均拦截并评估 | 无实时拦截,依赖事后检测 | 通常无统一策略引擎 | | 审计能力 | 防篡改决策记录,支持合规审计 | 日志记录简单,缺乏上下文 | 往往缺失或分散 | | 多语言支持 | Python, TS, .NET, Rust, Go | 通常仅限 Python 或特定框架 | 通常绑定特定语言 | | 集成难度 | 低 (两行代码 govern()) | 高 (需重构提示词或模型) | 中 (需自行搭建基础设施) |

关键差异点:

  • 确定性 vs 概率性:AGT 最大的亮点在于将安全从“请求模型遵守规则”转变为“代码强制模型无法违规”。
  • 分层架构:AGT 允许团队按需启用功能。可以从简单的 govern() 装饰器开始,逐步增加身份验证和沙箱隔离,无需一次性部署全套复杂栈。
  • 标准化:遵循 RFC 2119 规范,拥有 992 个合规性测试和 25 份架构决策记录(ADR),确保实现的严谨性。

适合谁用 / 上手

适合谁用

  • 企业级 AI 应用开发者:需要部署自主智能体,且对数据安全和合规性有严格要求的公司。
  • 多智能体系统架构师:需要管理多个智能体之间的协作、权限隔离和责任追踪。
  • 安全与合规团队:需要自动化审计日志以满足监管要求(如金融、医疗行业)。
  • 开源贡献者:对 AI 治理、策略引擎及多语言 SDK 开发感兴趣的技术人员。

如何上手

  1. 环境准备

    • Python 3.10+
    • 安装依赖:pip install agent-governance-toolkit[full]
  2. 快速集成 (Python): 只需两行代码即可将任何工具函数纳入治理:

    from agentmesh.governance import govern
    # 加载策略并包装工具
    safe_tool = govern(my_tool, policy="policy.yaml")
    
  3. 定义策略: 创建 policy.yaml,定义允许和拒绝的规则。例如,禁止执行 drop 操作,或要求发送邮件需安全团队审批。

查看原文 →github.com