Skip to content

✨ [Web/Android] Bot 支持流式输出,实时反馈处理状态 #197

@yeejiaa

Description

@yeejiaa

核心问题

用户给 Bot 发消息后,不知道 Bot 是在处理还是消息丢了。「正在输入」状态不稳定,缺乏可靠的处理反馈。这是 AI 对话体验的基本预期——ChatGPT、Claude 都有打字机效果,没有它用户会焦虑。

LiangFei 反馈:「给 bot 安排任务后看不到 bot 是在正常执行,还是消息直接丢了。」

方案

Bot 回复时支持流式输出(逐段呈现),用户能实时看到内容在生成,确认任务正在处理。

两层反馈:

  1. 处理中状态:Bot 收到消息后立即显示可靠的「正在处理」指示(不是靠「正在输入」协议碰运气)
  2. 流式内容:回复内容逐段出现,像打字机效果

与现有「正在输入」状态的关系: 流式输出上线后,「正在输入」状态保留但降级为兜底——支持流式的 Bot 优先走流式通道(用户直接看到内容生成),不再依赖「正在输入」指示;不支持流式的 Bot(如第三方旧版 Bot)仍走现有「正在输入」协议,行为不变。两者不冲突,用户无需感知切换。

交互细节:

  • Bot 发起回复时先出现一个消息气泡,内容逐段填充
  • 流式过程中用户可以继续输入新消息(不阻塞)
  • 如果 Bot 处理时间较长(>30s),气泡中显示经过时间(如「已等待 45 秒」),帮助用户判断是否继续等待
  • 流式完成后消息变为普通消息(可复制、转发等)

异常处理:

  • Bot 中途断开 → 已收到的内容保留,末尾标注「回复中断」
  • 网络波动 → 客户端自动重连继续接收
  • 超时无响应 → 显示「Bot 未响应,请稍后重试」

AI 友好性

这个需求本身就是提升 AI 体验。但需注意:

  • Bot API 侧需要支持流式发送消息的能力(当前 sendMessage 是一次性的)
  • 第三方 Bot 开发者也应该能用这个能力,不只是内部 Bot

验收标准

  • Web 和 Android 端 Bot 回复时内容逐段呈现,用户能看到实时生成过程
  • Bot 收到消息后 2 秒内有可靠的「处理中」反馈
  • 流式中断时已接收内容不丢失
  • Bot API 支持流式发送消息
  • 支持流式的 Bot 不再触发「正在输入」气泡,不支持流式的 Bot 行为不变
  • 30s 场景显示经过时间,无需 Bot 主动上报进度

来源

dmwork-pool#80 | 反馈人:LiangFei

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1feature通过JOJO产品评审通过,等佳佳审批

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions