我们已经用对话流创建了一个配合自己的知识库,提供关于产品信息的智能客服。
我们还可以搭配数据库,让智能体更好地服务我们的用户,做一个会员服务体系,智能体可以帮我们引导用户注册和查询会员信息,用户只需要和智能体对话就能完成会员的注册服务,这个也相当于我们的留资系统,用户对话中提供的信息会被保存到数据库中,那么我们就做一个“会员服务”的智能体。
🤖创建智能体
这次我们新创建一个“会员服务”智能体,仍然将其配置为对话流模式。
然后在“编排”菜单中的“变量”选项栏,添加变量,点击右侧的“+”。

接着,我们在“编辑变量”页面增加“name”和“phone”两个变量,用以存储用户提供的姓名和电话信息,如果数据库有更多的数据记录功能,比如会员积分、性别、年龄等,可以自行添加
然后我们将下面“系统变量”中的"sys_uuid"选中
点击保存

💾创建数据库
可以看到我们的智能体编排菜单栏中出现了刚刚创建的几个变量
然后我们在“数据库”一栏中创建数据库,点击数据库一栏右侧的“+”。

点击“新建数据表”,选择“自定义数据表”
填写数据表信息,名称只能使用字母和数字,填写好了点击“确认”


在“新建数据表”页面我们先点击新增两个字段
然后一次命名为“name”和“phone”,注意,这里的命名需要与前面创建的变量名一致,数据类型选择“string”,最后的“是否必要”可以根据自己情况点选,选择,即为必要项,即创建数据必填
然后我们点击右下角的“保存”

回到“编排”菜单栏,可以看到,变量和数据库都配置好了
现在可以创建对话流了,“点击添加对话流”

💬创建对话流
为这个“会员服务”智能体创建一个对话流“huiyuanfuwu”,简单填写描述后确认

这个会员服务的智能体整体工作流是这样的

接下来就可以按照表格一个节点一个节点的配置,各节点配置如下:
节点
|
说明
|
示例
|
意图识别节点
|
![]() 意图识别节点将用户输入的内容与相应的工作流做匹配
输入为“开始”的“USER_INPUT”
选择“完整模式”,添加三个意图识别项:提供会员信息;注册为会员;查询会员信息 填写系统提示词📄点击此处复制提示词
|
![]() |
大模型节点:解析会员信息
|
![]() 将“意图识别”插件的第一个节点与这个大模型节点相连
信息处理难度不大,保证服务应答效率,选择默认的豆包大模型即可
输入为“开始”节点的“USER_INPUT”
填写系统提示词📄点击此处复制提示词
用户提示词中填入{{input}}
输出就相对复杂一些,因为大模型会帮我们处理用户发来的信息,所以我们直接用大模型处理的结果来输出,输出从用户回的信息中提取的两个变量:
name和phone,变量类型都选为String
|
![]() |
选择器:判断姓名信息
|
![]() 接下来用选择器来判断大模型处理后的用户信息
这个选择器判断用户发送的信息是否有包含名字
我们先在判断变量选择大模型的输出节点“name”
然后在左侧下拉框翻到最下面选择“不为空”
![]() 先判断“name”变量,
|
![]() |
变量赋值:姓名赋值
|
![]() 如果大模型处理后判断用户有发“name”变量,且不为空,则交由下一步赋值变量
这步简单说就是,让用户发的姓名,大模型识别为name后,让这个姓名成为“name”
所以变量值选择大模型节点输出的“name”
变量名为填name
|
![]() |
选择器:判断电话信息
|
![]() 同样用选择器来继续判断大模型处理后的用户信息
这个选择器判断用户发送的信息是否有包含电话号码
我们先在判断变量选择大模型的输出节点“phone”
然后在左侧下拉框翻到最下面选择“不为空”
|
![]() |
变量赋值:电话赋值
|
![]() 如果大模型处理后判断用户有发“name”变量,且不为空,则交由下一步赋值变量
这步简单说就是,让用户发的姓名,大模型识别为name后,让这个姓名成为“name”
变量值选择大模型节点输出的“phone”
变量名为填phone
|
![]() |
文本处理:整合会员信息
|
![]() 然后添加“文本处理”节点
将前面处理过的信息做整合
我们在输入里添加两个变量,还记得我们在创建智能体的时候添加的变量吗,这里面就用到了
在变量名String1我们选择用户变量下的“name”
在变量名String2我们选择用户变量下的“phone”
然后对两个变量做拼接,加一句话返回给用户
|
![]() |
选择器:判断是否提供姓名电话
|
![]() 意图识别节点的第二条分支关联到这个选择器
用于判断用户提供的信息是否完全
即既有姓名变量name也有电话变量phone
所以我们先新增一个条件
然后分别选择用户变量下的“name”换个“phone”
条件下拉列表选择最下边的“不为空”
![]() ![]() |
![]() |
文本处理:提供完整信息提示
|
![]() 先说选择器判断后的第二节点,即:
如果前面选择器判断“name”和“phone”不完全,则编辑一段文本发回给用户
用文本处理节点,编辑一段提示用户提供完整的姓名电话信息的话术
|
![]() |
SQL自定义节点:查询是否已有会员信息
|
![]() 如果前面“name”和“phone”都不为空,即连接到这个节点
这个节点在将用户提供的信息录入之前查询数据库是否重复注册
输入变量为系统变量里的“sys_uuid”,我们命名为uuid
数据表添加我们创建的“huiyuanxinxi”数据表
SQL的查询代码:📄点击此处复制代码
此代码作用是对数据表中输入的uuid项计数
在输出项目中,我们要添加一个子输出项,即代码里写到的entry_count项,变量类型选择int
![]() |
![]() |
选择器:是否已经注册过
|
![]() 这里对查询信息做一个判断
用到了上一步输出时添加的entry_count变量
条件选择这个变量
下拉框选择“等于”
条件写0
即查询到的变量数为0,就是没有查到有重复的uuid
![]() |
![]() |
文本处理:已是会员
|
![]() 还是先说一下选择器输出的第二个节点,即查询到的“entry_count”变量不为0,就意味着有重复的uuid提交注册申请
那么就给用户发一段已经是会员的话术
最好同样把uuid对应的姓名和电话发回给用户
所以对这个文本处理节点输入“用户变量name”和“用户变量phone”
回用户话术参考:您已是会员,注册用户名为{{String1}},注册电话为{{String2}}
这里{{String1}}和{{String2}}对应用户的姓名、电话
|
![]() |
SQL自定义节点:存储新会员信息
|
![]() 这个节点就是把用户提供的注册信息添加到我们的数据库中了
所以输入需要输入三个变量
系统给用户赋值的uuid变量:系统变量下的“sys_uuid”
用户变量下的“name”
用户变量下的“phone”
数据表同样添加我们创建的huiyuanxinxi
SQL语句:📄点击此处复制代码
这里代码的意思是在数据库中同uuid的一行中,新增填入用户的姓名和电话
|
![]() |
文本处理:会员注册成功
|
![]() 将用户提供的信息存入数据库中后,回复给用户的话术
为了体现定制化,我们可以称呼用户他输入的姓名
所以我们输入用户变量下的“name”
回复中插入用户名字:恭喜{{String1}},您已成为我们的会员!
|
![]() |
SQL自定义:查询会员信息
|
![]() 意图识别第三个节点:查询会员信息的节点我们链接到这个查询数据
通过用户的uuid来匹配用户的数据,把姓名电话或者更多的信息,比如会员的积分返回给用户,这样用户能随时查询看到自己的积分
数据表我们添加huiyuanxinxi
添加SQL语句:📄点击此处复制代码
输出添加三个子变量,即查询的name,phone,points
![]() |
![]() |
选择器:判断是否查询到
|
![]() 判断是否有查询到name或phone
|
![]() |
文本处理:查询会员信息
|
![]() 如果查询到了,则连选择器第一个节点
则整合会员信息,统一发送给用户
整合查询到的用户的姓名和电话,对应变量名{{String1}}和{{String2}}
返回给用户的话术:
查询到的信息如下:-姓名:{{String1}}
-电话:{{String2}}
-积分:{{String3}}
|
|
文本处理:查询信息有误
|
如果未查询到,则连第二个节点
返回给用户一段错误提示的话术
|
![]() |
文字处理:无法识别问题
|
![]() 意图识别的最后一个节点我们做个兜底
会员服务相关内容之外的,无法识别意图的用户发送的信息,用这个回复
输入一段提示用户发送信息错误的提示:
输入错误,请重新输入
|
![]() |
变量聚合
|
![]() 这个节点负责把所有分支的文本处理聚合到一起,把第一个非空的值进行输出
依次增加选择所有关联节点
|
![]() |
结束
|
![]() 输出内容选择变量聚合的内容即可
回答内容填{{output}}
|
![]() |
以上就是会员服务的对话流用到的所有节点及设置,为了完整展示,再配一个视频说明各节点如何连接及选择输入输出值



OK,这样一个可以提供会员服务的基于对话流的智能体就做好了
大家也可以通过意图识别提示词的优化,将会员服务智能体与智能客服智能体相结合
做一个全方位提供会员服务的综合智能体