← [ BACK_TO_NOTES ]

AI / Agent UX 设计

从不确定输出、流式执行、工具调用、人类确认、长任务、错误恢复和信任管理理解 AI / Agent 产品的交互设计。

#synthesis #growing #ai #frontend

[!info] related notes

AI / Agent UX 设计

一句话理解 Agent UX

传统软件的核心交互通常比较确定:

User
  ↓
UI
  ↓
Known Action
  ↓
Known Result

Agent 产品则更像:

User Intent
  ↓
Agent starts work
  ↓
collects context / uses tools
  ↓
intermediate states
  ↓
may need user confirmation
  ↓
uncertain result
  ↓
user accepts / corrects / continues

所以 Agent UX 的核心不只是“把 AI 回复放进聊天框”,而是:

让一个具有不确定性、会调用工具、可能运行较久、可能需要人类介入的系统,仍然让用户感到清楚、可控、可信并且能够恢复。

Agent UX 和普通 Chat UI 的区别

普通聊天界面可以只关注:

输入 → 消息 → 回复

Agent 产品往往还需要处理:

  • streaming;
  • retrieval;
  • tool call;
  • approval;
  • ask user;
  • long-running task;
  • progress;
  • interrupt;
  • retry;
  • partial result;
  • artifact;
  • uncertainty;
  • memory / context;
  • correction;
  • resume。

已有 Agent Interaction UI 已经整理了 Chat、Tool Call、Approval、Artifact、Status 和 Controls 的界面组成;本篇更关注这些东西为什么存在以及怎样组合成好的体验。

第一原则:把不确定性设计进产品,而不是假装不存在

AI 输出不是传统函数式 UI 那样完全确定。

因此不能默认:

AI 输出 = 正确事实

更健康的产品模型是:

AI Output
  ↓
可能可靠 / 可能不完整 / 可能需要确认
  ↓
UI 提供上下文、依据和后续动作

已有 AI 输出不确定性与交互设计 的最短原则是:

前端不只是显示答案,还要管理用户对答案的理解、信任和后续动作。

1. Status:用户必须知道 Agent 现在在做什么

长时间没有反馈是 Agent 产品最糟糕的体验之一。

对用户有意义的状态可以是:

已收到
正在分析输入
正在查找相关资料
正在处理数据
需要你确认
正在生成结果
已完成
失败,可重试

不要把“透明”误解成展示 Chain of Thought

用户不需要、产品也不应该把模型内部私有推理逐字暴露出来。

真正有价值的是:

  • 当前阶段;
  • 已执行的外部动作;
  • 需要用户介入的原因;
  • 重要结果;
  • 可验证依据;
  • 下一步动作。

可以记成:

Show progress and actions, not private reasoning.

2. Controllability:Agent 自动化越强,用户控制越重要

用户至少需要在适当场景拥有:

Stop
Cancel
Edit
Retry
Regenerate
Reject
Confirm
Correct
Continue

长任务应提供与运行时能力一致的停止和恢复入口。点击取消后先显示“正在请求取消”;只有服务端确认后才显示“已取消”。取消不等于撤销已经完成的外部动作,无法停止的动作应说明当前状态。

3. Ask User:缺信息时不要硬猜

Agent 最大的能力之一,就是发现缺失信息后主动提问。

以 BodySense 的交互设计为例(不是对当前部署能力的核验):

“肩膀最近不舒服”

如果系统需要知道左右侧,却没有足够上下文:

Agent detects ambiguity
  ↓
Ask User
  ↓
左侧 / 右侧 / 双侧?
  ↓
用户确认
  ↓
继续处理

这适用于答案会改变处理正确性的关键缺失信息。可以从现有上下文确认的信息应先复用;低影响偏好可使用说明过的默认值,避免每一步都要求用户回答。

已有 Ask User Tool 可继续从 Agent 工程视角深入。

4. Tool Call:用户真正关心的是现实动作

