- 简介
- 入门指南
- 使用 Maestro BPMN 进行构建
- 使用 Maestro Case 构建
- 使用 Maestro Flow 进行构建
- Maestro Automate
- 集成
- 运营
- 监控
- 正在优化
- 参考信息
构建聊天智能体工作流
在 Maestro Flow 中构建 AI 驱动的实时聊天体验,包括基于输出的路由和智能体交接等功能。
您将构建什么:演示如何使用核心聊天节点来编排灵活的聊天体验的对话流。
本演练构建了一个聊天体验,其中包含一个普通帮助台智能体,该智能体决定何时将对话移交给帐户专家智能体。
需要满足的条件
- 有权访问 Maestro Flow 的 UiPath Automation Cloud 帐户。
- 供智能体使用的可用 LLM 模型。
使用的节点
- 对话触发器:将流标记为对话式,并在用户发起聊天时启动流。
- 等待消息:暂停,直到用户发送消息并返回最新的对话上下文。
- 对话智能体:单提示对话 AI 节点,可根据给定对话上下文轮流运行响应和工具调用。
- 决策:根据智能体的结构化输出进行路由。
- 发送消息: 发送确定性(非 LLM)通知到聊天窗口。
步骤
1. 创建流并添加对话触发器
- 在 Studio Web 中,选择“新建” ,然后选择Maestro Flow。
- 选择默认触发器(标记为“手动触发器”),然后选择“更改触发器” 。
- 在触发器选取器中,选择对话触发器。
2. 等待用户的第一条消息
“等待消息”应该是对话触发器后的第一个节点:
- 将“等待消息”节点从“对话工具”面板拖动到画布上,并将其连接到“对话触发器”。
- 在属性面板中,将“对话 ID”设置为
$vars.conversationTrigger1.output.conversationId。
节点输出 conversationContext — 最近的聊天历史记录、用户配置文件数据和其他轮次信息 — 供下游聊天节点使用。
3. 添加对话智能体节点
我们要添加的第一个对话智能体节点是一个通用的帮助台智能体,用于处理日常 IT 问题,并通过结构化输出决定何时将工作移交给专家。
-
将一个“对话智能体”节点拖动到画布上,并将其连接到“等待消息”。
-
将其重命名为“通用帮助台智能体” ,并在智能体的“高级”面板中将其 ID 重命名为
generalHelpdeskAgent,以便更轻松地跟踪。 -
在智能体的属性面板中,设置系统提示词:
You are the internal IT helpdesk assistant. Answer everyday questions about our tools, wifi, printers, meeting rooms, and where to find internal docs. When the employee is having an account problem — a forgotten password, a locked account, an MFA issue, or a missing permission — tell the user that they will be handed off to an account specialist agent.You are the internal IT helpdesk assistant. Answer everyday questions about our tools, wifi, printers, meeting rooms, and where to find internal docs. When the employee is having an account problem — a forgotten password, a locked account, an MFA issue, or a missing permission — tell the user that they will be handed off to an account specialist agent. -
在“对话智能体设置”下,将对话上下文绑定至
$vars.waitForMessage1.output.conversationContext。 -
在“输出”下,添加一个输出变量:
- 名称:
needsAccountSpecialist - 数据类型:布尔值
- 默认:
false - 说明:
Set to true when the employee has an account problem — a forgotten password, a locked account, an MFA issue, or a missing permission. Otherwise false.
- 名称:
输出变量的描述是必要项——智能体除了使用系统提示词之外,还会使用描述来生成结构化输出。在对话结束后,智能体还会使用描述来生成结构化输出。
4. 路由器决策的分支
随着智能体的部署,决策节点会根据结构化输出进行路由。
- 将“决策”节点拖动到画布上,并将其连接到常规帮助台智能体。
- 设置条件:
$vars.generalHelpdeskAgent.output.needsAccountSpecialist。 - 将“False”分支连接回原始的“等待消息” (步骤 2)。普通帮助台智能体保留对话 — 可能会稍后移交,也可能永远不会移交。
暂时将True分支保持打开状态;您将在后续步骤中对其进行构建。
5. 宣布交接
在专家接手之前,告知员工发生了什么情况,并询问他们后续步骤。
- 在“决策”的“True”分支上,添加一个“发送消息”节点。配置:
- 对话 ID:
$vars.conversationTrigger1.output.conversationId - 交换 ID:
$vars.waitForMessage1.output.conversationContext.latestExchangeId - 内容:
"You've been connected to the account specialist, which can help with password resets, unlocking your account, and permission or group membership questions. Please explain your issue."
- 对话 ID:
6. 使用帐户专家添加第二个“等待消息”循环
-
在“发送消息”后,添加另一个“等待消息”节点。
-
将“对话 ID”设置为
$vars.conversationTrigger1.output.conversationId。 -
拖动一个“对话智能体”节点,并将其连接到第二个“等待消息”。
-
(可选)将其重命名为Account Expert Agent 。
-
设置系统提示词:
You are the account specialist. The user has been handed off to you from a general helpdesk assistant. Help only with account problems — password resets, unlocking accounts, MFA re-enrollment, and permission or group membership questions.You are the account specialist. The user has been handed off to you from a general helpdesk assistant. Help only with account problems — password resets, unlocking accounts, MFA re-enrollment, and permission or group membership questions. -
在“对话智能体设置”下,将对话上下文绑定至
$vars.waitForMessage2.output.conversationContext。 -
将帐户专家的输出连接回
waitForMessage2,以关闭专家的循环。
当您有多个“等待消息”节点时,您可能会意外地将下游节点配置为从先前执行的“等待消息”节点引用过时的对话上下文。
为了便于跟踪,请创建一个“流级别”变量(例如$vars.globalConversationContext ),并从每个“等待消息”节点的“更新变量”部分更新该变量。然后,下游节点可以引用该单一事实来源,而无需选取上次执行的“等待消息”节点的输出。
7. 调试流程
在顶部工具栏中选择“调试” 。聊天面板将在画布旁边打开。
- 询问“如何连接到我的办公室 VPN?” — 一般帮助台智能体应直接回答问题,并在下一个轮次中环回。
- 询问“我在登录时遇到问题。” — 一般的帮助台智能体应设置
needsAccountSpecialist: true,决策会路由到 True 分支,显示交接通知,并且客户专家接管。
检查执行追踪记录,以查看每轮都在运行哪个智能体,以及一般帮助台智能体生成了哪些结构化输出。
结果
发布和部署后,您的对话流将以 聊天部署渠道 中的 对话智能体的 形式呈现给最终用户。通过聊天智能体可观察性监控其性能、指标和用户反馈。
扩展此流程
- 为智能体提供上下文和工具:将上下文资源连接到智能体的上下文句柄,以便智能体从已编入索引的知识源而不仅仅是从模型中获取答案。将工具资源连接到智能体的工具句柄,以便智能体可以在对话轮次中执行操作,而不仅仅是响应。
- 添加并行执行分支:除了路由回“等待消息”之外,还可以添加并行分支以执行后台操作,而不会阻止对话。例如,分支可以启动人工节点以供经理批准,然后继续执行其他操作。
- 问题解决后结束聊天:在智能体上添加
resolved: true输出,该输出路由到结束执行的分支。对话正常结束,用户将看到对话已结束。
例如,使用上述功能扩展演练的流可能会带来如下所示的完整聊天体验: