如何在不完整句子上触发Agent提前回答?

解读

国内线上业务对低延迟高并发极度敏感,用户往往只说半句话就停顿或网络抖动,导致传统“等句号再回”策略带来300~800 ms 空等,直接拉低留存。面试官想确认候选人能否在工程侧把“提前回答”做成可配置、可回滚、可解释的模块,而非简单加阈值。核心矛盾是:召回率↑ 则误触发↑,延迟↓ 则安全↓,需要一套多层级判决框架

知识点

  1. 中文流式分词器(如BERT-wwm-ext)的前缀概率输出
  2. 意图置信度(intent confidence)与槽位完整度(slot filling ratio)双指标
  3. 策略模式:规则兜底 → 轻量模型 → 大模型重排 三级熔断
  4. 安全对齐实时幻觉检测 + 答案回滚钩子(rollback hook)
  5. 指标:“首帧延迟”≤200 ms、“误触发率”≤2%、用户撤回率≤1%
  6. 日志体系:必须落盘原始片段触发信号最终答案三元组,方便合规审计

答案

我给面试官一个可落地的四级触发管线,已在日活千万级语音助手上线:

  1. 语音/文本流式输入
    采用WeNet 流式解码,每收到20 ms语音包,同步输出部分转写;文本通道同理,按UTF-8字符流切片。

  2. 前缀安全过滤器
    维护动态敏感词Trie树,若前缀命中高风险词根(如“炸”“骗”),立即暂停触发并等待完整句,防止幻觉式回答造成舆情。

  3. 轻量意图判决器(<10 MB,on-device)
    MiniBERT+CRF输出两类概率:

    • 意图置信度 Pi ≥ 0.82
    • 槽位完整度 Ps ≥ 0.75
      同时满足即产生candidate trigger。该模型量化INT8,在骁龙8 Gen2上单次推理7 ms
  4. 大模型重排与回滚
    candidate trigger 把前缀+已填槽位送给7B 私有化大模型二次重排

    • 答案置信度 Pa ≥ 0.9,立即向下游TTS发送首帧音频,并缓存完整答案
    • 若后续完整句与缓存答案语义冲突( cosine < 0.85),触发回滚钩子,推送修正卡片给用户,并记一条badcase向量召回库,用于周级微调

上线后,首帧延迟从 480 ms 降到 180 ms,误触发率 1.6%,用户负向反馈下降 37%,通过工信部APP合规扫描无敏感内容外泄。

拓展思考

  1. 多模态提前触发:当用户说“这个多少钱”同时手指商品,可融合视觉ROI文本前缀,把触发阈值动态下调10%,实现视觉锚点增强。
  2. 个性化阈值:利用联邦学习在端侧统计用户历史撤回率,为高容忍用户下调阈值,低容忍用户上调,零样本更新,不触碰原始对话。
  3. 合规红线:国内**《生成式AI管理办法》要求全链路留痕**,因此提前回答必须额外记录“触发原因”字段(规则/模型/人工),方便监管飞检30分钟内还原现场