路由工作流(Routing Workflow)【智能体开发模式】

路由工作流模式,对于一个任务的输入,从一个候选智能体的列表中选择最合适的目标,把任务的输入转发给该智能体。所选择的智能体的输出作为运行结果。每个候选智能体都使用任务执行模式实现。每个路由目标有一个名称作为其标识符。选择路由目标的逻辑,通常使用大模型来实现,也可以基于某些规则来实现路由的选择。

该模式的实现中包含了一个路由任务和一系列的目标任务。只有一个目标任务会被选择来处理任务的输入。路由任务和目标任务都使用任务执行模式来实现。

下图给出了路由工作流模式的基本流程。

在使用大模型选择目标路由时,需要包含目标路由的名称和其他描述信息。所有目标路由的信息,加上原始的任务输入,被发送给大模型,由大模型来进行选择。大模型返回所选择的路由的名称。任务输入被传递给目标路由所对应的智能体来执行,该智能体的输出作为原始任务的输出。

目标路由的信息可以包括路由的描述和其他辅助信息。添加更多的辅助信息,可以帮助大模型更准确地选择目标路由。在最简单的情况下,目标路由的名称和描述是必须的。

使用路由工作流模式的一个示例是,为客户服务的查询选择最合适的子系统。对一个大型的电子商务网站来说,通常会有不同的部门来处理不同的客户服务请求。每个部门有自己的客服智能体。这些智能体可能使用各自的微调过的模型,或是连接到不同的检索增强生成系统。对于一个客户的请求,首先选择最适合处理的子系统,再把请求转发给该子系统进行处理。

为了演示的需要,系统中一共设置了 3 个不同的智能体来处理客服请求。

  • payment: 处理支付与退款相关的请求。

  • shipping: 处理物流相关的请求。

  • general: 处理其他的通用请求。

对于下面的客服请求:

我支付了订单,为什么在 app 上仍然显示为未支付。

该输入首先由路由智能体进行处理。发送给大模型的提示如下所示。

目标: 选择最合适的目标来处理输入
候选项:- payment: 处理支付与退款相关的请求- shipping: 处理物流相关的请求- general: 处理其他的通用请求
输入:我支付了订单,为什么在 app 上仍然显示为未支付。

大模型的输出是 JSON 内容,其中包含了两个字段。

  • name 表示所选择的目标路由的名称。

  • reason 表示选择该目标路由的理由。该理由不是必须的。

大模型的输出如下所示。payment 路由被选择来处理客服请求。

{    "name": "payment",    "reason": "该问题与支付有关,用户已付款,但应用程序显示订单未付款。"}

客服请求被转发给 payment 智能体进行处理。该智能体的输出如下所示。这也是主任务的输出。

{  "answer": "很抱歉听到您遇到的问题。请确认付款是否已成功处理,并查看是否有确认邮件。如果问题仍然存在,请尝试刷新应用或联系我们的客服团队寻求帮助。"}

下图是该智能体执行时的 trace。最外层的 agent.execute 代表整个智能体的执行。整个执行过程分成两个阶段。第一个阶段是使用大模型进行路由的选择。第二个阶段是调用所选择的智能体。内部的 agent.execute 代表对 payment 智能体的调用。从 agent.name 可以看出来,实际上调用的是 PaymentSupportAgent。

下图是使用 Swagger UI 测试的结果。可以看到 payment 智能体的输出作为整个任务的执行结果。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值