0.5 缩减重构

This commit is contained in:
lix-2026
2026-04-13 19:21:42 +08:00
parent af92c4b149
commit 71fb1aee7e
2023 changed files with 21113 additions and 394493 deletions
@@ -0,0 +1,234 @@
# MNOTE 全局 AI 面板改版设计(参考 AiChem,按现有工具适配)
## 1. 目标
本次改版目标不是把 `AiChem` 的全局 AI 面板原样搬过来,而是:
1. 参考 `F:\SOFT\AiChem\aichem-frontend\src\components\assistant\AssistantWidget.vue` 的整体视觉气质与布局节奏。
2. 参考 `cankao\image.png` 的暗色面板、顶部工具栏、聊天气泡、底部输入区样式。
3. 结合 MNOTE 当前真实能力,保留并强化:
- SSE 流式对话
- 工具调用日志
- 最大步数控制
- 当前全局 AI 默认可用工具集
4. 明确避免照搬 AiChem 中 MNOTE 当前并不存在的能力,例如:
- 会话历史抽屉
- 用户资料页入口
- 设置面板
- 会话附件池
- Plan / Act 真切换逻辑
---
## 2. 当前现状
MNOTE 当前全局 AI 入口:
- 组件:`wolai-frontend/src/components/ai-agent/AiAgentPanel.tsx`
- 页面:`wolai-frontend/src/app/dev/ai-agent/page.tsx`
- 桌面镜像:`desktop-electron/desktop-next/src/components/ai-agent/AiAgentPanel.tsx`
当前问题:
1. 视觉上仍是开发态 demo,缺少“正式全局 AI”界面感。
2. 对话区与工具日志区只是普通双栏卡片,缺少层次。
3. 没有明确呈现“当前全局 AI 能做什么”。
4. 输入区缺少模型/工具/运行状态等辅助信息的组织。
5. 工具日志的可读性较弱,不利于观察一次任务中的调用链。
---
## 3. 参考来源拆解
### 3.1 AiChem 借鉴点
从 AiChem 当前实现中,适合借鉴的点:
1. **整体暗色外壳**
- 深色背景
- 细边框
- 低对比度分区
2. **顶部栏**
- 左侧品牌 + 当前会话标题
- 右侧一排紧凑图标按钮
3. **消息区**
- 左右分布的气泡
- AI / 我 的短标签头像
- 空状态时直接展示 AI 欢迎卡片
4. **底部输入区**
- 工具/状态信息在输入框上方
- 输入框独立成块
- 发送按钮悬浮在右下角
### 3.2 本次不能直接照搬的点
AiChem 中以下能力当前 MNOTE 全局 AI 没有,不应伪装成已支持:
1. 会话历史侧栏
2. 会话附件池与附件管理
3. 用户中心入口
4. 设置面板与 provider 切换菜单
5. Plan / Act 实际模式切换
---
## 4. MNOTE 当前真实工具能力
根据 `wolai-frontend/src/app/api/ai-agent/run/route.ts``wolai-frontend/src/lib/ai-agent/tools/builtins/registryBuiltins.ts`,当前全局 AI 默认允许:
1. `toolset.readonly`
- `search_web`
2. `toolset.rag_read`
- `rag_lightrag_query`
3. `toolset.docs_read`
- `docs_search`
- `docs_read`
4. `toolset.media_read`
- `image_read`
5. `toolset.slash_write`
- `slash_run`
因此本次 UI 呈现要围绕这些真实能力组织文案与标签:
1. 联网检索
2. LightRAG 检索
3. 跨页面文档搜索/读取
4. 图片 OCR
5. 斜杠命令写入
---
## 5. 改版方案
## 5.1 整体布局
由“两个普通 Card 横排”改成“一个暗色 shell + 主对话区 + 右侧活动区”的结构:
1. 最外层:全屏高度暗色容器。
2. 顶部:统一标题栏。
3. 中部:
- 左侧:聊天主区域
- 右侧:工具活动面板
4. 底部:输入区
这样既能保留 MNOTE 的“工具日志可观测性”,又能接近 AiChem 的整体观感。
## 5.2 顶部栏
顶部栏信息改为:
1. 左侧品牌:`MNOTE`
2. 主标题:`全局 AI`
3. 副标题:显示当前运行模式说明,例如“自动工具编排”
4. 右侧操作:
- `工具面板显隐`
- `恢复示例问题`
- `清空对话`
- `停止`(仅运行中可用)
说明:
1. 不使用 AiChem 的“历史 / 我的 / 设置”等按钮。
2. 只放当前组件真实可执行的动作。
## 5.3 空状态
当没有消息时,展示一张 AI 欢迎卡片,文案基于 MNOTE 当前工具能力:
1. 我可以联网查资料并给出来源
2. 我可以调用 LightRAG 进行知识检索
3. 我可以搜索和读取工作区文档
4. 我可以读取图片 OCR
5. 我可以执行受控斜杠命令
这部分会直接替代目前“暂无消息”的空白状态。
## 5.4 消息气泡
消息区采用更接近参考图的气泡样式:
1. AI 气泡偏中性深灰
2. 用户气泡偏蓝色强调
3. 头像使用短标签:
- AI`AI`
- 用户:`我`
4. 消息文本保留 `whitespace-pre-wrap`
## 5.5 工具活动面板
右侧保留工具日志,但增强结构化:
1. 顶部显示“本轮活动”
2. 显示总数、当前状态
3. 日志按卡片区分:
- 工具调用
- 工具结果
- 错误
4. 每项显示更明确的标签:
- 工具名称
- 请求编号
- 成功/失败
- 耗时
说明:
1. AiChem 的日志多以内联折叠存在于消息中。
2. MNOTE 当前组件已有独立日志流,因此本次保留右侧活动面板,不强行改成内联。
## 5.6 输入区
底部输入区分三层:
1. 第一层:能力标签区
- 当前启用工具集 pill
2. 第二层:运行控制区
- `最大步数`
- 当前状态(待命 / 运行中)
3. 第三层:输入框主体
- 多行输入
- Enter 发送、Shift+Enter 换行
- 右下角发送按钮
- 运行中显示停止按钮
## 5.7 页面外层
`/dev/ai-agent` 页面同步调整为:
1. 去掉开发态说明块的割裂感
2. 保留必要说明,但收敛成顶部一小行 meta 文案
3. 让主体尽可能接近“正式全局 AI 面板”
---
## 6. 本次不做
以下内容明确不纳入本次改版,避免范围失控:
1. 新增会话持久化
2. 新增模型切换
3. 新增工具手动多选
4. 新增历史记录
5. 改造后端接口结构
6. 把工具日志写回消息气泡
---
## 7. 验收标准
完成后应满足:
1. 全局 AI 页面整体视觉明显接近参考图的暗色正式面板。
2. 欢迎态能够正确展示 MNOTE 当前真实工具能力。
3. 输入、发送、停止、清空、恢复示例问题均可正常工作。
4. SSE 消息流与工具日志仍按原逻辑工作。
5. 工具日志面板可以显隐,不影响对话主流程。
6. Web 与桌面镜像保持一致。
---
## 8. 实施顺序
1. 先为 `AiAgentPanel` 补一组针对结构/状态的测试。
2. 再改造 `AiAgentPanel.tsx` 的布局与样式。
3. 同步改造 `desktop-electron/desktop-next` 镜像文件。
4. 最后微调 `app/dev/ai-agent/page.tsx` 外层页面。