智能客服机器人产品设计


CTA
可行动 CTA(Actionable CTA, Call-To-Action)**指的是:
在回答用户问题后,同时给出一个明确、可点击、可执行的下一步动作,引导用户向购买或转化方向前进。

“基于 FSM 状态引导用户旅程(State-driven Journey)” 和 “直接根据用户意图 + CTA(Intent-driven + CTA)” 产品区别
https://www.cnblogs.com/aibi1/p/19343101

完整的导购 FSM(有限状态机)设计 — 可直接交付给产品/架构/开发

image

  • 目标:把“问答式客服”升级为“可推进用户逐步完成购买”的导购机器人。

  • 核心思路:FSM 控制流程(可测/可控/可 AB) → 每个状态由策略决定 CTA 和工具调用 → LLM 做自然语言表达

  • 主状态(7 个主状态):

    1. GREETING(问候/热点引导)
    2. NEED_DISCOVERY(需求澄清 / 槽位收集)
    3. PRODUCT_MATCH(商品检索 / 召回)
    4. RECOMMENDATION(推荐展示 + 初次 CTA)
    5. COMPARISON(对比/卖点强化)
    6. OBJECTION_HANDLING(异议处理 / 促单)
    7. CHECKOUT_ASSIST(下单引导 / 支付)
    8. AFTER_SALE(售后/结束) — 可视为附加状态

2. 状态表(每个状态的定义、触发条件、允许动作、默认 CTA、工具调用)

(表格风格节选;工程实现可转为 JSON/YAML)

GREETING

  • 目的:快速建立场景,确认用户是否需要帮助
  • 触发:新会话或页面主动弹窗
  • 允许动作:提示推荐入口 / 快速菜单(热门类目、今日优惠)
  • 默认 CTA:ai_recommendation, view_hotlist
  • 工具:user_profile, catalog_hotlist

NEED_DISCOVERY

  • 目的:收集必要槽位(预算、用途、规格、品牌偏好、收货国家)
  • 触发:用户表达购买意向或选择“我要买”类项
  • 允许动作:追问缺失槽位、设置上下文参数
  • 默认 CTA:view_recommendation(当槽位足够时)
  • 工具:slot_filler, user_profile

PRODUCT_MATCH

  • 目的:基于槽位召回候选商品(top-N)
  • 触发:槽位收齐或用户明确要看商品
  • 允许动作:商品召回、打标签(库存/是否免邮/是否促销)
  • 默认 CTA:view_detail, compare_products, add_to_cart
  • 工具:product_search_api, inventory_api, price_api

RECOMMENDATION

  • 目的:展示推荐(卡片)并推进决策(首轮 CTA)
  • 触发:用户查看推荐、或从 PRODUCT_MATCH 自动进入
  • 允许动作:展示商品卡片、显示优惠、推荐配件
  • 默认 CTA:buy_now, add_to_cart, view_reviews, size_recommendation
  • 工具:recommendation_engine, coupon_service

COMPARISON

  • 目的:对比候选 SKU 的关键差异(价格/功能/评价)
  • 触发:用户请求“哪个更好/对比”或策略判定需要对比
  • 允许动作:生成对比表、突出卖点、展示评分/退货率
  • 默认 CTA:choose_product, view_reviews, view_media
  • 工具:compare_service, reviews_api

OBJECTION_HANDLING

  • 目的:处理“贵/怕慢/怕假货/尺码不对”等异议并推进促单策略
  • 触发:用户表达犹豫或直接说“太贵/不确定”
  • 允许动作:查询可用优惠券、推荐替代、更详细材质/来源信息、承诺售后
  • 默认 CTA:claim_coupon, view_cheaper_option, free_shipping_combo
  • 工具:coupon_service, promotion_engine, logistics_guarantee_api

CHECKOUT_ASSIST

  • 目的:確認 SKU、运费、税费,协助付款(尽可能减少摩擦)
  • 触发:用户选择购买或下单意图明显(点击 buy)
  • 允许动作:自动填充收货国家、提示支付问题、提供支付方式建议、下单跳转或一键结账
  • 默认 CTA:checkout_now, complete_payment, save_for_later
  • 工具:checkout_api, payment_gateway, address_validation

AFTER_SALE

  • 目的:跟进物流、退货、再营销(复购)
  • 触发:订单完成或用户咨询物流/退货
  • 允许动作:查询物流、发起退货、推荐配件/替代品
  • 默认 CTA:track_shipping, request_refund, view_complementary_products
  • 工具:order_service, returns_api

3. 状态迁移示例(核心转移规则)

用触发事件与条件定义迁移(伪代码风格):

  • START → GREETING (新会话)
  • GREETING → NEED_DISCOVERY (用户选择“我要买”或表达需求)
  • NEED_DISCOVERY → PRODUCT_MATCH (槽位齐或用户明确要看商品)
  • PRODUCT_MATCH → RECOMMENDATION (召回结果并展示)
  • RECOMMENDATION → COMPARISON (用户请求对比或策略判定差距高)
  • RECOMMENDATION → OBJECTION_HANDLING (用户犹豫/退缩)
  • OBJECTION_HANDLING → PROMOTION_PUSH(若coupon可用或凑单策略)
  • PROMOTION_PUSH → CHECKOUT_ASSIST(用户接受优惠/点购买)
  • CHECKOUT_ASSIST → AFTER_SALE(订单完成)
  • 任意状态 → AFTER_SALE(用户询问物流/退款)
  • 超时/用户长时间无响应 → END(并触发挽回策略)

注意:迁移规则应支持回环(例如用户在 CHECKOUT 发现不合适可回到 COMPARISON 或 RECOMMENDATION)。


4. 每个状态的输出模板(结构化响应)

为保证前后端对接,Agent 必须返回结构化 response(示例):

{
  "session_id": "s_123",
  "state": "RECOMMENDATION",
  "answer_text": "我为你找到了三款符合 200 美元以内的平板。第一款性价比最高。",
  "cta_list": [
    {"type":"view_detail","label":"查看详情","product_id":"P123"},
    {"type":"compare_products","label":"对比这三款","product_ids":["P123","P456","P789"]},
    {"type":"add_to_cart","label":"加入购物车","product_id":"P123","sku":"P123-BLK"}
  ],
  "meta": {
    "user_slots":{"budget":200,"usage":"观影"},
    "tools_called":["product_search","price_api"]
  }
}

前端根据 cta_list 渲染按钮/卡片。同时 state 用于 server-side FSM 更新。


5. 会话与 Session Schema(建议)

Session 必须持久化(至少短期)以支持状态转移、AB 测试与漏斗分析。

示例 schema(简化):

{
  "session_id": "s_123",
  "user_id": "u_456",
  "state": "RECOMMENDATION",
  "slots": {
    "budget": 200,
    "currency": "USD",
    "size_preference": "10-inch",
    "country": "US"
  },
  "history": [
    {"turn_id":1,"speaker":"user","text":"有推荐吗?"},
    {"turn_id":2,"speaker":"bot","text":"请问预算多少?"}
  ],
  "created_at":"2025-12-12T09:00:00+08:00",
  "last_updated":"2025-12-12T09:03:00+08:00"
}

注意:槽位(slots)需支持多值与来源标注(用户输入/推断/默认)。


6. 工具接口(Tools)与职责(必须实现的工具清单)

  • intent_classifier:快速意图 + 槽位抽取。
  • product_search_api:按槽位召回 top-N 商品。
  • compare_service:生成对比表(含价格/评分/退货率)。
  • coupon_service:查询并锁定优惠券/促销。
  • inventory_api:实时库存与预计发货日。
  • price_api:含税费估算(跨境需特别标注税费)
  • checkout_api:发起订单/一键结账。
  • order_service / returns_api:售后。

每个工具需返回规范数据结构以供 FSM 使用(例如:product_search_api 返回 [{product_id, price, stock, ship_to_countries, est_delivery_days, score}])。


7. CTA 配置中心(策略化)

可把 CTA 写成可配置的规则表(产品/运营可下发):

字段示例:{state, intent, product_category, cta_type, priority, display_condition, expiry}

示例规则:

  • 如果 state=OBJECTION_HANDLING 且用户说“太贵”,优先显示 claim_couponview_cheaper_option
  • 如果用户 country 不支持免邮,则不显示 free_shipping_combo

8. 关键埋点与 KPI(必须追踪)

必须实现以下埋点(建议事件名):

  • cta_exposed(含 state, cta_type, product_id)
  • cta_clicked(含 time_to_click)
  • add_to_cart / buy_now_click
  • checkout_started / checkout_completed
  • state_enter / state_exit(用于漏斗分解)
  • tool_called(工具性能与成功率)

主要 KPI:咨询→下单转化率、各 state 转化率、CTA CTR、会话长度、平均订单价值(AOV)、自动化解决率(无人工介入的 %)。


9. 示例会话映射(把抽象具体化)

会话示例(含 state 流程):

  1. U: “我想买一台 200 美元以内的平板”

    • intent: purchase_intent → FSM: GREETING → NEED_DISCOVERY(槽位:budget=200, usage=观影)
  2. Bot(RECOMMENDATION): “给你三款性价比高的,第一款 …” + CTA(view_detail, add_to_cart)

  3. U: “第一款会经常断网吗?”

    • FSM: COMPARISON/SELLING_POINT → 调用 reviews_api → Bot 回答并 CTA(buy_now)
  4. U: “有优惠吗?我还是觉得贵”

    • FSM: OBJECTION_HANDLING → 调用 coupon_service → Bot 提供 5% 优惠 + CTA(claim_coupon, checkout_now)
  5. U: 点击 checkout → FSM: CHECKOUT_ASSIST → 填地址/显示税费/完成支付


10. 实现细节与工程建议

  1. State Machine 实现方式:推荐先用规则/手写 FSM(可读、可控),后期可把策略替换为可学习模块或 RL(慎用)。
  2. LLM 角色划分:LLM 做「生成文本」与「补充意图识别」,但不能直接决定 state 转移。
  3. 超时/恢复策略:若用户 5 分钟无响应,自动发起挽回(优惠/提醒),并在日志标出“超时跳出”。
  4. 回滚能力:若 checkout 失败,应能回到 OBJECTION_HANDLING 或 COMPARISON。
  5. 多渠道一致性:FSM 状态要与 app/web/微信小程序等共享(session 同步)。
  6. 并发与幂等:工具调用(如 coupon lock)需设计幂等与超卖保护。
  7. 可配置化:把 CTA 规则、优惠策略抽象成可配置表给产品/运营调整。

用户不按理想情况

你问的非常关键,这正是 FSM 导购机器人的真正价值所在:在现实场景中,用户行为往往 不按理想路径走,如果没有策略,机器人容易“乱了阵脚”,导致流失或转化低。下面我详细分析,并给出解决方案。


1. 用户不按理想路径的情况分类

类型 例子 风险
绕过需求澄清 用户直接说:“给我推荐便宜的平板。” 机器人没有收集预算/用途槽位,推荐可能不精准
跳状态 用户直接问:“哪个最好?” 机器人可能还没进入 PRODUCT_MATCH 或 RECOMMENDATION,直接回答可能不完整
重复问题 用户重复问价格、物流、品牌 如果没有记录状态,机器人可能重复同样回答,体验差
偏离主题 用户问售后或退货流程 如果机器人仍停留在推荐状态,可能继续推商品而忽略售后需求
犹豫反复 用户来回切换想法:“我想小米…不,我想便宜点…” 机器人如果无回环策略,会无法推进下单或推错优惠
长时间无响应 用户半小时后回复 FSM 状态未过期,可能过时或优惠失效,用户体验下降

2. FSM 应对策略

FSM 的核心优势就是可控状态 + 回环策略 + 异常处理。常用方法:

2.1 回环(Loop Back)

  • 用户跳过某个状态 → 自动回到缺失状态

    • 例:用户直接问“哪个最好”,但未提供用途/预算 → 回到 NEED_DISCOVERY 提问槽位
  • 用户犹豫 → 回到 OBJECTION_HANDLING 或 RECOMMENDATION

2.2 超时处理

  • 用户长时间未响应 → 自动发起提示/优惠
  • 超时后状态可自动转移或失效(例如优惠券过期)

2.3 异常分支(Fallback)

  • 用户偏离主题 → FSM 进入 Fallback 状态,机器人可以:

    1. 回答问题(如售后)
    2. 提示返回购买流程
    3. 标记需要人工介入

2.4 多意图识别

  • 用户一句话可能触发多个意图,例如:

    • “我想小米,但太贵了,有优惠吗?” → RECOMMENDATION + OBJECTION_HANDLING
  • FSM 允许并行或嵌套状态,确保所有意图被处理


3. 示例:非理想路径的对话(FSM 如何处理)

用户:
“帮我推荐便宜的平板。”

FSM 处理流程:

  1. 用户直接跳过需求澄清

    • FSM 检查槽位:budget 未填,usage 未填

    • 自动进入 NEED_DISCOVERY

      “可以告诉我预算范围和主要用途吗?例如 150–200 美元,用来看剧还是办公?”

  2. 用户回复:
    “大概 200,主要看剧。”

  3. FSM 更新槽位 → 自动进入 PRODUCT_MATCH → RECOMMENDATION

    • 展示商品,带 CTA 推动下单
  4. 用户又问:“哪个品牌最好?”(跳转到 COMPARISON)

    • FSM 允许状态回环 → COMPARISON → RECOMMENDATION
    • 用户仍然可以领取优惠 → 进入 OBJECTION_HANDLING → CHECKOUT

特点:

  • 即便用户不按理想路径走,FSM 依然可以:

    • 检查缺失槽位
    • 自动回到缺失状态
    • 保持购买链路连续性

4. 技术实现建议

  1. 状态校验

    • 每次收到用户消息前,检查当前槽位是否完整
    • 如果不完整 → 自动回到缺失状态
    • 示例:if slots.budget is None → state = NEED_DISCOVERY
  2. 并行/嵌套状态

    • RECOMMENDATION + OBJECTION_HANDLING 可以并行
    • sub_state 或栈记录嵌套状态,用户随意跳也可回归
  3. 超时/重置机制

    • 用户超过 X 分钟未响应 → FSM 状态自动过期
    • 提示用户重新开始或提供优惠
  4. Fallback 状态

    • 用于偏离主题、无法识别意图、超过预期路径
    • 可选择回答 + 提醒购买流程 + 可人工接管
  5. 多意图融合

    • LLM 输出多个意图 → FSM 根据优先级/业务策略触发多个状态

    • 示例:用户说:“我想买小米平板,但太贵了,有优惠吗?”

      • FSM 同时进入 RECOMMENDATION(小米) + OBJECTION_HANDLING(太贵) → PROMOTION_PUSH(优惠券)

5. 总结

  • 普通机器人在用户不按理想路径走时:

    • 回答可能乱、漏槽位
    • 无法推进购买
    • 用户体验差、转化低
  • FSM 导购机器人优势:

    1. 自动检测槽位缺失 → 回到需求收集
    2. 支持回环/嵌套 → 用户跳状态仍可推进
    3. 异常处理与 Fallback → 用户偏离主题也不会中断流程
    4. 可以保持促单链路完整 → 提升成交率

多意图query设计

明白,你的场景是 跨境电商导购机器人,技术架构是 Hybrid Orchestrator + FSM + CTA(Call-To-Action)。用户可能一次性触发多个意图,例如购买商品和查询优惠。下面我给你一个系统化处理方案:


1. 用户输入分析

用户说:

“我想买小米平板,但太贵了,有优惠吗?”

  • 意图识别(LLM/NLU)

    1. 商品搜索 / 导购意图:想买“小米平板”
    2. 优惠查询意图:关心价格、折扣、优惠
  • 实体抽取

    • 品牌/产品:小米平板
    • 条件:价格敏感

2. Hybrid Orchestrator 分解流程

Hybrid Orchestrator 的任务是:

  1. 多意图拆分

    • 从 LLM 输出中识别出多个意图和对应实体

    • 输出意图列表,如:

      [
        { "intent": "SEARCH_PRODUCT", "entity": "小米平板" },
        { "intent": "CHECK_PROMOTION", "entity": "小米平板" }
      ]
      
  2. 意图排序 / 业务策略

    • 根据策略或优先级决定处理顺序

      • 购买意图通常优先
      • 优惠意图可并行或串行处理
    • 输出 FSM 状态队列:

      • [SEARCH_PRODUCT → CHECK_PROMOTION]
  3. CTA 触发

    • 每个状态可绑定 CTA,指导用户下一步操作,例如:

      • 查看详情
      • 领取优惠券
      • 加入购物车

3. FSM 状态设计

状态 触发条件 输入 输出 / 动作 CTA 下一状态
SEARCH_PRODUCT 用户有购买意图 品牌/产品 调用商品搜索 API 返回列表 查看详情 CHECK_PROMOTION
CHECK_PROMOTION 用户有优惠查询意图 商品列表 调用优惠 API 获取可用优惠 领取优惠券 / 加入购物车 END

特点

  • 串行或并行触发 FSM 状态,保证每个意图都被处理
  • 每个状态输出附带 CTA,提升用户交互转化率
  • 支持动态插入状态(用户修改需求时)

4. 对话示例(FSM + CTA)

用户说:“我想买小米平板,但太贵了,有优惠吗?”

流程:

  1. Hybrid Orchestrator

    • 拆分意图 → SEARCH_PRODUCTCHECK_PROMOTION
    • 排序 → 先搜索商品,再查询优惠
  2. FSM 状态执行

    • SEARCH_PRODUCT → 返回小米平板商品列表,CTA:查看详情
    • CHECK_PROMOTION → 返回可用优惠信息,CTA:领取优惠券 / 加入购物车
  3. 最终组合输出给用户

小米平板列表:
1. 小米平板 11寸 价格: ¥3000 [查看详情]
2. 小米平板 12.5寸 价格: ¥3500 [查看详情]

可用优惠:
- 满3000减200 [领取优惠券]
- 新用户立减100 [加入购物车]

5. 异常路径处理

  1. 用户只关心优惠

    • FSM 可以跳过商品搜索,直接触发优惠状态
  2. 用户修改需求

    • FSM 支持状态回退或动态插入新状态
  3. 意图冲突

    • Orchestrator 按优先级或策略处理,保证业务逻辑可控

6. 技术实现建议

  1. 多意图识别

    • 使用 LLM 输出意图 + 实体列表
    • 可以附带置信度分数,帮助排序
  2. Hybrid Orchestrator

    • 输入意图列表 → 生成 FSM 状态队列
    • 支持串行/并行、优先级排序
  3. FSM

    • 每个状态执行单一动作(搜索、优惠查询、下单)
    • 输出附带 CTA
  4. 响应整合

    • Orchestrator 收集各状态输出,统一生成用户响应,确保 CTA 可交互

用户输入: “我想买小米平板,但太贵了,有优惠吗?”


┌───────────────────┐
│ LLM 多意图识别 │
│ - SEARCH_PRODUCT │
│ - CHECK_PROMOTION│
└───────────────────┘


┌────────────────────────────────┐
│ Hybrid Orchestrator │
│ - 拆分意图 → FSM状态队列 │
│ - 意图优先级排序/串行/并行 │
└────────────────────────────────┘

┌────────┴─────────┐
▼ ▼
┌─────────────┐ ┌──────────────┐
│SEARCH_PRODUCT│ │CHECK_PROMOTION│
│ - 调用商品API │ │ - 调用优惠API │
│ - 返回商品列表│ │ - 返回优惠信息│
│ - CTA: 查看详情 │ │ - CTA: 领取优惠/加入购物车 │
└─────────────┘ └──────────────┘
│ │
└────────┬─────────┘

┌─────────────────┐
│ 输出整合响应给用户│
│ - 商品列表 + CTA │
│ - 优惠信息 + CTA │
└─────────────────┘

posted @ 2025-12-12 22:17  向着朝阳  阅读(5)  评论(0)    收藏  举报