2026年5月28日 2 分钟阅读

用 Microsoft Agent Governance Toolkit 构建生产级 AI 代理安全体系

tinyash 0 条评论

随着 AI 编码代理(Claude Code、Codex、Cursor Agent 等)进入日常开发流程,一个关键问题浮出水面:如何确保 AI 代理在自主执行时不越过安全边界?

单纯的 prompt 安全(”请遵守规则”)本质上是对随机系统的礼貌请求。Microsoft 开源的 Agent Governance Toolkit(下称 AGT)提供了一种确定性的治理方案——在每次工具调用、消息发送、任务委派之前,用代码级别的策略引擎进行拦截,从根本上杜绝越权行为。该项目在 GitHub 上已获得 2700+ stars,覆盖 Python、TypeScript、.NET、Rust、Go 五种语言 SDK,并支持 Claude Code、Copilot CLI 等主流开发工具的即插即用集成。

AGT 的核心架构

AGT 不是一个单一工具,而是一套完整的治理栈,覆盖了 AI 代理从策略执行到审计合规的全流程:

Agent ──► Policy Engine ──► Identity ──► Audit Log
            (YAML/OPA)       (SPIFFE)      (防篡改记录)
                 │                              │
                 ├── Allowed ──► Tool executes   │
                 └── Denied  ──► 策略拒绝        │
                                               ▼
                                         决策记录

每一层都是可选的。 大多数团队从策略执行+审计日志开始,随着风险等级提升再逐步叠加更多层。

核心包包括:

包名功能
Agent OS策略引擎、能力模型、审计日志、MCP 网关
Agent Mesh零信任身份、信任评分、A2A/MCP/IATP 桥接
Agent Runtime四环特权隔离、Saga 编排、终止控制
Agent SRE终止开关、SLO 监控、混沌测试、断路器
Agent ComplianceOWASP 验证、策略 lint、完整性检查
Agent Hypervisor执行计划验证、可逆性检查、增量引擎
Agent Marketplace插件生命周期管理和信任评分

五分钟快速上手

安装

pip install agent-governance-toolkit[full]

或者按需安装单个包,比如只需要策略引擎的话:

pip install agent-os-kernel

策略定义

用 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")

如果代理尝试执行删除操作,策略引擎会立即抛出 GovernanceDenied

>>> safe_tool(action="drop", table="users")
GovernanceDenied: Action denied by policy rule 'block-destructive':
  Destructive operations require human approval

程序化 API

需要更精细控制时,可以使用完整的 PolicyEvaluator API:

from agent_os.policies import (
    PolicyEvaluator, PolicyDocument, PolicyRule,
    PolicyCondition, PolicyAction, PolicyOperator, PolicyDefaults
)

evaluator = PolicyEvaluator(policies=[PolicyDocument(
    name="my-policy", 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"]
        ),
        action=PolicyAction.DENY, priority=100,
    )],
)])

result = evaluator.evaluate({"tool_name": "web_search"})    # Allowed
result = evaluator.evaluate({"tool_name": "delete_file"})   # Blocked

场景实践:为 Claude Code 添加治理

如果你的团队使用 Claude Code 作为编码代理,AGT 提供了专门的治理插件:

claude --plugin-dir ./agent-governance-claude-code

这样,Claude Code 在执行任何工具调用前都会经过 AGT 策略引擎审核。例如,你可以配置策略阻止 AI 代理执行生产数据库操作:

rules:
  - name: prod-db-readonly
    condition: "environment == 'production' and action.type in ['write', 'delete', 'alter']"
    action: deny
    description: "生产库只读,写入操作需人工介入"

团队还可以配置多级信任策略——对低风险操作(文件读取、代码搜索)完全放行,中风险操作(git push、包发布)需要人工确认,高风险操作(生产数据库写入、删除文件)直接拦截。

MCP 安全网关

对于使用 MCP 的代理,AGT 的 MCP Security Gateway 能检测以下安全威胁:

  • 工具投毒 —— 检测 MCP 工具的返回内容是否被篡改
  • 域名抢注 —— 发现与合法工具名称相似的恶意工具
  • 隐藏指令扫描 —— 检测工具描述中的隐藏指令注入
  • 配置漂移监测 —— 发现 MCP 服务器配置的意外变更

在 .NET 环境中集成 MCP 治理也很简洁:

builder.Services.AddMcpServer()
    .WithGovernance(options => options.PolicyPaths.Add("policies/mcp.yaml"));

CLI 工具链与 CI/CD 集成

AGT 提供了完善的 CLI 工具链,方便集成到开发工作流:

agt doctor                    # 检查安装状态
agt verify                    # OWASP 合规检查
agt verify --evidence ./agt-evidence.json --strict  # CI 严格模式
agt red-team scan ./prompts/ --min-grade B          # prompt 注入审计
agt lint-policy policies/                          # 策略文件语法校验

在 CI pipeline 中加入 agt verify --strict,每次代码推送都会自动进行 Agentic AI 安全合规检查。配合 Shadow AI Discovery 功能,还能扫描仓库中所有未注册的代理进程和配置文件。

为什么需要确定性治理?

社区中常有声音认为”prompt 足够好就能管住 AI 代理”。但现实是:

  • JailbreakBench 显示,自适应攻击对安全对齐模型的成功率接近 100%
  • Andriushchenko et al., 2024 报告了 GPT-4、Claude 3、Llama-3 的 100% 攻击成功率,仅用简单的 prompt-only 攻击
  • OWASP LLM01:2025 明确声明:”不存在 fool-proof 的 prompt 注入防御方法”

AGT 的哲学是:不要在 prompt 层面赢这场必输的战争。 在确定性应用代码中拦截每个工具调用,让越权行为从”不太可能”变成结构上不可能。这正是 OWASP Agentic Top 10 推荐的最佳实践,而 AGT 已经实现了对这 10 项安全威胁的全面覆盖。

最佳实践总结

  1. 最小权限原则:默认 deny,按需开放工具权限
  2. 分层治理:从策略引擎开始,逐步叠加身份认证、沙箱、监控
  3. CI 集成:将 agt verify --strict 加入 CI 管道
  4. 审计日志:保留所有决策记录,便于事后追溯
  5. 渐进采用:先在开发环境试用,确认策略正确后再推至生产

AGT 已经在 GitHub 上开源(MIT 许可证),值得每个深度使用 AI 编码代理的团队关注和尝试。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。