微软开源智能体治理工具包 AGT:控制智能体行为与成本,助力智能体领域成熟!
【微软推出智能体治理工具包 AGT】随着智能体 AI 的迅速普及这些非确定性的助手暴露出了一系列问题。这主要是因为 AI 智能体并非人类即便它们通常使用与人类相同的 API行为却大相径庭。例如在构建回复所需的上下文时智能体发起的查询数量远超人类。有与智能体合作过的公司或是有用户通过智能体访问服务的公司提供的轶事数据表明这可能会导致 API 使用量大幅增加进而影响服务的可用性。这种增长是由于自动化请求大量涌入阻塞了 API 的调用和响应。这些 API 在一年前还能正常工作但如今却难以应对如此大的负载。虽然对 API 进行根本性的重新设计势在必行但预算、资源和能力等因素使得这一目标难以一蹴而就。因此需要一种方法来管理智能体与 API 的交互将智能体视为一类新用户制定并执行管理智能体生命周期所需的策略。使用模型上下文协议Model Context ProtocolMCP作为智能体访问 API 的标准包装器有助于实现这一点因为它为我们提供了一个通用环境可在其中实现控制智能体所需的治理层。微软最近推出了其开源智能体治理工具包Agent Governance ToolkitAGT的公开预览版旨在为智能体提供基于策略的执行机制确保在发起调用前对其进行评估。可以将该工具包视为管理智能体行为的一种方式而非控制智能体所使用的大语言模型Large Language ModelsLLMs的输入和输出。微软的数据显示这种保护智能体的方法比依赖提示规则要安全得多。不过在实践中将像 AGT 这样的功能工具与传统过滤器结合使用是个不错的选择这样可以捕捉用户错误和基于提示的攻击。【AGT 的特点与工作原理】AGT 是一套旨在应对开放 Web 应用安全项目Open Web Application Security ProjectOWASP列出的智能体风险的工具它基于微软保护自身智能体和 AI 平台的经验构建工具包中内置了超过 13000 项测试。其工作原理是在执行操作前对其进行评估根据策略进行检查然后决定是否允许该操作并记录结果。微软预计每次操作的策略评估时间少于 0.1 毫秒将开销降至最低。【智能体策略】OWASP 列出的十大智能体风险涵盖了因用户提示和不良应用设计而可能干扰智能体运行的重大问题包括智能体目标劫持、不受控制的代码执行、不安全的输出处理以及智能体失控等。工具包中的功能旨在通过隔离和沙箱技术以及使用内容策略验证输出保护智能体应用免受这些问题的影响。可以使用声明式编程技术来制定定义智能体操作范围的策略。由于这些策略具有可读性可以与同事共享并在不同项目中对其进行优化从而为组织内运行的所有智能体制定一套通用的 AGT 规则。由此产生的授权模型是基于意图的智能体声明其意图AGT 会对其进行批准或拒绝。策略随后会确定允许的操作是允许并发出警报还是直接阻止。这种方法使代码能够检查编排操作是否偏离了顶层意图。当代码为多个并行智能体运行一个管理框架时这有助于确保应用按计划进行降低不必要操作和过度使用令牌的风险。智能体的行为往往会导致令牌使用量超出预期因此控制成本也是 AGT 的一项重要功能。随着平台转向新的定价和预算模式控制智能体交互中令牌使用量的能力将变得至关重要。通过在 AGT 策略中设置令牌预算开发人员可以防止用户产生意外的高额费用。AGT 的预算管理工具可以在智能体接近预设限制时限制其活动并在可能使用过多令牌时拒绝操作。【实时监控和管理智能体】甚至可以使用 AGT 来管理 API 调用这一点变得越来越重要因为智能体的上下文搜索活动可能会迅速使为人类交互设计的 API 不堪重负。通过制定规则限制在一定时间内的调用次数可以让智能体框架为管理限流而无需实施复杂的 API 管理工具。AGT 的一个关键特性是能够利用其声明式策略组合找出偏离设定基线的智能体有助于在问题造成损失或影响运营之前发现问题。必要时AGT 还可以启用终止开关。其日志记录和可观测性功能包括对问题进行根本原因分析以及微软所称的 决策物料清单它通过审计链跟踪治理决策并记录与智能体相关的信任级别细节。像 AGT 这样的工具包需要保持供应商中立因为智能体可能在任何环境中与模型协同工作。AGT 设计为可与 Azure Foundry、亚马逊 Bedrock 和谷歌 ADK 以及大多数常见的智能体编排框架配合使用。它支持五种不同的编程语言Python、TypeScript、.NET、Rust 和 Go。虽然不同实现的功能有所差异但 Python 版本具备完整的功能集。微软在 AGT 中做出了一些有趣的架构决策。其中最重要的一点是它将智能体视为在安全操作系统上运行的代码利用虚拟机管理程序的概念将智能体与底层平台隔离开来。从底层组件和包的命名方式中可以看出这一点核心治理包被称为 Agent OS。【将 AGT 集成到代码中】使用 AGT 入门非常简单可以使用所选语言的标准包管理器安装完整的工具包。当然也不必安装整个工具包。如果不需要所有功能或者只想使用单个功能可以选择安装特定的包。例如当想对智能体进行混沌测试时只需下载 AGT 的软件可靠性工程工具。可以在代码中定义策略也可以将其作为外部策略文档。策略主要关注关键的安全和治理目标例如阻止危险工具运行、在消息中查找个人身份信息Personally Identifiable InformationPII以及向用户展示采取的操作及其原因。对于生产环境中的 AGT 实现建议使用外部策略文档因为它们允许用 YAML 编写策略。工具包提供了一个单一的调用可以加载目录中的所有策略文件因此最好只在该位置存储生产策略以避免出现问题。在现有代码中添加对 AGT 的支持只需在智能体框架发起调用之前添加评估即可。这可以通过编辑器中的重构工具来完成找到调用并将评估器和决策结果包装在其周围。这样可以在不使用 AGT 的情况下开发智能体在确定智能体能够正常工作后再添加其工具。微软为 19 种不同的框架提供了定制适配器以确保它们能与之兼容。这些适配器可以与工具包的其他部分一起加载。AGT 标志着智能体领域的日益成熟它将企业级的严谨性引入了这个曾经混乱无序的领域。它解决了大规模使用智能体时的诸多担忧有助于控制智能体的行为和成本。自主软件需要受到约束而 AGT 的声明式策略构建和应用方法以及其整套工具使能够快速构建并应用必要的控制措施。随着企业希望控制成本监管机构希望确保智能体软件符合合规要求像智能体治理工具包这样的工具很可能会成为现代智能体开发环境中不可或缺的一部分。那么未来 AGT 还会给智能体领域带来哪些惊喜呢