Managed Agents 中 Action Gateway 的内部机制

Managed Agents 中 Action Gateway 的内部机制

💡 原文英文,约2700词,阅读约需10分钟。
📝

内容提要

DigitalOcean 的 Action Gateway 用于治理 AI 代理对外部工具的调用:模型提出请求不等于授权,网关先解析调用者身份与工具,再按策略允许、拒绝或要求人工审批;审批绑定具体参数并在执行前复核。凭证不进入模型上下文,连接可撤销;重试区分安全读取与不确定写入,避免重复操作。

🔎

延伸解读

工具菜单不等于权限

文章强调,Toolbelt 是可用工具的集合,类似菜单,但列出工具并不代表授权。每次调用仍需通过策略检查,可能被允许、拒绝或要求人工审批。这意味着即使工具在菜单中,若策略不允许或连接无效,调用仍会失败。团队应理解菜单与权限的分离,避免误以为列出即可用。

审批绑定具体参数

人工审批针对的是具体的工具、参数和连接,而非一次性授权。审批后若参数或连接被更改,审批将失效,执行前会再次核对。这防止了审批被滥用。开发者需确保所选集成能展示审批请求,否则调用不会自动放行,而是等待或失败。

凭证隔离与连接撤销

提供商凭证不会进入模型上下文或模型编写的代码中,而是由凭证服务存储,执行路径按需获取。连接可被撤销,若外部授权失效,后续调用将停止或要求重新连接。这降低了凭证泄露风险,但授权调用仍可能暴露数据,因此需最小化工具集和外部账户权限。

重试策略区分读写

对于安全读取,如搜索,失败后可重试;对于写入,如创建 issue,若提供商不支持幂等键,则只尝试一次,避免重复创建。重试仅针对超时等临时错误,且有次数和退避限制。若响应丢失,应验证提供商状态后再决定是否重发。

❓

Q&A

Action Gateway 在 AI 代理调用外部工具时扮演什么角色?

Action Gateway 是 DigitalOcean 用于治理 AI 代理对外部工具调用的组件。它解析调用者身份和工具,根据策略允许、拒绝或要求人工审批,并确保凭证不进入模型上下文。

为什么模型提出工具调用请求不等于授权?

因为模型只是提出请求,Action Gateway 会先解析调用者和工具,再根据策略决定是否允许。模型建议调用工具是请求,不是权限。

Action Gateway 如何处理需要人工审批的工具调用?

当策略标记为 ask 时,调用会等待人工通过调用应用的审批界面做出决定。审批绑定具体工具、参数和连接,并在执行前再次检查。如果客户端无法显示审批提示,调用不会自动允许。

Action Gateway 如何管理外部服务的凭证?

凭证由凭证服务存储,Gateway 存储连接信息并为特定调用获取授权。模型只能看到工具结果,看不到令牌。模型编写的沙箱代码也通过受治理的工具调用,不会直接获得提供者凭证。

对于不确定的写入操作,Action Gateway 的重试策略是什么?

对于可能重复的写入,如果提供者支持幂等键,执行路径会在每次尝试中使用相同的键。如果不支持,写入只尝试一次;如果响应丢失,需要先向提供者验证结果,避免重复操作。

action.code 和 action.invoke 有什么区别?

action.invoke 用于执行单个工具调用,可以并行运行多个独立调用。action.code 用于协调有依赖关系的调用,它运行模型编写的短程序在隔离环境中,程序可以提取 ID 并适配下一个工具的输入,但每个工具调用仍会经过 Action Gateway 的策略和连接检查。

🏷️

标签

➡️

继续阅读