流式体验:别让用户干等
工具在后台跑 30 秒,用户看到的应该是什么?进度感设计
本页解决的问题
先给结论「流式体验:别让用户干等」要解决的关键问题是什么?
工具在后台跑 30 秒,用户看到的应该是什么?进度感设计
让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。
写下一个问题:试完这个方法后,你能用什么证据回答它?
结论听起来很完整,却没有检查最关键的假设。
| 状态文案 | 「正在搜索相关信息...」 → 「找到 5 条结果,正在分析...」 |
| 工具展示 | 把正在调用的工具名和参数展示给用户,让他知道 AI 在做什么 |
| 流式输出 | 模型生成的文字逐 token 显示,让等待变成阅读 |
| 阶段标记 | 「第 1 步 / 共 3 步」,即使无法精确预估,分阶段也比不分好 |
| 中间产物 | 先给一个粗略结果,再逐步精化:比如先给大纲,再填充细节 |
「对比:有 vs 没有进度感」如何改变一次回答
「工具在后台跑 30 秒,用户看到的应该是什么?进度感设计」说明,模型处理的不是我们眼中的“字数”,而是一段段 Token。Token 的切分方式会影响输入长度、上下文能放下多少内容,以及一次请求要花多少计算。
长度、信息量和上下文不是一回事
当「工具在后台跑 30 秒,用户看到的应该是什么?进度感设计」变长时,先要分清三件事:文字被切成多少 Token、哪些内容真正参与当前判断、以及旧内容是否已经超出上下文窗口。删掉重复说明通常比单纯把窗口开得更大更有效。
先保留会改变判断的内容
可以用「工具在后台跑 30 秒,用户看到的应该是什么?进度感设计」做一次对照:保留同样的问题,分别删掉重复背景、压缩格式和移除无关历史,比较答案质量、延迟与 Token 数量。
从「对比:有 vs 没有进度感」走到「进度感设计三原则」
「对比:有 vs 没有进度感」先把问题落在「✗ 没有进度感 有进度感 播放对比动画(模拟 30 秒等待体验)」上;到了「进度感设计三原则」,讨论继续推进到「让用户看见过程 别只给一个转圈,要展示正在做什么:搜索中、分析中、整理中 让进度可感知 「找到 3 条结果」「已分析 2/5 个文件」,有数字、有变化、有推进感 让输出渐进出现 让文字逐字流出:流式输出本身就是最好的进度条」。两段连起来,重点就不只是记住一个结论,而是看清它成立所依赖的条件。
把这条判断带到下一个场景
处理长文本时,先保留会改变结论的内容,再决定如何压缩格式和历史;上下文更长只有在新增信息真正有用时才值得付出代价。
- 「对比:有 vs 没有进度感」:✗ 没有进度感 有进度感 播放对比动画(模拟 30 秒等待体验)
- 「进度感设计三原则」:让用户看见过程 别只给一个转圈,要展示正在做什么:搜索中、分析中、整理中 让进度可感知 「找到 3 条结果」「已分析 2/5 个文件」,有数字、有变化、有推进感 让输出渐进出现 让文字逐字流出:流式输出本身就是最好的进度条
- 「常见的进度感手段」:状态文案 「正在搜索相关信息...」 → 「找到 5 条结果,正在分析...」 工具展示 把正在调用的工具名和参数展示给用户,让他知道 AI 在做什么 流式输出 模型生成的文字逐 token 显示,让等待变成阅读 阶段标记 「第 1 步 / 共 3 步」,即使无法精确预估,分阶段也比不分好 中间产物 先给一个粗略结果,再逐步精化:比如先给大纲,再填充细节 用户能忍受等待,但不能忍受「不知道在等什么」。进度感 ≠ 进度…
最后的「常见的进度感手段」把讨论落到「状态文案 「正在搜索相关信息...」 → 「找到 5 条结果,正在分析...」 工具展示 把正在调用的工具名和参数展示给用户,让他知道 AI 在做什么 流式输出 模型生成的文字逐 token 显示,让等待变成阅读 阶段标记 「第 1 步 / 共 3 步」,即使无法精确预估,分阶段也比不分好 中间产物 先给一个粗略结果,再逐步精化:比如先给大纲,再填充细节 用户能忍受等待,但不能忍受「不知道在等什么」。进度感 ≠ 进度…」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。
我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。
读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。
如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。
还没有这篇文章的讨论。