AI 聊天界面为什么不能只有 loading 一个状态?
参考答案
等待服务端开始响应、正在接收内容、生成完成和请求失败,对用户意味着不同的事情。AI SDK 当前 useChat 的 status 区分 submitted、streaming、ready 和 error,可据此控制等待提示、停止按钮和提交入口。
消息也不应一律建模成一条字符串。文本、文件、工具输入、工具结果及来源可能以有序 parts 组合,消息 ID 和工具调用 ID 用来关联更新。仅靠数组位置或不断覆盖最后一段文字,容易在重试和多个异步操作中串内容。
以下属于界面设计建议:为中断和重试保留可解释的状态;用户已向上阅读时不要强制跟随滚动;对读屏用户避免逐 token 高频播报。SDK 状态管理不自动完成这些产品行为,需要按实际会话流程验证。