委托链、困惑的代理以及你实际部署的协议

委托链、混乱的代理以及您实际部署的协议 代理很少单独行动。用户请求代理做某事。代理调用工具。该工具调用另一个代理。当工作完成时,三到四个参与者已经触及了请求,每个参与者都代表之前的参与者...后委托链、困惑的代理以及您实际部署的协议首先出现在 DataRobot 上。

来源:DataRobot博客

委托链、困惑的代理以及你实际部署的协议

特工很少单独行动。用户请求代理做某事。代理调用工具。该工具调用另一个代理。当工作完成时,三到四个演员已经触及了请求,每个演员都代表之前的演员。

身份必须在这条链中生存。在每一跳,您都需要回答两个问题,而不是一个。最初是谁提出这个要求的?哪个演员正在做出这个特定的决定?失去任何一个答案,您就无法正确授权呼叫或事后解释。

两个声明承载整个链条

标准已经对此进行了建模。 RFC 8693 定义了令牌交换:参与者将收到的令牌换成新的令牌以进行下一次调用,而不丢弃之前的令牌。该令牌带有两个在这里很重要的声明。

从属权利要求是主语,即原始主语。整个事情是由用户发起的,并且随着请求沿着链向下移动,它不会改变。

行为声明是参与者,即发出当前调用的一方。它确实改变了。当一个代理呼叫另一个代理时,行为嵌套:代理 B 代表代理 A 代表用户代理。嵌套行为是表示多跳链的唯一诚实方式,因为它保留每个链接而不是折叠它们。

故障模式有一个名称

捷径就是压平链条。代理人不再交换代币和嵌套行为,而是重新铸造一个新的代币,实际上是“这是我,代表我自己打电话”。更简单。它还会破坏链条。

现在 sub 指向代理,而不是用户。原校长已经不在了。归因随之消失:下游工具看到代理,但不知道是谁的请求启动了它。而且由于该工具只能看到代理的身份,因此它会根据代理的权限进行授权,这些权限比该特定任务应允许的范围更广泛。您对每个下游调用都过度授予。

链在实践中的生死存亡

外卖