当你的智能体调用另一家公司的智能体时——谁在真正验证握手?
摘要
一位开发者描述了当一个AI智能体调用第三方供应商的智能体时遇到的认证和授权漏洞,重点说明了权限提升、未验证链和混淆代理攻击等故障模式。他们向社区询问如何处理跨组织智能体调用验证。
构建一个多智能体系统,其中我们内部的一个智能体需要调用第三方供应商的智能体来触发订单履行。集成工作很简单。阻止我的是一个我找不到干净答案的问题:当我们的智能体调用他们的智能体时,每一方都有自己的认证层——我们验证我们颁发的令牌,他们验证他们颁发的令牌。但没有人独立验证它们之间的握手。具体遇到了三种故障模式,我无法看到如何通过任何一方的现有认证来捕获:1. 我们的智能体拥有一个作用域为 read_order 的有效令牌。它请求在供应商系统上执行 execute_payment,声称继承自之前步骤的权限。供应商的认证系统验证“这是来自可信颁发者的真实令牌吗?”——是的——但从不检查该令牌是否实际具有支付操作的作用域。2. 请求链从未经验证的用户输入(自由文本表单提交)开始,通过我们的智能体,到达供应商的智能体时看起来像一个内部已验证的请求。双方的认证都无法看到完整的链历史。3. 供应商的智能体已注册且可信。但一个声称来自我们这边的请求实际上是通过供应商的智能体将调用反弹回内部——这是一种跨组织的 CONFUSED_DEPUTY。双方各自的认证系统都通过了。你在实践中遇到过这种情况吗?你是如何处理跨组织智能体调用验证的?你是在协议层面(A2A/MCP)、在应用层解决的,还是暂时将其视为已知差距?不是想找产品推荐——真诚地想知道这是否是其他人遇到过的真实操作问题,还是我想得太复杂了。
相似文章
不要让代理自行验证
文章概述了一条自主代理规则,其中制造者和验证者为独立代理,工作流程包括在验证失败后升级至人类。
有没有人在让自己的 agent 与自己没搭建的 agent 协作?
一位从业者反思了多智能体架构从自建体系向跨第三方协作的转变,引出了当 agent 跨越运营方边界时,关于发现、支付、信任与验证的问题。
一个能调用另一个代理的代理已经提升了其自身权限
本文讨论了能调用其他代理的AI代理如何可能导致超出审查边界的权限提升,强调了安全风险,并建议在系统设计中更好地限定凭据范围。
工具调用返回 200,并不能证明你的智能体完成了操作。你是如何验证操作是否成功的?
一位实践者分享了一种情况:AI 智能体的工具调用返回成功(200/ID),但预期操作实际上并未完成(例如,邮件仍停留在草稿箱中)。他们建议在每次写入操作后回读验证,将操作标记为“已验证”“已确认收到”或“与实际结果不符”,并询问其他人如何验证智能体的操作。
当你的子代理调用真实工具时,工具如何知道人类实际授权了什么?
作者正在测试一个原型,该原型在多代理工具执行中提供经过密码学验证的授权证据,询问这是否解决了开发人员的一个重大生产问题。