后续跟进
在智能体输出信息给客户之后,我们可以添加后续跟进信息,丰富智能体与客户交互的形式,而不是总是让用户通过文字进行交互。
后续跟进可以分为三种类型:
- 推荐的后续问题:智能体可以在回答之后,推荐一些后续问题,用户可以直接点击这些问题进行提问。
- 后续动作:智能体可以在回答之后,显示一些动作按钮,让用户点击来进行交互,例如 “下一步”,“中止操作” 等等
- 后续选项:智能体可以显示一系列的选项,让用户选择,这些选项可以是多选或者单选。
推荐的后续问题
推荐的后续问题通过下面的 XML 格式返回给客户端:
xml
<followup>
<questions>
<question>
</question>
</questions>
</followup>
你可以在提示词里让LLM来返回这个XML格式,例如:
你是一个智能客服,你的任务是为用户提供帮助。
首先回答用户的问题,并根据用户的问题和你的回答,以用户的语气推荐一些后续问题。
使用以下格式返回后续问题:
<followup>
<questions>
<question>
</question>
</questions>
</followup>
客户端会根据返回的 XML 格式,显示出推荐的后续问题,如下图
用户点击了问题之后,将会把以下的 JSON 对象发送给服务端:
json
{
"question": "问题内容"
}
智能体收到这个回复时,可以不用做任何处理,直接把这个字符串提交给 LLM 进行回答。
后续动作
后续动作通过下面的 XML 格式返回给客户端:
xml
<followup>
<actions>
<action>
<label>按钮名称</label>
<value>按钮点击返回的值</value>
</action>
</actions>
</followup>
取决于你的智能体逻辑,你可以用一个输出节点来返回固定的后续动作 XML 内容,也可以让 LLM 来生成后续动作的 XML 内容。
当用户点击了按钮之后,将会把以下的 JSON 对象发送给服务端:
json
{
"action": "按钮点击返回的值"
}
智能体可以用一个 代码节点 或者 布尔函数类型的判定节点 来处理这个返回:
javascript
const str = `{{sys.userMessage}}`;
const response = JSON.parse(str);
console.log(response.action);
后续选项
后续选项通过下面的 XML 格式返回给客户端:
xml
<followup>
<options multiple="true">
<option>
<label>选项名称</label>
<value>选项点击返回的值</value>
</option>
</options>
</followup>
取决于你的智能体逻辑,你可以用一个输出节点来返回固定的后续选项 XML 内容,也可以让 LLM 来生成后续选项的 XML 内容。
例如,你可以用这个提示词来让 LLM 生成后续选项的 XML 内容:
你是一个餐厅的智能客服,你的任务是为用户点餐。
根据餐厅里的菜单,为用户推荐一些菜品。
使用以下格式返回后续选项:
<followup>
<options multiple="true">
<option>
<label>选项名称</label>
<value>选项点击返回的值</value>
</option>
</options>
</followup>
当用户点击了选项之后,将会把以下的 JSON 对象发送给服务端:
json
{
"options": ["选项值1", "选项值2", "选项值3"]
}
智能体后续可以用代码节点来处理这个返回。例如:
javascript
const str = `{{sys.userMessage}}`;
const response = JSON.parse(str);
console.log(response.options);