Back to Aionui

ACP 单聊 - 实时反馈与展示 (F-DISPLAY)

docs/prds/conversations/acp/display.md

1.9.258.7 KB
Original Source

ACP 单聊 - 实时反馈与展示 (F-DISPLAY)

本文档由 PM 从 prd-acp-scenarios.md 抽取,保持与源同步。 覆盖技术场景:S-UI-01 ~ S-UI-17(排除 S-UI-03/04/18 已合并至 F-SESSION-10)


(F-DISPLAY-01) AI 回复实时逐字显示 [已实现]

用户故事:作为用户,我希望 AI 的回复内容能实时逐字出现在对话界面中,以便我能及时了解 AI 正在回答什么,而不必等到回答全部完成才看到内容。

正常流程(用户视角):

  1. 用户发送消息后 -> 看到 AI 开始逐字输出回复内容
  2. 回复过程中 -> 文字持续追加,界面自动滚动
  3. AI 回复完成后 -> 文字停止追加,输入框恢复可用状态

异常情况

  • 网络抖动导致短暂停顿:用户可能观察到输出暂停数秒后继续,无需手动操作
  • AI 回复被中断(见 F-SESSION-03):已输出的内容保留在对话中

验收标准

  • AI 回复内容实时逐字显示,无明显卡顿
  • 回复过程中对话界面自动滚动至最新内容
  • 回复完成后输入框恢复可用
  • 页面刷新或重新进入会话后,已输出的部分回复内容不丢失

(F-DISPLAY-02) AI 思考过程展示 [已实现]

用户故事:作为用户,我希望能看到 AI 的思考过程,以便了解它是如何分析问题的,同时不干扰正式回复的阅读。

正常流程(用户视角):

  1. AI 开始处理消息时 -> 若 AI 进行了思考,会在回复区域上方展示思考内容(折叠区域),显示思考主题和详细内容
  2. 思考过程实时更新 -> 思考内容逐步追加
  3. 思考结束、正式回复开始 -> 思考区域标记为"已完成",正式回复内容开始输出

异常情况

  • AI 思考了但最终没有输出正式回复内容:用户可以看到思考过程的记录
  • 思考内容嵌在正式回复中(部分 AI 模型的行为):系统自动提取并分离展示

验收标准

  • AI 的结构化思考内容以独立区域展示,与正式回复分开
  • 思考内容实时逐步更新
  • 思考结束后区域标记为"已完成"
  • 对于将思考内容嵌入正式回复的 AI 模型,系统能自动提取思考内容并单独展示

(F-DISPLAY-03) AI 工具调用展示 [已实现]

用户故事:作为用户,我希望看到 AI 在回复过程中调用了哪些工具(如读文件、写文件、执行命令等),以便了解 AI 的操作进展。

正常流程(用户视角):

  1. AI 调用工具时 -> 界面显示工具调用卡片,包含工具名称和状态(进行中/已完成)
  2. 工具执行过程中 -> 卡片实时更新工具的输入和输出信息
  3. 工具执行完成 -> 卡片状态变为"已完成",显示最终结果

异常情况

  • 工具执行失败:卡片状态变为失败,显示错误信息

验收标准

  • 工具调用以卡片形式展示,包含工具名称
  • 工具执行状态实时更新(进行中 -> 已完成/失败)
  • 工具的输入和输出信息可查看

(F-DISPLAY-04) AI 执行计划展示 [已实现]

用户故事:作为用户,我希望看到 AI 的执行计划,以便了解它打算分几步完成我的请求。

正常流程(用户视角):

  1. AI 生成执行计划时 -> 界面展示计划列表,包含各步骤描述
  2. 计划更新时 -> 列表实时刷新
  3. 同一轮对话中计划变化 -> 复用同一个计划展示区域,而非重复创建

验收标准

  • AI 执行计划以步骤列表形式展示
  • 计划内容实时更新
  • 同一轮对话中计划复用同一展示区域

(F-DISPLAY-06) 网页预览打开 [已实现]

用户故事:作为用户,当 AI 在执行任务过程中打开网页(如调试工具页面)时,我希望系统能直接在预览面板中展示,无需我手动打开浏览器。

正常流程(用户视角):

  1. AI 执行中调用了浏览器导航工具 -> 系统自动在预览面板中打开对应网页
  2. 用户可在预览面板中查看和交互

验收标准

  • AI 调用浏览器导航工具时自动打开预览面板
  • 预览面板正确显示目标网页

(F-DISPLAY-07) 上下文用量展示 [已实现]

