任务式对话
名词解释
AI Agent:Agent = LLM + Planning 计划+ Tool use 执行 + Feedback 纠正偏差。在传统大语言模型的基础上,Agent不仅仅停留在和大模型的聊天对话,其可以借助外部工具直接帮助我们完成某些任务。在百度客悦智能客服平台中,将采用LLM+NLP双引擎结合方式,搭建AI Agent。
任务式对话:在百度客悦智能客服平台中,可通过任务式对话,配置 Agent 的核心对话能力;通过画布能力界面,将对话配置图形化,降低用户对话配置成本。
步骤:步骤是任务对话流程画布中的最小单元,步骤类型分为「信息收集」、「信息表达」、「逻辑」和「动作」,对应 Agent 的听、说、想、做,将这些步骤拖入画布进行组织和连线,就可以配置出一个任务对话流程。
意图:代表C端用户的对话意图,一般为业务办理需求,比如订酒店、查话费等,在对话过程中识别到用户的相应意图后,可以按照配置的流程,引导用户办理相关业务。
实体:实体是指在业务办理过程中,需要收集C端用户的一些信息,比如姓名、手机号、酒店名称等,这些用户信息就是实体,收集到的实体数据可以在一次对话期间一直保存,被对话流程随时引用,也可以通过接口传输到外部系统。
变量:变量用来临时保存数据,保存的数据仅在一次对话期间有效,变量可以被随时引用,系统预置了一些变量,用户也可以自定义变量。
功能概述
百度客悦智能客服平台,提供全新画布体验的任务式对话搭建功能,并将大模型能力深度应用到对话流程,给您带来低门槛的任务式对话搭建体验以及更顺滑的用户对话体验,让您轻松快捷地创建自己的AI Agent。主要包括如下功能特征:
1、流程画布
-
用户可通过左侧导航栏「流程画布」进入流程画布的配置界面,其中包含以下可配置区域:
- 主题配置:您可以将不同的业务场景划分到不同的主题,每个主题以不同的用户意图作为起始步骤;
- 画布区:您可以拖动左侧的步骤进入画布,在画布右侧的配置区完成选中步骤的具体配置,通过排序和连线的方式设计任务对话流程。步骤在画布中可以单独或排列组合成节点;
- 意图、实体、变量配置:意图、实体和变量是创建AI Agent的关键因素,您可以在产品文档中查看具体介绍和使用方法;
- 测试和发布:AI Agent搭建完毕后,您可以点击这里进行测试和发布;
- 为了满足多用户同时配置一个Agent的不同画布的场景,多个用户可以同时编辑一个Agent下面的不同主题(子主题),针对同一主题(子主题),仅支持一个用户编辑,其他用户可实时查看该用户的最新编辑状态
- 在任务对话的画布中,支持撤销和恢复。撤销快捷键为control+Z(Windows),command+Z(mac);恢复快捷键control+shift+Z(Windows),command+shift+Z(mac)
-
在任务对话的画布中,支持鼠标的框选模式和抓手模式的切换,如下:
- 框选模式:选择节点操作是单击或长按框选;移动画布操作是 [Space]+长按移动后者双指移动(触摸板);
- 抓手模式:移动画布操作为长按移动;选择节点操作为:[Shift]+长按框选;缩放画布操作为滚动鼠标滑轮缩放。
- 在任务对话的画布中,支持搜索该主题的节点或步骤中的文案,选择后可定位到该节点或步骤。
2、主题配置
- 一个Agent可以配置多个主题和子主题,每个主题是个单独的画布,您可以将不同的业务场景划分到不同的主题,以便于您清晰的配置和管理多场景会话流程
- 默认有一个起始主题,该主题下默认有一个开始步骤,为该Agent的开始
- 支持增加一级主题和子主题,增加的主题均自带一个意图步骤,可通过配置「意图」进入该主题流程
3、步骤
- 步骤是任务对话流程画布中的最小单元,步骤类型分为「信息收集」、「信息表达」、「逻辑」和「动作」,对应 Agent 的听、说、想、做,将这些步骤拖入画布进行组织和连线,就可以配置出一个任务对话流程,步骤概述如下表:
步骤名称 | 步骤说明 |
---|---|
意图 | 在对话中识别到相应意图后,驱动后续步骤。 |
信息表达—文本回复 | Agent按照配置的文本进行回复。 |
信息表达—大模型回复 | Agent按照大模型生成的内容进行回复。 |
信息收集—收集用户回复 | Agent停下来收听用户完整的回复内容,赋值到变量。 |
信息收集—收集槽位实体 | Agent会与用户进行多轮对话,从用户回复的内容中,抽取实体值。 |
逻辑判断—条件判断 | 配置IF条件,分流后续步骤。 |
动作—普通变量赋值 | 按照配置对变量进行赋值。 |
动作—大模型变量赋值 | 在该步骤用大模型的生成和推理能力,将大模型的输出结果赋值到选定的变量。 |
动作—API调用 | 调用外部API。 |
3.1 意图步骤
- 意图步骤一般是一个场景的起点,为了便于配置和管理,建议配置到单独的主题(单独的画布),当用户在对话中的表述命中了相应意图后,会驱动后续配置的步骤
- 意图步骤的配置项为选择触发的意图,系统预置了丰富的常用意图,如果没有可选的意图,可以新建意图
- 新建意图需要填写意图名称和意图例句(意图例句越能充分覆盖真实的多样化用户表述,则意图识别的效果会越好);支持大模型生成意图例句(注意会产生大模型tokens消耗),需要先填写意图名称和至少一条意图例句
- 支持创建意图模板,在项目冷启动时,可以通过意图模板来批量匹配用户query,以解决项目运行初期由于语料不足导致的泛化较弱问题以及对于含有多实体的复杂长难句无法准确识别意图的问题。在意图模板输入框,可以通过一组规则表达式(可以理解为简化版的正则表达式),来约定用户输入的匹配规则,一旦满足表达式要求即可触发该意图。意图模板的使用规则如下,以下写法可以进行任意组合:
-
意图模板的命中规则为用户表述必须与模板完全匹配,具体说明如下:
- 对于模版表达式(除中英文、数字、下划线外,含有其他字符),用户语句中必须完全匹配模版表达式,首位及句中均不能存在多余信息
- 在「实体引用」或「词库引用」时,用户需按照以下步骤输入[{@实体]
-
例如:当模版为“[{@卡类型]额度”时,(卡类型包含信用卡、借记卡等实体值)
以下语句均可命中该模版: 以下语句不可命中该模版: 信用卡额度 查一下信用卡额度 借记卡额度 借记卡额度多少啊 查查信用卡额度可以吗
3.2 文本回复步骤
-
该步骤为按照配置的文本进行用户回复。
- 支持选择文本类型,包括纯文本和富文本
- 如选择纯文本,可以手动填写文本内容(可引用变量和实体,{&变量}或 {@实体}),可编辑多个文本(对话中会随机选择其中一个进行回复)
- 如选择富文本,可用如下富文本编辑器进行编辑
3.3 大模型回复步骤
- 该步骤是按照大模型生成的内容进行用户回复(注意会产生大模型tokens消耗)
- 大模型回复的数据依据可以是大模型通识或知识库,支持在本页面「步骤配置区」配置
-
如数据来源依据选择大模型通识,则大模型完全基于自身的通识进行回复,可以选择三种给大模型的输入:
- 包括仅prompt、仅记忆(前十轮对话记录)、prompt+记忆(前十轮对话记录),prompt支持引用{&变量}和{@实体)
- 支持对大模型进行参数配置,包括temperature和人设,temperature是一个控制模型生成文本多样性的参数。较高的温度值(例如1.0)会使生成的文本更加随机和多样化,而较低的值(例如0.2)会使生成的文本更加确定和保守)和人设
- 如数据来源依据选择知识库,则大模型完全基于知识库内容进行回复,可以选择知识库范围,填写对知识库的提问,注意不是填写prompt。
3.4 收集用户回复步骤
- 该步骤会让Agent停下来收听用户全部回复内容,并赋值到变量,默认为{&last_user_response}变量,支持修改变量和新增变量
3.5 收集槽位实体步骤
- 该步骤会让Agent与用户进行多轮对话,按照配置的实体顺序询问用户,从用户回复的内容中,抽取实体值。 配置的步骤为先选择需要收集的实体,编写实体引导话术(可用大模型生成,会产生大模型tokens消耗)。
-
实体可以从已有实体中选择,系统预置了丰富的实体,如果没有可用的实体,也可以创建新实体
- 创建新实体,需要填写实体名称,选择实体类型,自定义类型可填写实体候选值,让用户只能从候选值中选择,也可以不填候选值,大模型会根据实体名称进行抽取,其他的类型为系统预置的实体类型,无需填写实体候选值;
- 实体候选值支持大模型生成(注意会产生大模型tokens消耗),但需要先填入实体名称和至少一个实体候选值;
- 实体候选值支持填写同义词,支持大模型生成同义词(注意会产生大模型tokens消耗),但需要先填入实体名称和实体候选值;
- 实体选择完毕后,会自动生成实体引导话术,可以根据业务需要进行修改
- 支持对实体提出限制要求,例如针对时间实体的限制要求可以为『必须是晚于当前的时间』;
- 支持开启『收集结果确认』,在完成全部槽位实体收集后,将收集结果输出给用户进行确认。默认关闭。
3.6 条件判断步骤
- 在该步骤配置IF条件,分流后续步骤;
- 支持对变量值和实体值的条件判断(有值、空值、等于、不等于、大于、小于、大于等于、小于等于、属于集合、不属于集合、包含、不包含),支持and和or的组合条件;
- 在判断分支中默认有『其他』,在最后一位,为上面条件之外的情况。
3.7 普通变量赋值步骤
- 在该步骤按照具体的配置对变量进行赋值。变量选择支持已有变量也支持添加新变量,赋值支持直接填写(格式要求小写引号'具体值'),可引用{&变量}
3.8 大模型变量赋值步骤
- 在该步骤用大模型的生成和推理能力,将大模型的输出结果赋值到选定的变量。注意会产生大模型tokens消耗
-
大模型变量赋值的数据依据可以是「大模型通识」或「知识库」
- 如数据来源依据选择「大模型通识」,则大模型完全基于自身的通识进行变量赋值,可以选择三种给大模型的输入,包括仅prompt、仅记忆(前十轮对话记录)、prompt+记忆(前十轮对话记录),prompt支持引用{&变量}和{@实体);
- 支持对大模型进行参数配置,包括temperature和人设,temperature是一个控制模型生成文本多样性的参数;较高的温度值(例如1.0)会使生成的文本更加随机和多样化,而较低的值(例如0.2)会使生成的文本更加确定和保守)和人设。选定变量,将大模型的输出结果赋值到该变量;
- 如数据来源依据选择知识库,则大模型完全基于知识库内容进行回复,将回复的内容赋值到变量,可以选择知识库范围,填写对知识库的提问,注意不是填写prompt。
3.9 API调用步骤
- 在该步骤进行外部API调用
- 支持GET、POST,也支持调用预览,该步骤自带API调用成功和失败的连线点,可分流到不同的步骤
-
接口返回数据仅支持json数据格式,可根据对应的节点路径获取对应的元素并赋值给变量
- 举例如下返回接口,想要将如想将phone的值赋值给变量,可以输入data.phone;
- 不支持赋值对象类型,比如直接输入data会导致赋值失败;
{
"code": 200,
"msg": "OK",
"time": 1703079765227,
"data": {
"phone": 1234
}
}
4、意图配置
4.1 意图管理
-
在百度客悦智能对话平台中,意图代表C端用户的对话意图,一般为业务办理需求,比如订酒店、查话费等,在对话过程中识别到用户的相应意图后,可以按照配置的流程,引导用户办理相关业务;系统已经预置了丰富的常用意图,同时支持根据特殊业务场景,新建意图,意图的内部逻辑如下:
- 为了提高意图识别效果,同时支持大模型和小模型意图识别;注意意图名称和意图描述对大模型的意图识别效果影响较大,因此务必准确填写。
- 支持意图澄清,即用户表述内容可模糊召回单个或多个意图,大模型会输出一句澄清话术,让用户明确是哪个意图;
- 支持多意图,即用户表述内容可召回多个意图,则按照顺序先进入第一个意图流程,结束后再进入第二个意图流程;
- 为了便于对意图识别的干预,支持添加意图负例,如果用户表述命中某个意图的负例,则不会召回该意图;
- 新建意图需要填写意图名称和意图例句(意图例句越能充分覆盖真实的多样化用户表述,则意图识别的效果会越好)。支持大模型生成意图例句(注意会产生大模型tokens消耗),需要先填写意图名称和至少一条意图例句
-
意图导入导出:
-
点击导入后,如下图,按照模板填入数据后,即可上传导入。可在任务中心查看导入进度状态。
-
点击导出后如下,点击确定后,可在任务中心查看导出进度状态,成功后可下载文件。
-
4.2 意图模板
- 支持创建意图模板,在项目冷启动时,可以通过意图模板来批量匹配用户query,以解决项目运行初期由于语料不足导致的泛化较弱问题以及对于含有多实体的复杂长难句无法准确识别意图的问题。在意图模板输入框,可以通过一组规则表达式(可以理解为简化版的正则表达式),来约定用户输入的匹配规则,一旦满足表达式要求即可触发该意图。意图模板的使用规则如下,以下写法可以进行任意组合:
-
意图模板的命中规则为用户表述必须与模板完全匹配,具体说明如下:
- 对于模版表达式(除中英文、数字、下划线外,含有其他字符),用户语句中必须完全匹配模版表达式,首位及句中均不能存在多余信息
- 在「实体引用」或「词库引用」时,用户需按照以下步骤输入[{@实体]
-
例如:当模版为“[{@卡类型]额度”时,(卡类型包含信用卡、借记卡等实体值)
以下语句均可命中该模版: 以下语句不可命中该模版: 信用卡额度 查一下信用卡额度 借记卡额度 借记卡额度多少啊 查查信用卡额度可以吗
- 支持小模型意图识别训练,训练数据为意图管理中维护的意图及意图例句,平台会根据在用户点击Agent测试时自动检测意图数据是否全部训练完成,如果没有,则会自动触发训练。用户可以在意图管理页面手动发起意图训练
5、实体配置
- 在百度客悦智能对话平台中,实体通常指在业务办理过程中,需要收集C端用户的一些信息,比如姓名、手机号、酒店名称等,这些用户信息就是实体,收集到的实体数据可以在一次对话期间一直保存,被对话流程随时引用,也可以通过接口传输到外部系统
- 系统预置了丰富的实体,具体如下
预置实体 | 输入示例 | 输出示例 |
---|---|---|
数字编号 | 023567,零23五67(适用于订单编号、客户编号等信息) | 023567 |
数值 | 1,一个,一(适用于人数、天数等数值信息) | 1 |
人名 | 贝克汉姆,姚明 | 贝克汉姆 |
身份证号 | 120101200001012345,12010120000101234x | 120101200001012000 |
手机号码 | 13333333333,壹3333333333 | 13333333333 |
电子邮箱 | 11232@baidu.com | 11232@baidu.com |
851960947 | 851960947 | |
IP | 10.10.2.3 | 10.10.2.3 |
URL | https://www.baidu.com/ | https://www.baidu.com/ |
金额范围 | 五六百,4000到5000,1万左右 | 500.00元 ~ 600.00元;4000.00元 ~ 5000.00元;8000.00元 ~ 12000.00元; |
时间 | 2017-10-01 10:22:30,下周五下午三点,明天上午九点半 | 2017-10-01 10:22:30 |
时间范围 | 2018年1月1日到2018-10-01,昨天到前天,2019年8月10日七点50分到2019年10月8日 | 2018-01-01 00:00:00 ~ 2018-10-01 23:59:59 |
日期集合 | 2018年2月到2018年3月每月5号6号,11月3号4号5号 | 2018-02-05,2018-02-06,2018-03-05,2018-03-06 |
日期 | 2017-10-01,下周五,明天,后天上午,明年五月一号 | 2017-10-01 |
月 | 2017年11月,下个月,明年二月,上上个月 | 2017-11 |
年 | 2017年,去年,明年,前年,2018年 | 2017 |
地点 | 颐和园,中关村,海淀,北京,中国 | 颐和园 |
国家 | 中国 | 中国 |
省份 | 辽宁 | 辽宁省 |
城市 | 北京 | 北京市 |
区县 | 海淀 | 北京市海淀区 |
详细地址 | 北京市海淀区西北旺东路10号院百度科技园3号楼 | 北京市海淀区西北旺东路10号院百度科技园3号楼 |
航班号 | HU7611,CZ3129,HU7605 | HU7611 |
航班座位号 | A11,13B | A11 |
机场地点 | 北京,阿什哈巴德,大马士革 | 北京市 |
机场 | 北京首都机场 | 北京首都国际机场 |
-
系统同时支持根据业务场景需要创建新实体,需要填写实体名称,选择实体类型,自定义类型可填写实体候选值,让用户只能从候选值中选择,也可以不填候选值,大模型会根据实体名称进行抽取,其他的类型为系统预置的实体类型,无需填写实体候选值。
- 实体候选值支持大模型生成(注意会产生大模型tokens消耗),但需要先填入实体名称和至少一个实体候选值。实体候选值支持填写同义词,支持大模型生成同义词(注意会产生大模型tokens消耗),但需要先填入实体名称和实体候选值。
-
支持实体的导入导出,导入入口如下:
-
点击导入,进入导入弹窗如下,按照模板填入数据后,即可上传导入。可在任务中心查看导入进度状态。
-
点击导出后的弹窗如下,确定后,可在任务中心查看导出进度状态,完成后可以下载文件。
-
6、变量配置
-
在百度客悦智能对话平台中,变量是用来临时保存数据,保存的数据仅在一次对话期间有效,变量可以被随时引用,系统预置了一些变量,用户也可以自定义新增变量。
- 系统预置变量如下:
预置的变量名称 | 描述 |
---|---|
last_response | Agent的最近一次回复内容 |
last_user_response | C端用户的最近一次回复内容 |
LLM_rewrite_query | 大模型改写后的用户提问 |
last_intent | C端用户的最近一次意图 |
last_task_prompt | Agent在任务对话的最近一次回复内容 |
time | 获取当前时间,格式HH:mm:ss |
date | 获取当前日期,格式YYYY-MM-DD |
week | 获取当前是星期几,格式为阿拉伯数字 |
- 新建变量:点击新建变量如下,填入变量名称和描述后,点击应用及创建成功。
-
变量导入导出:
-
点击导入后如下,按照模板格式填入数据后,上传文件,点击确定后,可在任务中心查看导入进度状态。
-
点击导出后如下,点击确定后,可在任务中心查看导出进度状态,成功后可下载文件。
-