Agentic UI状态:如何展示AI思维、工具调用和进度
如何设计 AI 代理运行的状态:接收、思考、工具调用、流式传输、完成、停止和失败。模式、时间安排和示例。
核心要点
代理运行需要比正常请求更多的状态:已接收、正在思考、每个工具调用、流式传输答案、已完成、已停止和已失败。以不同的方式显示每个步骤,命名代理正在进行的步骤,让人们随时停止运行,并以简短的总结结束。保持底层细节可用但折叠。
为什么代理运行需要自己的状态
经典请求有两种可见状态:加载和完成。 AI 代理的运行则不同。它可能需要几秒钟或几分钟的时间,它会执行几个步骤,例如搜索、读取文件或调用 API,并且它可以采取会产生后果的操作。 Nielsen Norman Group 的响应时间研究仍然适用:大约 0.1 秒感觉是瞬间的,大约 1 秒保持思想流畅,大约 10 秒后人们需要关于正在发生的事情以及大约需要多长时间的反馈。大多数代理人经营最后一组的土地。
设计的州
将其中每一个设计为具有自己的外观和文字的自己的状态,而不是作为一个旋转器:
- 已收到:立即确认请求(0.1 秒内),例如通过在线程中显示消息。
- 思考:答案出现附近的平静指示器。避免虚假的进度百分比。
- 工具调用:用简单的单词命名该步骤(“搜索文档”、“读取 3 个文件”),如果您知道的话,请加上计数。
- 等待批准:当代理在行动之前需要许可时,明显的停顿。
- 流式传输:在输出到达时显示输出;文本一开始就停止思考指示器。
- 完成:更改内容的简短摘要,并尽可能撤消。
- 停止并失败:说明发生了什么、保留了什么以及如何重试。
显示计划,而不是原始日志
长的工具调用日志对于调试很有用,但对于大多数用户来说却难以承受。一个好的默认设置是当前步骤的单行状态,以及人们可以展开的已完成步骤的折叠列表。开发者和高级用户可以打开详细信息;其他人都可以用简单的语言看到进步。 AG-UI(一种基于事件的开放标准,用于将代理连接到面向用户的应用程序)等协议的存在部分是为了前端能够以一致的方式接收这些步骤事件。
控制与信任
当代理人保持控制时,人们会更加信任他们。在整个运行过程中保持停止按钮可见。在进行不可逆转的操作(例如发送、付款或删除)之前要求确认,并准确说明将会发生什么。运行后,可以轻松撤消、编辑或重试单个步骤,而不用重新开始。
代理州动议
运动是“正在发生某事”的强烈信号,但长时间运行时循环会变得很累。使用温和、低对比度的循环进行思考,在工具调用开始时使用明显的变化,在运行结束时使用清晰的稳定。通过将运动替换为细微的不透明度变化来尊重减少运动的设置。语音助手通常使用动画球体,其空闲、聆听、思考和说话状态明显不同。
要记住的关键 Principle
- 设计接收、思考、工具调用、批准、流式传输、完成、停止和失败作为单独的状态
- 用简单的语言命名当前步骤;折叠完整日志
- 在整个运行过程中保持停止可见并确认不可逆转的操作
- 大约 10 秒后,人们需要进度信息
- 使用平静的动作并尊重简化的动作设置
常见问题解答
来源
- Response Times: The 3 Important Limits — Nielsen Norman Group
- Progress Indicators Make a Slow System Less Insufferable — Nielsen Norman Group
- AG-UI Overview: Agent User Interaction Protocol — AG-用户界面
- Understanding SC 2.3.3: Animation from Interactions — W3C 外语