Contextual Policies in Omnigent: Using session state to better govern AI agents
TL;DR · AI 摘要
Contextual Policies in Omnigent: Using session state to better govern AI agents Databricks Blog Skip to main content Pro...
核心要点
- 主题聚焦:Contextual Policies in Omnigent: Using session s
- 来源:Databricks,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
Omnigent 中的上下文策略:利用会话状态更好地治理 AI 代理 | Databricks 博客
跳至主要内容
产品
2026年7月7日
Omnigent 中的上下文策略:利用会话状态更好地治理 AI 代理
Omnigent 如何实现强大的安全和成本控制
作者:Matei Zaharia、David Nasi、Xiangrui Meng、Kecheng Cao 和 Tomu Hirata
摘要
• Omnigent 为 AI 代理引入了上下文策略:这些策略可以跟踪代理会话到目前为止的操作,以评估下一步操作是否应继续执行。 • 作为元控制框架,Omnigent 允许这些策略应用于其封装的任何代理,包括 Claude Code 和 Codex 等编码代理。 • 上下文策略使您可以定义比现有代理控制框架中更强大的策略。例如,您可以配置每会话支出上限,或设置随着风险累积而变得更为严格的防护规则。
我们最近推出了 Omnigent,这是一个用于 AI 代理的开源元控制框架。它允许您继续使用已有的代理控制框架(包括 Claude Code、Codex 和自定义代理),同时添加一个用于协作、组合和策略的共享层。
在安全和成本管理方面,Omnigent 引入了一种强大的新工具:上下文策略。当前的代理框架仅提供简单的控制来限制代理的行为,例如允许、拒绝或要求用户批准各种工具调用的规则。但这使得创建既安全又方便用户的策略变得困难。相比之下,Omnigent 的上下文策略可以记住会话到目前为止发生的事情(例如代理已读取的内容或已花费的金额),并利用这些状态来决定下一步操作是否应继续执行。这使得能够实现一系列既更安全又更方便用户的丰富策略:从动态跟踪会话风险等级,到实现最小权限安全模型,再到让用户为单个任务设置预算以管理支出。
为何上下文信息能让代理控制更有效
AI 代理为企业引入了新的风险类型。例如,由于代理可能被不可信内容注入提示并被要求执行有害操作,因此有必要防止同一代理读取不可信内容、访问敏感数据或与外部世界通信(这一概念由 Simon Willison 提出的“致命三联”和 Meta 的“代理双规则”所普及)。某个操作是否“安全”在一定程度上取决于之前发生了什么:如果代理刚刚为工程师开发了一个功能,那么将其代码推送到 GitHub 通常是安全的;但如果代理之前下载了可能包含注入攻击的不可信网页,同样的 GitHub 推送操作则具有风险。
不幸的是,目前大多数代理软件仅提供简单的白名单控制或对单个操作的防护规则,例如是否允许 Git 提交或网页搜索。为了防止注入攻击,我们必须完全阻止至少其中一个操作,但这会对许多无害的使用场景造成限制。同样,对每个操作都要求用户批准也不太可行,因为用户很快会对频繁的审批提示感到疲劳。
其他情况下也是如此。例如,让销售代表的代理向客户发送一封电子邮件可能是可以接受的,但让它发送数千封电子邮件则可能表明存在安全漏洞或程序错误。代理编辑自己创建的文档是合理的,但同一代理编辑数千份内部文档则可能需要进一步审查。实际上,许多针对人类用户的安防工具也会考虑用户的历史行为,而不仅仅是当前操作(这被称为上下文安全)。
引入上下文策略
在Omnigent中,策略可以监听代理执行的操作(例如工具调用、响应以及与LLM的输入输出),并决定是允许、拒绝、转换消息还是请求用户授权,这与传统的代理防护机制类似。但策略还可以更新会话状态:仅对该策略可见的任意变量。这可以包括跟踪代理使用特定工具的次数、阅读的文档等信息。Omnigent服务器会为每个策略和会话记住状态,并在下次调用策略处理程序时传递给策略处理程序。编写上下文策略时,只需编写一个函数,该函数接收旧状态和代理尝试执行的新事件,然后返回状态更新和决策。Omnigent本身已内置了多种实用策略。
此外,由于Omnigent是元框架,它可以以相同方式将您的上下文策略应用于使用任何框架的代理。Omnigent支持广泛使用的代码代理,如Claude Code、Codex、Antigravity、Pi、OpenCode和Hermes,以及基于OpenAI Agents SDK和Claude Agents SDK等框架的自定义代理。只需通过Omnigent启动代理,Omnigent服务器就会拦截它们的工具调用以执行策略。
示例用例
以下是Omnigent目前内置的三个示例策略。每个策略依赖于不同类型的会话状态:代理已读内容、累积的会话风险评分或当前会话的总成本。
1. Google Drive策略:将代理的访问权限限制在正确的文档范围内
Google Drive策略控制代理在文档、表格和幻灯片中可以读取和修改的内容。默认情况下,写入操作仅限于代理在本次会话中创建的文档。因此,代理可以创建新文档并自由编辑,但无法悄悄修改从未打算接触的现有文件。这种行为无法通过简单的白名单实现:我们不希望直接允许或拒绝“写入文档”工具,而只希望在代理于同一会话中创建文档时允许使用该工具。
作为该策略中上下文行为的第二个示例,您可以将一组文档标记为机密:当代理打开这些文档时,策略会收紧限制,使写入操作仅限于该集合。即使代理一分钟前创建的文档也会被禁止访问,因为向其中追加机密内容会导致这些信息泄露到保护级别较低的文件中。在经典安全模型中,这实现了Bell-LaPadula模型的“禁止向下写入”规则。
图1:配置Google Drive策略。confidential_files声明了哪些文档属于机密
图2:默认情况下,写入操作仅限于代理在本次会话中创建的文档
图3:在阅读机密文档后,相同的写入操作会被拒绝以防止向下写入泄露
2. 风险评分策略:接触敏感内容时更加谨慎
安全团队通常使用风险评分来管理人类的访问权限。在Omnigent中,风险评分策略会为当前会话持续计算一个分数,这个单一数值会跟踪代理人在工作过程中累积的风险程度。用户可以配置哪些操作会提高分数以及提高的幅度:常规的工具调用可能增加1-2分,而阅读你标记为高度机密的文档则会增加更多分数。只要分数保持在较低水平,代理就会正常工作。一旦分数超过阈值,发送电子邮件或共享文件等操作将返回“需确认”(ASK)而非“允许”(ALLOW),并提示用户进行人工审批。因此,同一封邮件在会话初期可能自动发送,但当代理处理了足够多的敏感内容导致分数上升后,后期发送该邮件则需要人工批准。
图4:配置会话范围的风险评分策略
图5:一旦网络搜索将会话风险评分提升至阈值,发送电子邮件将不再自动执行,需要人工审批。
3. 成本策略:控制支出
预算策略会跟踪会话到目前为止在模型调用上的支出。当支出超过软性阈值时,策略会暂停并询问是否继续。当支出达到硬性上限时,策略会阻止对昂贵模型的进一步调用,直到代理切换到更便宜的模型,从而让会话继续而非停止。这一思路可以扩展到单个会话之外。平台团队可以在会话级上限的基础上叠加每日用户级上限,防止任何人通过多次独立对话累积成本。在两种情况下,策略都基于累计支出进行判断:策略不是针对单次模型调用进行评判,而是监控累计总额,并在会话或用户支出过多时介入。
图6:配置会话范围的预算策略
图7:当会话支出超过警告阈值时,策略会暂停并要求用户批准继续。
4. 基于意图的授权:根据目的限制权限
基于意图的授权根据用户对代理的初始提示来设置代理的权限,即使代理被注入提示,也无法使用大部分工具造成损害。例如,如果你通过要求代理更新Google Slides演示文稿来启动会话,策略会允许该代理读写该演示文稿,但会阻止代理突然尝试使用GitHub。策略会记住用户在会话开始时实际提出的需求作为状态,然后将每次工具调用与原始目标进行比对,应用最小权限原则。这是由上下文状态启用的一个简单而强大的策略:你可以默认为代理配置许多工具,但每次会话都会自动限制这些工具的使用。同一工具调用在某个会话中可能是允许的,但在另一个会话中可能需要你的批准,这取决于你让代理执行的任务。
$
/$
图8:IBA阻止与原始请求无关的shell命令。
总结
随着代理承担更多实际工作,控制它们的难度也随之增加。代理可能因恶意输入或良性错误而造成损害,而仅检查单个操作的简单白名单策略不足以在保证可用性的同时确保安全性。上下文策略通过动态跟踪会话内的状态,在代理积累足够风险时才阻止操作,从而实现更实用且更安全的代理。它们还提供了一个强大而简单的工具,可按会话级别而非按用户每日级别管理预算。Omnigent 是开源的,并兼容主流的代码代理和代理框架,因此你可以立即将其应用于现有代理。
立即体验
Omnigent 今日已开放源代码(alpha 版)。
- 通过我们的快速入门开始:https://omnigent.ai/quickstart/install
- 点赞并克隆代码库:https://github.com/omnigent-ai/omnigent
- 阅读策略教程:https://omnigent.ai/quickstart/policies
- 查看策略文档:https://omnigent.ai/docs/policies/overview
- 在 Discord 加入我们:https://discord.gg/omnigent
订阅最新文章
订阅我们的博客,获取最新文章直接发送到你的邮箱。
注册
查看所有博客
slice-start id="_gatsby-scripts-1"
slice-end id="_gatsby-scripts-1"