Agent 调工具意味着系统可能已经开始影响现实世界或读取外部信息。

UI 至少要区分:

准备执行
正在执行
执行成功
执行失败
需要批准

不同工具风险不同:

  • 搜索资料通常低风险;
  • 修改用户数据风险更高;
  • 删除、支付、发送外部消息等不可逆动作需要更强控制。

所以 Tool UI 不能只是为了“炫技展示 Agent 在工作”,它应该帮助用户理解动作、风险和结果。

5. Approval:确认应该放在决策边界上

不是所有 Tool Call 都要用户批准。

先判断已有授权、具体参数与产品策略,再结合影响和可逆性决定是否询问。一个实用思路:

低风险 + 可逆
→ 可以自动执行并提供结果/Undo

中风险
→ 视上下文要求确认

超出已有授权 / 策略要求确认
→ 执行前明确 Approval

已有授权覆盖且参数未发生实质变化
→ 按授权执行;记录结果并提供可用的恢复入口

Approval UI 应回答:

  • Agent 想做什么?
  • 为什么现在需要做?
  • 会影响什么?
  • 用户可以修改参数吗?
  • Confirm / Reject 后分别发生什么?

确认必须绑定实际动作、对象和参数;实质变化后应重新判断授权。UI 的 Confirm 不能代替服务端权限校验。已有 Human Approval UI 和 Approval Workflow 可继续深入。

6. Progress:长任务不要只给一个 Spinner

对于几秒以上甚至更长的 Agent 工作,单纯:

Thinking...

很快会失去信息价值。

更好的进度表达可以是:

已接收请求
→ 正在检索相关资料
→ 已找到 6 条候选依据
→ 正在整理结果

重点不是制造虚假的百分比,而是让用户知道任务是否仍在推进。

如果系统无法可靠估计完成比例,就不要伪造“83%”。

7. Interrupt / Resume:Agent 不是只能等它跑完

用户可能在中途发现:

  • 输入错了;
  • 方向不对;
  • 已经不需要结果;
  • 需要补充新信息。

所以长任务应考虑:

running
 ├─ completed
 ├─ failed
 ├─ cancel_requested → cancelled(服务端确认)
 └─ interrupted → user input → resumed

断流只表示失去更新,不证明任务已停止;恢复前需查询权威状态,并避免重放已产生副作用的动作。设计背景可结合 BodySense Consultation Streaming Architecture。

8. Partial Result:部分结果也可能有价值

Agent 工作失败并不意味着所有中间成果都应该消失。

例如:

已完成症状信息提取
证据检索失败

UI 可以保留已确认的部分,同时明确哪个部分没有完成。

这比整页变成:

Something went wrong

更诚实、更容易恢复。

9. Error Recovery:错误不仅要说明,还要能继续

Agent 错误可能来自:

  • network;
  • provider;
  • tool;
  • permission;
  • validation;
  • timeout;
  • model output;
  • 用户取消(通常是主动终止状态,不应一律当作系统故障)。

用户界面不需要展示所有内部堆栈,但要告诉用户:

现在什么没完成?
已有结果是否保留?
可以重试什么?
是否需要修改输入?
是否能稍后继续?

已有 AI 产品前端稳定性 与 前端交互状态统一处理 可以复用。

10. Trust:信任来自可理解、可纠正和可验证

提高用户信任不是多写一句“AI 可能犯错”。

更有效的是:

  • 显示必要来源和证据;
  • 清楚区分事实、推断和待确认信息;
  • 用户能够纠错;
  • 不确定时主动问;
  • 高风险场景降低自动化;
  • 失败时诚实表达;
  • 不把系统包装成比实际更确定。

BodySense:Agent UX 为什么尤其重要

BodySense 涉及身体健康相关信息,这意味着产品不能把普通聊天产品的“自信回答”习惯直接搬过来。

用户真正需要的是:

我说了什么
系统确认了什么
系统还不确定什么
用了哪些相关依据
哪些地方需要我补充
什么只是记录和组织
什么时候应该升级到专业医疗判断

界面应避免把 AI 推断视觉包装成“已经医学确诊”的事实。

一个更合理的事实层级

用户明确陈述
→ user-reported statement(确认来源是用户,不等于医学事实已证实)

多轮对话中持续出现
→ repeated report(保留时间与来源,重复本身不提高真实性)

AI 推断但证据不足
→ needs confirmation / hypothesis

需要安全升级
→ safety escalation(处理决策,和事实可信度不是同一维度)

这些语义首先应该由业务和 Agent contract 定义,UI 再选择恰当表达,而不是前端自己用颜色创造医学含义。

BodySense Consultation 的 UX 状态机

以下是用户视角的设计示意;实际状态名、持久化和恢复能力需与运行时合同核对:

idle
  ↓ user sends message
submitting
  ↓
streaming
  ├─ needs more context → waiting_user
  ├─ retrieval/tool     → working
  ├─ needs confirmation → waiting_confirmation
  ├─ error              → recoverable_error
  ├─ cancel requested   → cancelling → cancelled(确认后)
  └─ completed          → completed
                            ↓
                      user continues / corrects

这里每个状态都应该有:

  • 用户看见什么;
  • 用户能做什么;
  • 下一步允许到哪里;
  • 数据是否持久化;
  • 是否能恢复。

BodySense:身体记录更新的 Agent UX

假设用户在对话中说:

“最近抬手时左肩前侧会痛。”

可以设计成:

消息进入 Consultation
  ↓
AI 正在处理
  ↓
提取到 left shoulder + movement-related discomfort
  ↓
如果语义足够明确且符合写入授权 / 校验规则
→ 持久化相关观察,记录来源与时间

如果部位/含义不明确
→ 请求用户确认
  ↓
写入成功后,Body Map 更新(失败则说明未保存)
  ↓
用户可查看 / 更正 / 继续补充

用户看到的是“系统如何处理我的信息和产生了什么结果”,而不是模型内部完整思考文本。

设计 Agent 功能时的 Interaction Spec

每一个 Agent 能力都可以写:

User Intent:
用户希望 Agent 帮他完成什么?

Agent Action:
Agent 会做哪些对用户有意义的动作?

Visible Status:
用户在每个阶段看到什么?

Tool / Side Effect:
是否调用工具?是否影响外部世界或持久数据?

Approval:
哪一步需要用户确认?为什么?

Uncertainty:
哪些结果可能不确定?怎样表达?

Evidence:
哪些地方应该展示依据?

Control:
用户能否 stop / cancel / edit / retry / correct?

Failure:
每一步失败后保留什么?

Recovery:
如何重试或恢复?

Completion:
用户怎么知道任务真的完成?

Agent UX Review

  1. 用户是否知道 Agent 当前在做什么?
  2. 是否把内部“Thinking”当成了唯一状态?
  3. 用户是否能停止、纠正和继续?
  4. 不确定时 Agent 是猜,还是主动获取信息?
  5. Tool Call 的现实影响是否清楚?
  6. Approval 是否只放在真正需要的决策边界?
  7. 长任务是否持续有意义的反馈?
  8. Partial Result 是否被无理由丢弃?
  9. Error 后是否有恢复路径?
  10. AI 的事实、推断和待确认信息是否被混在一起?
  11. 是否展示了必要证据,而不是要求用户盲信?
  12. UI 是否错误地制造了“AI 很确定”的错觉?

最短记忆

传统 UX 设计任务;Agent UX 还要设计不确定性、执行过程、控制权、工具副作用、人类介入和恢复。

再压缩成一句:

Agent UX = make autonomous behavior observable, controllable, correctable and recoverable.

相关知识

创建于 2026/8/27 更新于 2026/10/6
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本