模块 6Agent UX 与生成式 UI

实时语音与多模态

先定义系统真正处理哪些模态

  • 实时 Speech-to-Speech 与 STT→LLM→TTS 级联架构
  • 文本、音频、图像输入输出的支持组合与切换规则
  • 转写文本是辅助视图,不必等同于模型实际听到的内容
  • 采样率、编码、声道、图像尺寸和媒体生命周期进入协议

传输选择决定延迟、控制权和信任边界

浏览器直连 WebRTC

  • 适合低延迟双向音频
  • 使用短期客户端凭据
  • 服务端仍拥有高权限 Tool 与业务授权

服务端 WebSocket

  • 适合自定义音频管线和集中策略
  • 需要自行处理音频收发、背压与连接恢复

SIP/电话接入

  • 增加运营商、号码、录音与合规边界
  • 通话状态和 Agent Run 状态不能混为一体

实时会话是一组可关联的事件和媒体状态

  • Session 配置、Conversation Item、Response 与 Audio Buffer
  • 稳定 ID 关联音频、转写、Tool Call 和最终结果
  • 配置更新只影响明确的后续阶段
  • 断线后区分重连传输、恢复会话和创建新会话

轮次与打断是实时 Agent 的核心状态机

轮次检测

  • Server VAD、Semantic VAD 与 Push-to-Talk 的取舍
  • 噪声、停顿和长句会改变误判类型

用户打断

  • 停止未播放音频并取消对应生成
  • 对已播放与未播放内容做截断对账

双工状态

  • listening、thinking、speaking 与 tool-waiting 可组合
  • UI 不用单一 Loading 掩盖状态

端到端延迟需要逐段预算

  • 采集、编码、网络、模型首包、音频生成和播放分别测量
  • Chunk 大小在延迟、吞吐和抖动之间权衡
  • 播放队列、Jitter Buffer 与浏览器主线程背压
  • 弱网时降低模态质量、切到文本或明确终止

Tool 与 Handoff 不能破坏对话实时性

  • 明确 Tool 在浏览器、Agent 服务还是业务后端执行
  • 长 Tool 调用用可打断反馈填补静默
  • 敏感动作仍需参数预览、审批和幂等保护
  • Handoff 保留身份、会话目标和已确认事实,不盲目复制全部音频历史

多模态扩大输入面、设备权限和隐私风险

  • 图像、音频和屏幕内容都可能承载间接 Prompt Injection
  • 摄像头、麦克风、录音和转写需要清晰同意与可撤销入口
  • 媒体进入 Provider、Trace、评测和存储前执行分类与最小化
  • 客户端短期凭据、Origin、会话绑定和 Tool 权限分别校验

实时体验必须允许用户确认系统状态并随时退出

  • 明确展示正在监听、处理、说话、调用 Tool 或等待审批
  • 字幕、文本记录、键盘控制、静音和音频设备切换
  • 用户可选择文字模式并纠正转写或实体识别
  • 不要用拟人化声音掩盖不确定性或责任边界

评测完整对话任务,而不只测转写准确率

  • 首响应、轮次结束、打断生效和任务完成延迟
  • 打断成功率、抢话/沉默、重复回复和 Tool 正确性
  • 口音、噪声、多人说话、弱网、设备切换和超长会话
  • 任务成功、用户纠错、权限违规、单位会话成本和降级成功率