Skip to content

后续跟进

在智能体输出信息给客户之后,我们可以添加后续跟进信息,丰富智能体与客户交互的形式,而不是总是让用户通过文字进行交互。

后续跟进可以分为三种类型:

  • 推荐的后续问题:智能体可以在回答之后,推荐一些后续问题,用户可以直接点击这些问题进行提问。
  • 后续动作:智能体可以在回答之后,显示一些动作按钮,让用户点击来进行交互,例如 “下一步”,“中止操作” 等等
  • 后续选项:智能体可以显示一系列的选项,让用户选择,这些选项可以是多选或者单选。

推荐的后续问题

推荐的后续问题通过下面的 XML 格式返回给客户端:

xml
<followup>
    <questions>
        <question>
        </question>        
    </questions>
</followup>

你可以在提示词里让LLM来返回这个XML格式,例如:

你是一个智能客服,你的任务是为用户提供帮助。
首先回答用户的问题,并根据用户的问题和你的回答,以用户的语气推荐一些后续问题。
使用以下格式返回后续问题:
<followup>
    <questions>
        <question>
        </question>
    </questions>
</followup>

客户端会根据返回的 XML 格式,显示出推荐的后续问题,如下图

alt text

用户点击了问题之后,将会把以下的 JSON 对象发送给服务端:

json
{    
    "question": "问题内容"
}

智能体收到这个回复时,可以不用做任何处理,直接把这个字符串提交给 LLM 进行回答。

后续动作

后续动作通过下面的 XML 格式返回给客户端:

xml
<followup>
    <actions>
        <action>
            <label>按钮名称</label>
            <value>按钮点击返回的值</value>
        </action>
    </actions>
</followup>

取决于你的智能体逻辑,你可以用一个输出节点来返回固定的后续动作 XML 内容,也可以让 LLM 来生成后续动作的 XML 内容。

alt text 当用户点击了按钮之后,将会把以下的 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"]
}

alt text

智能体后续可以用代码节点来处理这个返回。例如:

javascript
const str = `{{sys.userMessage}}`;
const response = JSON.parse(str);
console.log(response.options);

Last updated: