ai-robot-core/docs/script-flow-usage.md

17 KiB
Raw Permalink Blame History

话术流程管理使用指南

1. 概述

话术流程Script Flow是 AI 中台的多轮对话引导系统,用于按照预定义的步骤引导用户完成信息收集、问题诊断或业务流程。它通过状态机机制实现结构化的对话流程控制。

1.1 核心特性

  • 多步骤编排:支持创建包含多个步骤的对话流程
  • 拖拽排序:可视化拖拽调整步骤顺序
  • 等待输入控制:每个步骤可配置是否等待用户回复
  • 超时处理:支持超时重复、跳过或转人工
  • 变量占位符:话术内容支持动态变量替换
  • 流程预览:可视化预览流程执行效果
  • 意图触发:通过意图规则自动触发流程
  • 状态管理:自动跟踪流程执行进度

1.2 典型应用场景

场景 说明 示例
订单处理 收集订单信息并确认 收集收货地址 → 确认商品 → 选择支付方式 → 确认下单
退货流程 引导用户完成退货申请 确认订单号 → 选择退货原因 → 上传凭证 → 提交申请
问题诊断 逐步排查用户问题 确认设备型号 → 检查网络连接 → 重启设备 → 测试结果
信息采集 收集用户需求或反馈 询问需求类型 → 收集详细描述 → 确认联系方式 → 提交工单
预约服务 引导用户完成预约 选择服务类型 → 选择时间 → 填写联系方式 → 确认预约

2. 功能介绍

2.1 流程列表页面

访问路径AI 中台管理后台 → 智能路由 → 话术流程管理

页面功能

  • 查看所有话术流程列表
  • 显示流程名称、描述、步骤数、关联规则数、状态、更新时间
  • 快速启用/禁用流程
  • 创建、编辑、预览、删除流程

列表字段说明

字段 说明
流程名称 流程的唯一标识名称
描述 流程的用途说明(可选)
步骤数 流程包含的步骤总数
关联规则 触发该流程的意图规则数量
状态 启用/禁用开关
更新时间 最后修改时间

2.2 流程编辑器

核心组件

  1. 基本信息区:配置流程名称、描述、启用状态
  2. 步骤编辑区:可视化编辑流程步骤
  3. 拖拽排序:通过拖拽图标调整步骤顺序
  4. 步骤配置:为每个步骤配置详细参数

2.3 流程预览器

功能

  • 时间轴可视化展示流程步骤
  • 模拟流程执行过程
  • 高亮显示当前步骤
  • 查看步骤配置详情
  • 支持上一步/下一步/重置操作

3. 使用步骤

3.1 创建话术流程

步骤 1进入创建页面

  1. 点击页面右上角的 "新建流程" 按钮
  2. 弹出流程编辑对话框

步骤 2填写基本信息

流程名称:退货流程引导        (必填,建议简洁明确)
描述:引导用户完成退货申请    (可选,说明流程用途)
启用状态:✓ 启用              (默认启用)

步骤 3添加流程步骤

点击 "添加步骤" 按钮,配置每个步骤:

步骤 1 配置示例

话术内容:您好,我来帮您处理退货申请。请提供您的订单号。
等待输入:✓ 开启
超时时间60 秒
超时动作:重复当前步骤

步骤 2 配置示例

话术内容:收到订单号 {{order_id}},请问您的退货原因是什么?
1. 商品质量问题
2. 不符合预期
3. 其他原因
等待输入:✓ 开启
超时时间120 秒
超时动作:转人工

步骤 3 配置示例

话术内容:好的,已记录您的退货原因。请上传商品照片或相关凭证。
等待输入:✓ 开启
超时时间180 秒
超时动作:跳过进入下一步

步骤 4 配置示例

话术内容:感谢您的配合!退货申请已提交,工单号为 {{ticket_id}}。我们将在 1-3 个工作日内处理,请保持手机畅通。
等待输入:✗ 关闭

步骤 4调整步骤顺序

  • 鼠标悬停在步骤左侧的 拖拽图标
  • 按住鼠标左键拖动步骤到目标位置
  • 释放鼠标完成排序

步骤 5保存流程

  • 点击 "创建" 按钮保存流程
  • 系统自动分配流程 ID
  • 返回流程列表页面

3.2 编辑话术流程

  1. 在流程列表中找到目标流程
  2. 点击 "编辑" 按钮
  3. 修改流程信息或步骤配置
  4. 点击 "保存" 按钮

注意事项

  • 修改后立即生效,影响正在执行的流程
  • 建议在低峰期修改重要流程
  • 修改前可先禁用流程,测试无误后再启用

3.3 预览话术流程

  1. 在流程列表中找到目标流程
  2. 点击 "预览" 按钮
  3. 在右侧抽屉中查看流程时间轴
  4. 使用 上一步/下一步 按钮模拟流程执行
  5. 查看每个步骤的配置详情

预览功能

  • 时间轴可视化展示所有步骤
  • 当前步骤高亮显示(蓝色边框)
  • 已完成步骤显示为绿色
  • 未执行步骤显示为灰色
  • 显示步骤的等待输入、超时配置

3.4 删除话术流程

  1. 在流程列表中找到目标流程
  2. 点击 "删除" 按钮
  3. 确认删除操作

警告

  • 删除操作不可恢复
  • 如果有意图规则关联该流程,删除后规则将失效
  • 建议先禁用流程观察一段时间,确认无影响后再删除

3.5 启用/禁用流程

方式 1列表页快速切换

  • 直接点击流程列表中的 状态开关
  • 立即生效

方式 2编辑页面修改

  • 进入流程编辑页面
  • 修改 启用状态 开关
  • 保存后生效

禁用效果

  • 禁用后,意图规则无法触发该流程
  • 正在执行的流程实例不受影响,继续执行完成
  • 流程数据保留,可随时重新启用

4. 步骤配置详解

4.1 话术内容

功能:定义该步骤向用户展示的话术文本。

支持变量占位符

语法:{{variable_name}}

示例:
- 您的订单号是 {{order_id}}
- 尊敬的 {{customer_name}},您好!
- 当前时间:{{current_time}}
- 渠道:{{channel_type}}

变量来源

  • 会话上下文变量
  • 用户输入提取的信息
  • 系统内置变量(时间、渠道等)

最佳实践

  • 话术简洁明了,避免过长
  • 使用礼貌用语,保持专业
  • 明确告知用户需要做什么
  • 提供选项时使用编号列表

4.2 等待用户输入

功能:控制该步骤是否需要等待用户回复。

开启(✓)

  • 系统发送话术后,等待用户回复
  • 收到用户回复后,根据条件推进到下一步
  • 如果超时未回复,执行超时动作

关闭(✗)

  • 系统发送话术后,立即推进到下一步
  • 适用于纯信息告知的步骤(如确认信息、结束语)

使用场景

  • ✓ 需要收集信息:订单号、退货原因、联系方式
  • ✓ 需要用户确认:是/否、选择选项
  • ✗ 纯信息展示:流程说明、结果通知、感谢语

4.3 超时时间

功能:设置等待用户回复的最长时间(单位:秒)。

取值范围5 - 300 秒

推荐配置

  • 简单问题(如是/否30-60 秒
  • 需要查找信息如订单号60-120 秒
  • 需要操作如上传图片120-180 秒
  • 复杂问题如详细描述180-300 秒

注意事项

  • 超时时间过短:用户体验差,容易误触发超时
  • 超时时间过长:流程卡住时间长,影响效率
  • 根据实际业务场景调整

4.4 超时动作

功能:定义超时后的处理策略。

选项 1重复当前步骤

行为:重新发送当前步骤的话术,再次等待用户回复。

适用场景

  • 用户可能暂时离开,需要提醒
  • 问题简单,用户可能忘记回复
  • 重要信息收集,不能跳过

示例话术

首次:请提供您的订单号。
重复:您还在吗?请提供您的订单号,以便我帮您处理。

选项 2跳过进入下一步

行为:跳过当前步骤,直接进入下一步。

适用场景

  • 可选信息收集(如备注、补充说明)
  • 有默认值或兜底方案
  • 不影响流程继续执行

注意事项

  • 确保下一步不依赖当前步骤的输入
  • 在后续步骤中处理缺失信息的情况

选项 3转人工

行为:结束流程,将会话转接到人工客服。

适用场景

  • 关键信息收集失败
  • 用户长时间无响应
  • 流程无法继续执行

效果

  • 设置 shouldTransfer=true
  • 返回转人工提示语
  • 流程实例标记为"已完成"

5. 与意图规则关联

5.1 创建触发规则

话术流程需要通过 意图规则 触发。

步骤

  1. 进入 意图规则管理 页面
  2. 点击 "新建规则" 按钮
  3. 配置规则信息:
规则名称:退货意图
关键词:退货、退款、不想要了、申请退货
正则表达式:退.*货、如何.*退、想.*退
优先级100
响应类型:启动话术流程
关联流程:选择 "退货流程引导"
启用状态:✓ 启用
  1. 保存规则

5.2 触发流程

触发条件

  • 用户消息匹配意图规则的关键词或正则表达式
  • 规则的响应类型为 flow
  • 规则和流程均为启用状态

触发流程

用户输入:我想退货
    ↓
意图识别:命中 "退货意图" 规则
    ↓
启动流程:创建 "退货流程引导" 实例
    ↓
执行步骤 1发送第一步话术
    ↓
等待用户输入:收集订单号
    ↓
执行步骤 2发送第二步话术
    ↓
...
    ↓
流程完成:恢复正常对话

5.3 流程执行优先级

优先级规则

  1. 进行中的流程 > 意图识别 > RAG 检索
  2. 如果会话存在进行中的流程实例,优先处理流程逻辑
  3. 流程完成后,恢复正常的意图识别和 RAG 流程

示例

会话状态:退货流程进行中(步骤 2
用户输入:营业时间是什么?
系统行为:忽略 "营业时间" 意图,继续处理流程步骤 2

6. 最佳实践

6.1 流程设计原则

1. 步骤数量适中

  • 推荐3-7 个步骤
  • 避免:步骤过多(>10 步)导致用户疲劳
  • 避免:步骤过少(<3 步)无法体现流程价值

2. 话术简洁明确

  • 每个步骤的话术控制在 50-100 字
  • 明确告知用户需要做什么
  • 提供示例或选项帮助用户理解

3. 合理设置超时

  • 根据任务复杂度设置超时时间
  • 重要步骤使用 "重复" 或 "转人工"
  • 可选步骤使用 "跳过"

4. 提供退出机制

  • 在话术中告知用户如何退出流程
  • 示例:"如需退出流程,请回复 '退出' 或 '转人工'"

6.2 话术编写技巧

1. 使用礼貌用语

✓ 好的:您好,我来帮您处理退货申请。
✗ 不好:提供订单号。

2. 明确指令

✓ 好的请提供您的订单号格式20240227001。
✗ 不好:请提供信息。

3. 提供选项

✓ 好的:请选择退货原因:
        1. 商品质量问题
        2. 不符合预期
        3. 其他原因
✗ 不好:为什么要退货?

4. 确认信息

✓ 好的:您的订单号是 {{order_id}},退货原因是 {{reason}},确认无误吗?(是/否)
✗ 不好:信息已记录。

6.3 测试与优化

1. 测试流程

  • 创建流程后,先设置为 "禁用" 状态
  • 使用测试账号模拟完整流程
  • 测试各种用户输入场景(正常、异常、超时)
  • 确认无误后再启用

2. 监控数据

  • 定期查看流程执行统计
  • 关注步骤完成率、超时率、转人工率
  • 识别用户卡住的步骤

3. 持续优化

  • 根据数据调整话术和超时配置
  • 优化步骤顺序和数量
  • 收集用户反馈改进流程

6.4 常见问题处理

问题 1用户中途退出流程

解决方案

  • 在话术中明确告知退出方式
  • 设置关键词触发退出(如 "退出"、"转人工"
  • 超时后自动转人工

问题 2用户输入不符合预期

解决方案

  • 在话术中提供示例和格式说明
  • 使用选项列表限制用户输入
  • 设置输入验证和错误提示

问题 3流程执行时间过长

解决方案

  • 减少步骤数量,合并相似步骤
  • 缩短超时时间
  • 将复杂流程拆分为多个子流程

问题 4流程与意图规则冲突

解决方案

  • 提高流程触发规则的优先级
  • 在流程执行期间,系统自动优先处理流程逻辑
  • 避免创建过于宽泛的意图规则

7. API 参考

7.1 列表查询

接口GET /admin/script-flows

请求参数

{
  "is_enabled": true  // 可选,筛选启用/禁用的流程
}

响应示例

{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "退货流程引导",
      "description": "引导用户完成退货申请",
      "step_count": 4,
      "is_enabled": true,
      "linked_rule_count": 2,
      "created_at": "2026-02-27T10:00:00",
      "updated_at": "2026-02-27T15:30:00"
    }
  ]
}

7.2 创建流程

接口POST /admin/script-flows

请求示例

{
  "name": "退货流程引导",
  "description": "引导用户完成退货申请",
  "is_enabled": true,
  "steps": [
    {
      "step_id": "step_001",
      "order": 1,
      "content": "您好,我来帮您处理退货申请。请提供您的订单号。",
      "wait_for_input": true,
      "timeout_seconds": 60,
      "timeout_action": "repeat",
      "next_conditions": []
    },
    {
      "step_id": "step_002",
      "order": 2,
      "content": "收到订单号 {{order_id}},请问您的退货原因是什么?",
      "wait_for_input": true,
      "timeout_seconds": 120,
      "timeout_action": "transfer",
      "next_conditions": []
    }
  ]
}

响应示例

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "退货流程引导",
  "description": "引导用户完成退货申请",
  "step_count": 2,
  "is_enabled": true,
  "created_at": "2026-02-27T16:00:00",
  "updated_at": "2026-02-27T16:00:00"
}

7.3 查询详情

接口GET /admin/script-flows/{flow_id}

响应示例

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "退货流程引导",
  "description": "引导用户完成退货申请",
  "is_enabled": true,
  "steps": [
    {
      "step_id": "step_001",
      "order": 1,
      "content": "您好,我来帮您处理退货申请。请提供您的订单号。",
      "wait_for_input": true,
      "timeout_seconds": 60,
      "timeout_action": "repeat",
      "next_conditions": []
    }
  ],
  "created_at": "2026-02-27T16:00:00",
  "updated_at": "2026-02-27T16:00:00"
}

7.4 更新流程

接口PUT /admin/script-flows/{flow_id}

请求示例

{
  "name": "退货流程引导(优化版)",
  "is_enabled": true,
  "steps": [
    // 更新后的步骤列表
  ]
}

7.5 删除流程

接口DELETE /admin/script-flows/{flow_id}

响应204 No Content


8. 数据模型

8.1 ScriptFlow流程实体

字段 类型 必填 说明
id UUID 自动生成 流程唯一标识
tenant_id string 租户 ID
name string 流程名称
description string 流程描述
steps FlowStep[] 步骤列表
is_enabled boolean 是否启用(默认 true
created_at datetime 自动 创建时间
updated_at datetime 自动 更新时间

8.2 FlowStep步骤实体

字段 类型 必填 说明
step_id string 步骤唯一标识
order int 步骤顺序(从 1 开始)
content string 话术内容
wait_for_input boolean 是否等待用户输入
timeout_seconds int 超时时间5-300 秒)
timeout_action string 超时动作repeat/skip/transfer
next_conditions NextCondition[] 下一步条件(预留)

8.3 超时动作枚举

说明
repeat 重复当前步骤
skip 跳过进入下一步
transfer 转人工

9. 总结

话术流程管理是 AI 中台的核心功能之一,通过可视化的流程编排,实现结构化的多轮对话引导。

9.1 核心价值

  • 提升效率:自动化处理标准流程,减少人工介入
  • 保证质量:标准化话术,确保服务一致性
  • 优化体验:引导式对话,降低用户操作难度
  • 数据收集:结构化收集信息,便于后续处理

9.2 使用流程

创建流程 → 配置步骤 → 关联意图规则 → 测试验证 → 启用上线 → 监控优化

9.3 注意事项

  1. 流程设计要简洁,避免步骤过多
  2. 话术要清晰明确,提供必要的示例
  3. 合理设置超时时间和超时动作
  4. 测试充分后再上线
  5. 定期监控数据并优化流程

文档版本v1.0 生成时间2026-02-27 维护状态 活跃维护 相关文档