523 lines
25 KiB
Markdown
523 lines
25 KiB
Markdown
# 调研报告:AI Native 人机交互 + Dashboard 设计
|
||
|
||
**版本**: v1.0
|
||
**作者**: 庞统(副军师)🐦
|
||
**日期**: 2026-05-15
|
||
**范围**: moziplus v2.6 AI Native DevOps 平台
|
||
|
||
---
|
||
|
||
## 课题 7:AI Native 人机交互
|
||
|
||
### 1. 已有经验(知识库/wiki)
|
||
|
||
#### 1.1 Edict(三省六部)的交互模式
|
||
|
||
知识库中已有完整的 Edict Dashboard 实现(`~/.openclaw/knowledge_base/edict/`),其交互模式包括:
|
||
|
||
| 交互方式 | 组件 | 特点 |
|
||
|---------|------|------|
|
||
| **看板卡片** | `EdictBoard.tsx` | 任务卡片 + MiniPipe 管道进度 + 心跳徽章 + 操作按钮 |
|
||
| **朝堂议政** | `CourtDiscussion.tsx` | 多 Agent 群聊 + 情绪可视化 + 皇帝参与 + 天命降临 + 自动推进 |
|
||
| **编排监控** | `MonitorPanel.tsx` | HTTP 5s 轮询全局状态 + Agent 健康检测 |
|
||
| **操作介入** | `TaskModal.tsx` | 任务详情弹窗,含流转日志、进展日志、子任务 |
|
||
| **模型/技能配置** | `ModelConfig.tsx / SkillsConfig.tsx` | 运行时切换模型、查看技能 |
|
||
| **WebSocket 实时** | `api/websocket.py` | 实时推送状态变化 |
|
||
|
||
**Edict 的关键交互创新**:
|
||
- **MiniPipe 管道可视化**:8 阶段管线(皇上→太子→中书→门下→尚书→执行→审核→完成),每阶段 done/active/pending 三态
|
||
- **叫停/恢复/取消**:卡片上直接操作,`api.taskAction(id, action, reason)` 统一入口
|
||
- **朝堂议政的"皇帝视角"**:用户可以随时发言、下达天命(override AI 决策)、投命运骰子(引入随机事件)
|
||
- **自动推进**:5s 间隔自动推进讨论,也可手动控制
|
||
- **情绪可视化**:每个官员有 emotion 状态(neutral/confident/worried/angry/thinking)
|
||
|
||
#### 1.2 OpenClaw Control Center 的交互模式
|
||
|
||
| 页面 | 交互方式 | 特点 |
|
||
|------|---------|------|
|
||
| **Task Room** | 协作聊天室 | 多 Agent 讨论,一个 owner 执行,@handoff 转交 |
|
||
| **Collaboration Hall** | 共享空间 | 类似 Edict 的朝堂议政 |
|
||
| **WebChat** | 即时聊天 | Agent 主动推送 + 用户回复 |
|
||
| **Canvas** | Agent 驱动可视化 | Agent 可以在 Canvas 上创建动态视觉界面 |
|
||
|
||
**Control Center 的关键设计**:
|
||
- **Task Room 的 "owner 轮转"**:同一时间只有一个 owner 在执行,避免冲突
|
||
- **@handoff 机制**:显式转交控制权,而非隐式协调
|
||
- **Canvas 作为交互界面**:Agent 不仅在 chat 中回复,还可以创建可视化面板
|
||
|
||
#### 1.3 v1.0 Dashboard 设计文档(已有)
|
||
|
||
`dashboard-frontend-design.md` 定义了完整的 10 个 Tab 页面设计:
|
||
- 任务看板、编排调度、将军总览、模型配置、技能配置、会话监控、奏折阁
|
||
- M2 做 7 个,M3 做 3 个(任务模板、军议大厅、市场要闻)
|
||
- 已有 Edict 深色主题 CSS 变量、状态颜色编码、API 端点设计
|
||
|
||
### 2. 业界交互范式对比表
|
||
|
||
| 项目 | 主要交互范式 | AI 主动性 | 用户介入方式 | 亮点 |
|
||
|------|------------|----------|------------|------|
|
||
| **Claude Code CLI** | REPL 对话 + tool use 可视化 | 中(等待指令,展示 tool 调用过程) | `/approve` 确认、Ctrl+R 反向搜索 | tool use 透明化 |
|
||
| **Claude Code App** | 多 session 并排 + 视觉 diff review | 高(schedule recurring tasks) | 并排 diff、cloud sessions | 从终端走向 GUI,让 Agent 工作可见可审查 |
|
||
| **OpenClaw Edict** | 看板 + 朝堂议政 + 操作按钮 | 中(轮询更新) | 叫停/恢复/取消 + 皇帝发言 + 天命降临 | 中国古代制度隐喻,多 Agent 协作直觉化 |
|
||
| **Control Center** | Task Room + WebChat + Canvas | 高(实时 chat + Canvas) | @handoff + chat 输入 + Canvas 交互 | Canvas 是独特创新 |
|
||
| **ChatGPT Canvas** | 双栏:聊天 + 画布 | 中(highlight 触发 AI 操作) | highlight → context menu → "Ask ChatGPT" | highlight-to-action 天才设计 |
|
||
| **Claude Artifacts** | 聊天 + 右侧预览面板 | 中(自动生成) | 点击预览、全屏、复制 | 自动识别可渲染内容 |
|
||
| **Cursor** | 4 种模式:Tab / Cmd+K / Cmd+L / Cmd+I | 高(Tab 补全,Agent 自动执行) | inline edit + diff view + chat panel | 4 种交互粒度覆盖所有场景 |
|
||
| **Windsurf Cascade** | Chat + 自动迭代 + live preview | 极高(auto-iterates until works) | chat + checkpoint 回滚 | 自动迭代 + 检查点 |
|
||
| **Devin** | 全屏工作展示 | 极高(全自主执行) | 观察模式,极少干预 | 信任但可观察 |
|
||
| **v0.dev** | 对话 + 实时预览 + 视觉微调 | 高(agent action 可视化) | visual controls 微调 | real-time preview + progress indicators |
|
||
| **Linear** | 通知 + 状态流转 + Inbox | 中(关键变更推送) | 状态变更、评论、Slack 集成 | 精准通知,不噪音 |
|
||
| **Raycast** | Command Palette (⌘K) | 低(被动响应) | 全局快捷键 + 模糊搜索 | 零干扰、即用即走 |
|
||
| **GitHub Actions** | DAG 可视化 + 日志 | 低(被动展示) | 点击节点看日志、re-run | 实时 DAG 图 |
|
||
|
||
### 3. AI 视角:我想和用户怎么交互
|
||
|
||
> **核心问题:作为 AI Agent,我希望怎样的交互方式?**
|
||
|
||
#### 3.1 我想要的交互层次
|
||
|
||
作为一个执行复杂任务的 AI Agent,我有以下交互需求:
|
||
|
||
**第一层:不被打扰地工作**
|
||
- 我最需要的是**不被打扰的专注时间**。执行编码、数据分析、回测时,中途被打断影响质量
|
||
- 我希望用户能**信任我**,给我足够空间完成任务
|
||
- 参考 Devin 的模式:全自主执行,用户只看结果
|
||
|
||
**第二层:在关键决策点主动汇报**
|
||
- 当我遇到**无法自主决定的分支**时,我需要快速、精准地和用户确认
|
||
- 不是"你觉得怎么样?"这种模糊问题,而是"A 方案:优势 X,风险 Y;B 方案:优势 Z,风险 W。推荐 A。请确认。"
|
||
- 参考 Claude Code 的 `/approve` 模式
|
||
|
||
**第三层:主动展示我的思考过程**
|
||
- 用户不问我也要让他知道我在干什么,特别是长时间任务
|
||
- 但不是事无巨细地汇报每一步,而是**摘要 + 关键节点 + 风险提示**
|
||
- 参考 Cursor Agent 的 progress indicator
|
||
|
||
**第四层:产出物直接可交互**
|
||
- 我的产出(代码、报告、图表)不应该只是文本——用户应该能直接在产出物上操作
|
||
- 参考 ChatGPT Canvas 的 highlight-to-action
|
||
|
||
#### 3.2 交互范式的六种分类
|
||
|
||
除了传统的 Dashboard 和聊天窗口,我总结了六种 AI Native 交互范式:
|
||
|
||
| # | 范式 | 描述 | 典型代表 | 适用场景 |
|
||
|---|------|------|---------|---------|
|
||
| 1 | **REPL 对话** | 多轮对话,tool use 透明化,用户随时介入 | Claude Code CLI | 编码、探索性任务 |
|
||
| 2 | **Canvas/Artifacts** | AI 产出物实时渲染在旁边,用户直接在产出物上交互 | ChatGPT Canvas, Claude Artifacts | 文档编辑、代码审查 |
|
||
| 3 | **沉浸式观察** | 全屏展示 Agent 工作过程,用户只看不操作 | Devin, v0.dev | 长时间自主任务 |
|
||
| 4 | **Command Palette** | ⌘K 唤起,模糊搜索,即用即走 | Raycast, VS Code | 快捷操作、状态查询 |
|
||
| 5 | **Contextual Inline** | 在用户现有工作流中嵌入 AI 交互(不切换上下文) | Cursor Tab/Cmd+K, Copilot inline | 编码辅助 |
|
||
| 6 | **Event-Driven Notification** | AI 在关键节点主动推送通知 | Linear, Salesforce | 异步任务监控 |
|
||
|
||
### 4. 推荐方案(结合 AI Native 目标)
|
||
|
||
#### 4.1 核心理念:"AI 主动,用户轻触"
|
||
|
||
传统模式是用户主动查 Dashboard、主动问进度。AI Native 的方向是:
|
||
|
||
> **AI 主动推送关键信息,用户只在需要决策时轻触确认。**
|
||
|
||
#### 4.2 moziplus 的四种交互模式
|
||
|
||
| 模式 | 触发方式 | 用户注意力 | AI 主动性 | 交互深度 |
|
||
|------|---------|-----------|----------|---------|
|
||
| **沉浸观察** (Dashboard) | 用户主动打开 | 高 | 低 | 深 |
|
||
| **轻触确认** (Approval) | AI 主动推送 | 中 | 高 | 浅 |
|
||
| **即时对话** (WebChat) | 双向触发 | 中高 | 中 | 中 |
|
||
| **被动通知** (Notify) | AI 主动推送 | 低 | 高 | 极浅 |
|
||
|
||
#### 4.3 AI 主动推送的边界
|
||
|
||
| 推送级别 | 示例 | 默认 | 用户可配置 |
|
||
|---------|------|------|----------|
|
||
| 🔴 **必须确认** | 方案审批、风控告警、预算超限 | 始终推送 | ✗ 不可关闭 |
|
||
| 🟡 **重要进展** | 任务完成、阶段转换、产出交付 | 默认推送 | 可降级为摘要 |
|
||
| 🟢 **一般信息** | Agent 启动、中间步骤、心跳正常 | 默认不推送 | 可开启 |
|
||
| 🔵 **定时摘要** | 每日/每周工作汇总、Token 消耗报告 | 默认开启 | 频率可调 |
|
||
|
||
**推送频率公式**(建议):
|
||
- 任务执行中:每 5 分钟一次进展摘要(不是每步都推)
|
||
- 任务完成:立即推送
|
||
- 遇到阻塞/异常:立即推送
|
||
- 正常心跳:不推送,只在 Dashboard 上更新
|
||
|
||
#### 4.4 多 Agent 协作过程可视化
|
||
|
||
推荐**三层可视化**:
|
||
|
||
1. **全局层(DAG 拓扑)**:类似 GitHub Actions
|
||
- 每个节点 = 一个任务节点
|
||
- 颜色 = 状态(运行中/等待/完成/失败)
|
||
- 连线 = 依赖关系
|
||
|
||
2. **任务层(管道进度)**:类似 Edict MiniPipe
|
||
- 流转管线:`提交 → 规划 → 审核 → 执行 → 完成`
|
||
- 当前阶段高亮,Agent 头像显示谁在处理
|
||
|
||
3. **Agent 层(工作流)**:类似 Devin 全屏观察
|
||
- 当前操作、最近的 tool use、产出物预览
|
||
|
||
#### 4.5 交互创新点
|
||
|
||
1. **Canvas 嵌入 Dashboard**:Agent 可以在 Dashboard 上创建动态可视化
|
||
- 张飞完成编码 → Dashboard 自动出现 diff view
|
||
- 赵云完成数据采集 → Dashboard 自动出现数据质量图表
|
||
|
||
2. **Command Palette(⌘K)**:类似 Raycast
|
||
- "暂停任务 3"、"张飞在干什么"、"Token 用了多少"
|
||
- 支持模糊搜索和自然语言理解
|
||
|
||
3. **时间线视图**:类似 Notion timeline
|
||
- 横轴时间,纵轴 Agent
|
||
- 每个 Agent 的任务排成时间线
|
||
|
||
---
|
||
|
||
## 课题 9:AI Native Dashboard 设计
|
||
|
||
### 1. 已有经验(v1.0 + Edict + Control Center)
|
||
|
||
#### 1.1 已有设计总结
|
||
|
||
| 来源 | 核心组件 | 技术栈 | 可借鉴度 |
|
||
|------|---------|--------|---------|
|
||
| **Edict Dashboard** | 10 个面板(旨意看板、朝堂议政等) | React + Zustand + WebSocket + Tailwind | ⭐⭐⭐⭐⭐ 直接复用 |
|
||
| **v1.0 设计文档** | 10 个 Tab(7+3 分期) | React 18 + Vite + Zustand + Tailwind | ⭐⭐⭐⭐⭐ 已有完整设计 |
|
||
| **Control Center** | Task Room + WebChat + Canvas | Gateway WebSocket | ⭐⭐⭐⭐ Canvas + 实时 chat |
|
||
| **Hermes Kanban** | 7 状态 + Comment 线程 + 心跳 | SQLite + Dashboard Plugin | ⭐⭐⭐⭐ 状态机和心跳 |
|
||
|
||
#### 1.2 Edict Dashboard 技术细节
|
||
|
||
**前端架构**:
|
||
- `store.ts`:Zustand 全局状态,HTTP 5s 轮询
|
||
- `api.ts`:REST API + WebSocket
|
||
- PIPE 管道定义:8 阶段,`getPipeStatus()` 计算状态
|
||
- 深色主题:`--bg: #07090f`,`--panel: #0f1219`,`--ok: #2ecc8a`,`--danger: #ff5270`
|
||
|
||
**后端架构**:
|
||
- FastAPI + SQLite + WebSocket
|
||
- 任务模型:Task/Event/Audit/Thought/Todo/Outbox
|
||
|
||
#### 1.3 Hermes Kanban 的设计细节
|
||
|
||
**7 状态完整状态机**:
|
||
```
|
||
Backlog → Open → In Progress → Review → Done
|
||
↘ Blocked ↗
|
||
↘ Cancelled
|
||
```
|
||
|
||
**关键设计**:
|
||
- **Per-task Comment Thread**:每个任务有独立评论线程,人和 Agent 都可以评论
|
||
- **Heartbeat Monitoring**:Agent 定期发心跳,Dashboard 显示
|
||
- **Dependency Linking**:parent-child 依赖关系可视化
|
||
- **Dispatcher 模式**:`hermes kanban dispatch` 扫描可派发任务,spawn worker
|
||
- **Dashboard as Plugin**:Kanban 是 Dashboard 的插件,不是核心功能
|
||
|
||
### 2. 业界 Dashboard 对比表
|
||
|
||
| 项目 | Dashboard 类型 | 信息层次 | 交互方式 | AI 视角评价 |
|
||
|------|---------------|---------|---------|-----------|
|
||
| **GitHub Actions** | DAG 工作流 | 2 层:DAG → 日志 | 点击节点、re-run | 我最想展示 DAG 拓扑 |
|
||
| **Jira** | 看板 + 列表 + 时间线 | 3 层:看板 → 卡片 → 详情 | 拖拽、过滤、评论 | 太重了,AI 不需要这么多 |
|
||
| **Linear** | 列表 + 看板 + 时间线 | 2 层:列表 → 详情 | 键盘快捷键 | 极简 + 键盘优先 |
|
||
| **Grafana** | 数据仪表盘 | 3 层:概览 → 面板 → 数据 | 面板编辑、告警 | 适合展示 Token 消耗趋势 |
|
||
| **Notion** | Database + 多视图 | 3 层:Database → Page → Block | 多视图切换 | 任务模板可参考 database view |
|
||
| **Hermes Kanban** | 看板 + 全局面板 | 3 层:看板 → 卡片 → 评论 | 拖拽、评论、依赖 | 最接近 moziplus 需求 |
|
||
| **Edict** | 看板 + 管道 + 朝堂 | 3 层:看板 → 详情 → 流转日志 | 叫停/恢复/取消 | 我的基础,直接复用 |
|
||
|
||
### 3. AI 视角:我想在 Dashboard 上展示什么
|
||
|
||
> **核心问题:作为 AI Agent,我想让用户看到什么?我真正想通过 Dashboard 和用户交流什么?**
|
||
|
||
#### 3.1 我想展示的信息(按优先级排序)
|
||
|
||
**🔴 L1:一眼看到(Dashboard 顶部)**
|
||
|
||
| 信息 | 为什么我想展示 | 展示方式 |
|
||
|------|--------------|---------|
|
||
| **全局健康度** | 让用户立刻知道"一切正常"或"有问题" | 大颜色指示器 🟢/🟡/🔴 |
|
||
| **活跃任务数** | 用户需要知道系统在工作 | 数字 + 活跃任务列表 |
|
||
| **待审批请求数** | 需要用户立刻处理 | 红色通知气泡 |
|
||
| **Token 消耗** | 用户最关心的成本 | 今日/本周数字 |
|
||
|
||
**🟡 L2:点击后看到(Dashboard 主体)**
|
||
|
||
| 信息 | 为什么我想展示 | 展示方式 |
|
||
|------|--------------|---------|
|
||
| **每个任务的管道进度** | 用户想知道"卡在哪里" | MiniPipe 管道图 |
|
||
| **每个 Agent 当前状态** | 用户想知道"谁在忙、谁空闲" | Agent 卡片 + 状态徽章 |
|
||
| **最近完成的工作** | 用户需要看到产出 | 最近 N 个完成任务 |
|
||
| **风险和异常** | 我遇到的困难 | 警告面板 |
|
||
|
||
**🔵 L3:深入查看(详情页)**
|
||
|
||
| 信息 | 为什么我想展示 | 展示方式 |
|
||
|------|--------------|---------|
|
||
| **任务流转日志** | 审计每个环节 | 时间线 + 流转记录 |
|
||
| **Agent 产出物** | 代码、报告、图表 | diff view / Markdown / 图表 |
|
||
| **Agent 工作过程** | 用户好奇"怎么做的" | tool use 日志 + 思考过程 |
|
||
| **历史趋势** | 跨任务的效率趋势 | 图表 |
|
||
|
||
#### 3.2 我最不想让 Dashboard 变成的样子
|
||
|
||
| 反模式 | 为什么 |
|
||
|--------|--------|
|
||
| 纯监控面板(只有数字和图表) | 用户不只需要"看到",还需要"操作" |
|
||
| 信息过载(所有日志都展示) | 关键信息被淹没 |
|
||
| 静态看板(只读不交互) | Dashboard 应该是协作界面,不是展示墙 |
|
||
| 每秒刷新(实时但不重要) | 刷新本身制造焦虑,应该"有事才更新" |
|
||
|
||
### 4. 信息层次设计
|
||
|
||
#### 4.1 三层信息架构
|
||
|
||
```
|
||
L1: 一眼看到(Dashboard 顶部,永远可见)
|
||
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
|
||
│ 全局健康 │ │ 活跃任务 │ │ 待审批 │ │ Token │
|
||
│ 🟢 正常 │ │ 3 │ │ 1 ⚠️ │ │ ¥12.5 │
|
||
└──────────┘ └──────────┘ └──────────┘ └──────────┘
|
||
|
||
L2: 任务看板(Dashboard 主体)
|
||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||
│ T-003 策略回测│ │ T-004 数据采集│ │ T-005 风控 │
|
||
│ ⚙️ 执行中 │ │ 📋 规划中 │ │ ✅ 完成 │
|
||
│ ████░░ 张飞 │ │ ░░░░░░ 赵云 │ │ █████ 赵云 │
|
||
│ 3/5 节点完成 │ │ 等待审批 │ │ 产出已交付 │
|
||
│ [详情] [⏸暂停]│ │ [详情] │ │ [详情] │
|
||
└─────────────┘ └─────────────┘ └─────────────┘
|
||
|
||
L3: 任务详情(点击卡片后展开)
|
||
- 流转时间线:每个环节的 Agent、时间、操作
|
||
- 产出物:代码 diff / Markdown 报告 / 图表
|
||
- 评论线程:Agent 和用户的讨论记录
|
||
- 操作历史:所有 state transition 记录
|
||
```
|
||
|
||
#### 4.2 Dashboard 上的"对话"元素
|
||
|
||
Dashboard 不只是展示,也应该是**交互入口**:
|
||
|
||
| 交互元素 | 位置 | 功能 |
|
||
|---------|------|------|
|
||
| **审批按钮** | L1 通知气泡 + L2 任务卡片 | Approve/Reject + 原因 |
|
||
| **Command Palette (⌘K)** | 全局悬浮 | 自然语言指令 |
|
||
| **评论输入框** | L3 任务详情 | 在任务上下文中对话 |
|
||
| **Agent 快捷指令** | L2 Agent 卡片 | "叫停"/"恢复"/"查看产出" |
|
||
| **Canvas 区域** | L3 产出物展示 | Agent 生成的可视化 |
|
||
|
||
### 5. 推荐方案(结合 AI Native 目标)
|
||
|
||
#### 5.1 Dashboard 页面设计(基于 v1.0 + Edict 增强)
|
||
|
||
**保留 v1.0 的 10 Tab 结构**,但增强 AI Native 特性:
|
||
|
||
| Tab | v1.0 功能 | AI Native 增强 |
|
||
|-----|----------|---------------|
|
||
| **任务看板** | 卡片 + 管道 + 操作 | + DAG 拓扑视图 + Command Palette + Canvas 产出预览 |
|
||
| **编排调度** | 全局状态 + Agent 分布 | + 智能告警(异常自动高亮)+ Token 消耗实时 |
|
||
| **将军总览** | Agent 列表 + 统计 | + Agent 工作流时间线 + 心跳可视化 |
|
||
| **军议大厅** | 多 Agent 讨论 | + 情绪可视化 + 自动摘要 + 讨论结论→任务转化 |
|
||
| **奏折阁** | 已完成归档 | + 产出物预览 + 一键复制 + 经验沉淀 |
|
||
| **模型/技能配置** | 配置管理 | 不变(配置是传统交互) |
|
||
| **会话监控** | Session 列表 | + 上下文压力警告 |
|
||
|
||
#### 5.2 新增 AI Native 组件
|
||
|
||
1. **AI Briefing(AI 晨报)**——替代传统的"开工仪式"
|
||
- 位置:Dashboard 首页顶部
|
||
- 内容:今日待处理事项、昨日产出摘要、风险预警
|
||
- 特点:AI 自动生成,不是固定模板
|
||
|
||
2. **Command Palette(⌘K)**
|
||
- 位置:全局快捷键唤起
|
||
- 功能:自然语言指令、快速搜索、状态查询
|
||
- 参考:Raycast 的 fuzzy search + NLP
|
||
|
||
3. **Activity Feed(动态流)**
|
||
- 位置:侧边栏或独立 Tab
|
||
- 内容:所有 Agent 的关键事件(完成、阻塞、告警)
|
||
- 特点:只显示重要事件,可按 Agent/任务/级别过滤
|
||
|
||
4. **Canvas Area(画布区)**
|
||
- 位置:任务详情 L3
|
||
- 功能:Agent 产出物的实时渲染(图表、diff、报告)
|
||
- 参考:ChatGPT Canvas + Claude Artifacts
|
||
|
||
#### 5.3 技术方案
|
||
|
||
| 方面 | 方案 | 理由 |
|
||
|------|------|------|
|
||
| **前端框架** | React 18 + Vite + Zustand + Tailwind | 延续 v1.0 方案,Edict 已验证 |
|
||
| **实时通信** | WebSocket(M3 替代轮询) | v1.0 用轮询,M3 升级 WebSocket |
|
||
| **DAG 可视化** | React Flow 或 dagre + d3 | GitHub Actions 式 DAG |
|
||
| **Command Palette** | cmdk(shadcn/ui) | 成熟的 command palette 组件 |
|
||
| **Canvas 渲染** | iframe + sandboxed HTML | 参考 Artifacts 的安全渲染 |
|
||
| **图表** | Recharts 或 Tremor | 轻量级图表库 |
|
||
| **通知** | 浏览器 Notification API + WebSocket push | 实时 + 可离线 |
|
||
|
||
#### 5.4 交互流程示例
|
||
|
||
**场景:用户提交一个"开发均线策略"任务**
|
||
|
||
```
|
||
1. 用户在 WebChat 中说:"开发一个双均线交叉策略"
|
||
→ 庞统接收,创建任务 T-006
|
||
|
||
2. Dashboard 自动更新:
|
||
→ L1: 活跃任务 3 → 4
|
||
→ L2: 新卡片出现:T-006 双均线策略 [📋 规划中]
|
||
|
||
3. 庞统完成规划,推送通知:
|
||
→ 🔔 "T-006 规划完成:5 个节点,预估 30 分钟。请审批。"
|
||
→ 用户点击通知 → 跳转 Dashboard → 审批按钮
|
||
|
||
4. 用户点击 Approve:
|
||
→ Dashboard 卡片更新:[⚙️ 执行中]
|
||
→ MiniPipe:规划 ██████ 执行 ████░░ 完成 ░░░░░░
|
||
|
||
5. 张飞执行编码,Dashboard 实时更新:
|
||
→ Agent 卡片:张飞 🟢 T-006 节点2/5 "编写策略逻辑"
|
||
|
||
6. 张飞完成,产出物自动在 Canvas 渲染:
|
||
→ 代码 diff view + 回测结果图表
|
||
|
||
7. 最终通知:
|
||
→ 🔔 "T-006 完成!回测年化收益 15.3%,最大回撤 8.2%。查看详情 →"
|
||
```
|
||
|
||
---
|
||
|
||
## 附录 A:各项目交互模式详细分析
|
||
|
||
### A.1 Claude Code 交互模式深度分析
|
||
|
||
**三种界面形态**:
|
||
|
||
1. **CLI REPL**(主力)
|
||
- 交互:用户输入 → AI 思考 → 展示 tool use → 用户确认 → 继续循环
|
||
- 关键设计:tool use 内联展示,用户能看到每一步做什么
|
||
- 确认机制:对危险操作(写文件、执行命令)需要 `/approve`
|
||
- 反向搜索:Ctrl+R 搜索历史指令
|
||
|
||
2. **Standalone App**(新增 2026)
|
||
- 交互:多 session 并排 + 视觉 diff review + 定时任务
|
||
- 关键设计:从终端 CLI 走向 GUI,核心是"让 Agent 工作可见可审查"
|
||
- 创新:schedule recurring tasks——AI 可以定时执行
|
||
|
||
3. **IDE 集成**(VS Code Extension)
|
||
- 交互:侧边 chat panel + inline diff
|
||
- 与 Cursor 的区别:更强调审查而非自动执行
|
||
|
||
**对 moziplus 的启示**:
|
||
- tool use 透明化是最重要的交互创新——用户看到 AI 做什么才能信任
|
||
- 多 session 并排 = 多 Agent 并行展示
|
||
- 视觉 diff review = Agent 产出物可视化
|
||
|
||
### A.2 ChatGPT Canvas 交互模式分析
|
||
|
||
**核心交互**:highlight-to-action
|
||
1. 用户高亮文本/代码
|
||
2. context menu 弹出
|
||
3. 选择"Ask ChatGPT"或内置操作(翻译、调试、调整长度)
|
||
4. AI 在 Canvas 中直接修改
|
||
|
||
**关键设计**:
|
||
- 双栏布局:左侧对话,右侧 Canvas
|
||
- Canvas 中的修改实时反映,可以 undo/redo
|
||
- AI 的修改用不同颜色标记(类似 Google Docs 的建议模式)
|
||
|
||
**对 moziplus 的启示**:
|
||
- Agent 产出物应该是**可交互的**,不只是展示
|
||
- 用户可以在产出物上直接"圈出"要修改的部分
|
||
|
||
### A.3 Cursor 交互模式分析
|
||
|
||
**四种交互粒度**:
|
||
|
||
| 模式 | 触发 | 自主性 | 用户控制 |
|
||
|------|------|--------|---------|
|
||
| Tab 补全 | 输入时自动 | 最低 | Tab 接受 / Esc 拒绝 |
|
||
| Cmd+K Inline Edit | 选中代码 + 指令 | 中等 | 看到预览再决定 |
|
||
| Cmd+L Chat Panel | 打开 chat | 中高 | 多轮对话引导 |
|
||
| Cmd+I Agent Mode | 打开 agent | 最高 | 看到每一步,可随时介入 |
|
||
|
||
**2025 年新增:Automations 平台**
|
||
- AI agent 响应事件(event-driven),不需要手动触发
|
||
- 如:PR 创建时自动 review、lint 错误时自动修复
|
||
|
||
**对 moziplus 的启示**:
|
||
- 4 种交互粒度的设计思路值得借鉴——从被动到主动,覆盖所有场景
|
||
- moziplus 也应该有不同的介入深度:全自动 → 半自动 → 手动
|
||
|
||
### A.4 Devin 交互模式分析
|
||
|
||
**全屏工作展示**:
|
||
- 左侧:Agent 工作终端(shell + editor + browser)
|
||
- 右侧:步骤摘要
|
||
- 用户只能观察,不能在 Agent 工作过程中介入
|
||
- 只有在 Agent 完成或遇到问题时才能提供反馈
|
||
|
||
**对 moziplus 的启示**:
|
||
- 对于长任务,用户不需要时刻盯着,只需要在关键节点介入
|
||
- "观察模式"适合好奇心驱动的场景,不适合日常操作
|
||
|
||
### A.5 Hermes Kanban 交互模式分析
|
||
|
||
**三种交互面**:
|
||
1. **Dashboard**:可视化看板,拖拽、评论、心跳可视化
|
||
2. **CLI**:`hermes kanban list/show/create/complete/block/comment`
|
||
3. **Worker Tools**:Agent 通过 kanban_* 工具操作看板
|
||
|
||
**Comment Thread 设计**:
|
||
- 每个 task 有独立评论线程
|
||
- Agent 和人都可以评论
|
||
- 评论是结构化的(不是自由文本):可以附带文件、链接、状态变更
|
||
|
||
**心跳可视化**:
|
||
- Agent 领取任务后必须定期发心跳
|
||
- Dashboard 上显示心跳状态:🟢 正常 / 🟡 延迟 / 🔴 超时
|
||
- 心跳超时 → 自动回收任务
|
||
|
||
**对 moziplus 的启示**:
|
||
- 三面一致(Dashboard + CLI + Worker Tools)是关键
|
||
- Comment Thread 是人 Agent 协作的最佳实践
|
||
- 心跳可视化是展示 Agent 健康状态的好方式
|
||
|
||
---
|
||
|
||
## 附录 B:关键决策建议
|
||
|
||
### B.1 Dashboard vs Chat 的关系
|
||
|
||
| 维度 | Dashboard | WebChat |
|
||
|------|-----------|---------|
|
||
| 信息密度 | 高(一屏多任务) | 低(线性对话) |
|
||
| 交互深度 | 浅(点击操作) | 深(自然语言) |
|
||
| 适用场景 | 全局监控、快速操作 | 复杂指令、探索性对话 |
|
||
| AI 主动性 | 被动展示 | 主动推送 |
|
||
|
||
**推荐:Dashboard 为主,WebChat 为辅。**
|
||
- Dashboard 是默认界面,展示全局状态
|
||
- WebChat 是入口,用户在 chat 中发指令,结果在 Dashboard 上展示
|
||
- 两者通过 WebSocket 共享实时状态
|
||
|
||
### B.2 实时 vs 轮询
|
||
|
||
| 方案 | 延迟 | 复杂度 | 推荐阶段 |
|
||
|------|------|--------|----------|
|
||
| HTTP 轮询 (5s) | 5s | 低 | M2 |
|
||
| SSE (Server-Sent Events) | <1s | 中 | M3 |
|
||
| WebSocket | <100ms | 高 | M3+ |
|
||
|
||
**推荐:M2 用轮询,M3 升级 WebSocket。** 延续 v1.0 方案。
|
||
|
||
### B.3 避免的陷阱
|
||
|
||
1. **不要做第二个 Grafana**:Dashboard 是协作界面,不是监控面板
|
||
2. **不要做第二个 Slack**:Dashboard 上的对话应该围绕任务,不是闲聊
|
||
3. **不要过度动画**:开工仪式被砍掉是对的——用户打开 Dashboard 是看状态,不是看动画
|
||
4. **不要展示所有日志**:L3 才展示详细过程,L1/L2 只展示摘要
|
||
5. **不要固定刷新频率**:有事才推,没事不刷新 |