用户故事:作为用户,我希望知道当前会话已使用了多少上下文窗口(token 用量),以便了解是否需要开启新会话。

正常流程(用户视角):

  1. AI 每次回复后 -> 界面更新上下文用量指示(如已用/总量)
  2. 用量接近上限时 -> 给予视觉提示

待确认点:上下文用量数据存在两条获取路径,部分 AI 后端可能仅支持其中一条。需确认各后端的实际上报行为是否一致,以决定前端展示的可靠性。

不同 AI 后端的差异

  • 部分后端在回复过程中实时上报用量,部分后端仅在回复结束后一次性上报
  • 部分后端可能不上报上下文上限信息,此时仅展示已用量

验收标准

  • 每次 AI 回复后更新上下文用量展示
  • 上下文用量数据持久化,重新打开会话后可见

(F-DISPLAY-10) 斜杠命令列表 [已实现]

用户故事:作为用户,我希望在输入框中输入 / 时能看到所有可用的斜杠命令,以便快速使用快捷功能。

命令来源(按优先级合并显示)

  1. 内置命令:系统预设的命令(如 /btw/clear 等)
  2. 内置 Skill:系统预注入的技能命令
  3. 用户自定义 Skill:用户在设置中添加的自定义技能
  4. Agent 原生命令:AI 后端自身支持的斜杠命令(通过 ACP 协议同步,需 Agent 支持)

正常流程(用户视角):

  1. 用户在输入框输入 / -> 显示合并后的命令列表,包含命令名称、描述和来源标识
  2. 用户可输入关键字过滤命令
  3. 用户选择命令 -> 命令填充到输入框
  4. 命令列表会随 AI 后端能力动态更新(Agent 原生命令在连接建立后加载)

异常情况

  • AI 尚未连接:仅显示内置命令和用户自定义 Skill,不显示 Agent 原生命令
  • Agent 原生命令加载超时(6 秒):显示已有的命令列表,不阻塞用户输入
  • 不同来源存在同名命令:需定义优先级策略(待确认)

不同 AI 后端的差异

  • Agent 原生命令取决于 ACP 协议是否支持以及具体 Agent 是否提供
  • 部分后端可能不支持通过 ACP 同步命令列表

验收标准

  • 输入 / 时显示合并后的命令列表
  • 命令列表区分来源(内置 / 用户 Skill / Agent 原生)
  • 支持关键字过滤
  • Agent 原生命令在连接后动态加载
  • 命令加载超时不阻塞用户输入

(F-DISPLAY-11) 请求追踪信息 (ACP Log Panel) [已实现]

用户故事:作为用户,我希望每次 AI 开始生成回复时能看到本次请求的基本信息(如使用的模型、后端等),以便排查问题或确认配置生效。

正常流程(用户视角):

  1. AI 开始处理请求时 -> 界面显示本次请求的追踪信息(模型名称、后端类型等)

验收标准

  • 每次 AI 开始生成时展示请求追踪信息
  • 追踪信息包含当前使用的模型名称

(F-DISPLAY-12) 环境检查与 AI 后端健康检查 [部分实现]

实现差距:健康检查已有(ModelModalContent 中的按钮);环境变量逐项检查 UI 在 ACP V1 路径下缺失

用户故事:作为用户,我希望在配置 AI 后端时能检查环境是否正确配置以及后端是否可用,以便快速定位问题。

正常流程(用户视角):

  1. 用户在设置页面点击"检查环境" -> 显示环境变量配置状态(已设置/未设置)
  2. 用户点击"健康检查" -> 系统尝试连接 AI 后端并发送测试消息 -> 显示是否可用及响应延迟

异常情况

  • 后端未认证:显示"未认证"提示,引导用户完成认证
  • 后端不可用:显示具体错误信息

验收标准

  • 环境检查显示各环境变量的配置状态
  • 健康检查能检测后端可用性并显示延迟
  • 认证相关错误给出明确提示

(F-DISPLAY-13) 可用 AI 后端列表 [已实现]

用户故事:作为用户,我希望看到系统中所有可用的 AI 后端列表及其详细信息,以便选择合适的后端创建会话。

正常流程(用户视角):

  1. 用户进入新建会话或设置页面 -> 显示所有可用 AI 后端列表
  2. 每个后端显示名称、类型、是否已安装、支持的扩展能力等信息

验收标准

  • 展示所有检测到的可用 AI 后端
  • 每个后端显示名称和类型等基本信息
  • 扩展后端有明确的标识