模块 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 正确性
- 口音、噪声、多人说话、弱网、设备切换和超长会话
- 任务成功、用户纠错、权限违规、单位会话成本和降级成功率