配置脚本化 AI 代理的履行
在 AI 代理的上下文中,实现是指执行涉及与外部系统交互以通过 API 检索、作或存储数据的任务。 本文概述了为跟踪包创建的示例代理。 您可以在为数字和语音交互创建新的 AI 代理时使用此代理模板。
对于数字渠道,必须通过用于部署 AI 代理的连接流来协调履行。 以包跟踪代理为例,您可以在创建新的脚本化代理时从模板导入该代理,在创建新的 Webex Connect 流时也有空导入该流。 除了履行之外,此连接流还根据用户的上一个意图将用户路由到不同的代理队列。
-
完成脚本代理设置后,确定需要满足的响应。
在示例代理中,“trackPackageResponse”需要履行。
-
在这些模板中,配置在履行时向用户显示的“等待响应”。
在此示例中,为“trackPackageResponse”配置了保持响应。
-
在流中,使用数据解析器 节点从 AI 代理的响应中解析代理会话元数据(输出变量),以获取响应名称。
您可以通过选择适当的事务并从下载的文件中选取“createdDf”键的值来从会话下载事务信息,从而获取数据解析器节点的示例输入。
-
如果您希望在代理切换时执行基于意图的路由,则可以在同一步骤中获取上一个活动意图的值。
-
如果您不希望下载和解析示例 JSON,可以使用
\$.model_state.template_key
作为响应名称,使用 \$.previous_intent_model_state.intent.name
作为先前的意图名称。在我们的示例中,我们对这些值使用流变量“responseKey”和“previousIntent”。
-
使用分支 节点检查响应是否需要满足。
-
对于不需要满足的响应,分支节点通过“以上都不是”节点结果退出。
-
在我们的示例中,由于需要满足“trackPackageResponse”,请检查分支节点中的“responseKey”的值。
-
-
对于需要满足的响应,请使用 HTTP 节点进行外部 API 调用。
-
您可以通过导入示例并获取输出变量来解析同一节点中 HTTP 节点响应中的有用信息。
-
在此示例中,我们获得包裹的“估计交付”和“状态”。
-
-
使用评估 节点处理 履行响应以制定代理响应。
在我们的示例中,我们初始化“fulfilmentResp”变量,并根据包裹状态和预计送达量设置其值。
-
向用户发送履行响应并将其追加到对话中。
-
循环返回到 接收 节点,以保持用户和 AI 代理之间的对话。
基于意图的代理切换
在代理移交时,检查通过队列任务 节点之前的 分支 节点的 最后一个活动意图。
检查“previousIntent”的值,并根据您的要求分支到不同的队列。 在此示例中,如果客户在“跟踪包裹”意图之后请求代理交接,则将其路由到“专家”队列。 所有其他值都会被转接至“聊天”队列。
对于语音通道,必须通过自定义事件将对话控制权交还给语音流,然后使用履行数据恢复 AI 代理对话,从而协调履行。 为此,重用了用于跟踪包的示例脚本代理。 该流在 Webex Contact Center 流设计器的“从模板导入”中有空。 除了履行之外,此流还根据用户的上一个意图将用户路由到不同的代理队列。
分步指南:履行
-
添加“自定义事件”响应类型。
-
找到要为其添加自定义事件的模板密钥。 在这种情况下,请使用“trackPackageResponse”模板密钥。
-
将“自定义事件”响应类型添加到模板键。
-
-
配置自定义事件响应。
-
添加事件名称和事件有效负载:
-
对于自定义事件响应,请提供事件名称。在本例中,为“TrackPack_Exit”。
-
添加事件有效负载,其中包含将传递给流的数据。 这必须是 JSON 格式。 在此示例中,
{“PackageNumber”:“${entity.PackageNum}“}
.
-
-
-
使用流中的事件有效负载。
- 访问 虚拟代理 v2 活动元数据:
在语音流配置中,添加的事件有效负载将作为虚拟代理 V2 活动元数据的一部分 有空。
创建流变量 PackageNum。
使用 Parse 活动选择 虚拟代理 V2 活动元数据作为输入变量。
将输出变量设置为 'PackageNum',将其路径表达式设置为 '$。PackageNum'(基于在代理响应中配置的事件有效负载的结构)。
- 使用 HTTP 活动中 的元数据:
使用流中已处理元数据中的“PackageNum”变量跟踪包。
导入附加的流以查找 HTTP 活动的详细信息 。
定义流变量 'estimatedDelivery' 并将其设置为 '$.estimated_delivery' 和另一个流变量 'packStatus' 并将其设置为 $.status。
- 基于 HTTP 活动添加条件:
向流添加新的条件 活动。 此活动用于检查 HTTP 活动的响应 (包是否存在及其状态)。
在此示例中,表达式
{{ HTTPRequest_8l3.httpStatusCode == 404 }}
用于检查是否未找到包。
- 访问 虚拟代理 v2 活动元数据:
- 添加 基于条件的设置变量 活动:
对于包不存在的条件:
- 在找不到文件包的分支下,添加“ 设置变量 ”活动。
- 将 packageResp(另一个流变量)设置为:
未找到包含这些详细信息的软件包。
对于软件包存在的条件:
- 在找到包的分支(即 HTTP 状态代码不等于 404)下,添加另一个 “设置变量 ”活动。
将 packageResp(另一个流变量)设置为:
您的包裹已被提取。 它将由 {{estimatedDelivery}} 交付。
再添加两个设置变量活动以配置事件名称和事件数据。 此数据将传递到虚拟代理 V2 活动。
创建流变量 event_name 和 event_data。
将 event_name 设置为 TrackPack_Entry,将 event_data 设置为 {'packageResp':'{{packageResp}}' | json}。
-
循环返回到 虚拟代理 V2 活动:
- 配置虚拟代理 V2 活动:
将最终 的“设置变量 ”活动连接到虚拟代理 V2 活动。
将活动名称设置为 {{event_name}}。
将事件数据设置为 {{event_data}}。
- 配置虚拟代理 V2 活动:
-
处理虚拟代理中的传入事件:
-
添加新模板密钥:
-
转到左侧面板上的响应 Tab。
-
添加一个名为 packageStatus 的新模板密钥。
-
-
配置传入事件:
-
在语音通道下,将传入事件设置为“TrackPack_Entry”(或发送到流中的虚拟代理 V2 活动的任何事件)。
-
-
配置响应:
-
将响应设置为:<speak> <say-as interpret-as=“date”> ${eventStore.packageResp} </say-as>。 我能帮你做点别的吗?</说话>
此响应使用流有效负载中发送的变量。 作为事件数据的一部分发送的任何变量都有空供开发人员作为 ${eventStore.<variable_name>} 访问。
这也使用 SSML 标记。 特别是,SSML 标记允许您控制文本转语音引擎如何解释和朗读文本。 此标记可用于指定数字、日期、时间、地址和其他文本的发音方式。 在这里,我们将其用于约会。
-
-
基于先前意图的代理路由
-
如果虚拟代理 V2 活动通过“升级”输出退出, 请使用 Parse 活动从代理元数据中获取以前的意图。
-
使用 Case 活动检查确定排队逻辑的先前意图的不同值。 在此示例中,我们检查之前的意图是否为“跟踪包”。
-
将案例 活动输出附加到相应的队列联系边缘。