模块 6Agent UX 与生成式 UI

Vue Agent 应用

前端拥有交互状态,不拥有后端事实

  • 后端 Run/Step/Tool 状态通过事件和快照同步
  • 前端拥有展开、选中、草稿和本地视图状态
  • 乐观状态必须可与服务端对账
  • 路由、刷新和多标签页恢复使用稳定 Run ID

按领域能力拆 Vue 模块

  • run:连接、事件 Reducer 和命令
  • conversation:消息与输入
  • tools:调用、审批和结果
  • artifacts:工作区、版本与 Diff
  • shared:协议 Schema、可访问组件和 Telemetry

Composable、Store 与组件的边界

  • 协议 Reducer 作为纯函数
  • 连接生命周期放 Composable
  • 跨页面 Run 状态进入 Store
  • 组件使用 props/emits 表达交互,不直接调用全局 Runtime

流式连接的完整生命周期

  • 建立连接、鉴权和恢复游标
  • 批量归并事件并更新 Store
  • AbortController、重连退避和页面卸载清理
  • 收到快照后与本地事件版本对账

关键组件按状态而非页面堆叠

  • RunStatus、MessageItem、ToolCall、ApprovalPanel
  • ArtifactWorkspace、EvidenceList 和 ErrorRecovery
  • 空、加载、部分、失败、过期和无权限状态
  • 键盘、焦点、读屏和响应式契约

浏览器端不持有高权限能力

  • 所有 Tool 执行和权限判断在服务端
  • 渲染 Markdown/HTML、链接和 Artifact 时净化
  • 审批命令携带 CSRF/幂等/状态版本保护
  • 日志和前端错误不泄露 Prompt、Token 与敏感结果

用录制协议驱动稳定测试

  • Reducer、格式化、权限显示和命令构造
  • 每种 Tool/审批/Artifact 状态
  • Fake Stream 的重复、乱序、断线和恢复
  • 真实用户旅程:发起、审批、取消、恢复、交付

前端也要可观测

  • 首个可见响应、事件到渲染延迟和长任务内存
  • DOM/消息虚拟化和 Markdown 性能
  • 前后端 Trace ID 关联
  • 交互失败、重连和用户放弃率