fischer-agentkit/docs/brainstorms/2026-06-13-agentkit-platfor...

192 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: "2026-06-13"
topic: "agentkit-platform-experience-upgrade"
---
## Summary
Fischer AgentKit 平台体验全面升级——布局重构为左对话+右双栏、对话体验深化(首 Token 即渲染+消息格式增强+@-mention 四类引用)、响应速度核心优化(启发式路由+合并 LLM 调用、暗色主题与交互增强、Computer Use MVP——分三个冲击波迭代交付。
## Problem Frame
当前 AgentKit 处于"后端能力丰富、前端体验粗糙"的失衡状态。后端已实现 ReAct 推理、Skill 系统、Pipeline 编排、三层记忆、自进化、多 Agent 市场等完整能力,但 GUI 仍停留在功能可用层面:四象限等分布局让对话空间被压缩到 1/4 屏幕;消息仅支持纯文本渲染,代码块无高亮、工具调用无可视化;用户输入后需等待 5-10 秒才看到首个响应 Token无暗色主题、无过渡动画、无操作反馈Computer Use 前后端均为占位状态。
竞品Devin、Cursor、v0.dev已普遍采用 Agent-First 布局 + 统一设计系统 + 流式渲染 + 视觉操作能力。AgentKit 需要对齐这一标准,将"能用"升级为"好用"。
## Key Decisions
**冲击波迭代策略。** 三个迭代各聚焦一个体验质变:迭代 1 解决对话"快且宽敞"(布局+速度+格式),迭代 2 解决"丰富且精准"(双主题+@-mention+交互),迭代 3 解决"专业且全能"Computer Use+剩余优化)。每个迭代交付后用户都能感受到明确的体验提升。
**四线并行。** GUI 产品化、Chat 体验深化、响应速度优化、Computer Use 四条线并行推进,每个迭代从每条线各取一部分,交叉组合为端到端可交付的体验升级。
**Computer Use MVP 先截屏后容器。** 先实现截屏查看+简单点击操作的前后端闭环Docker 容器化隔离延后。MVP 让用户能通过对话让 Agent"看到"屏幕并执行简单操作,验证价值后再投入容器化成本。
**@-mention 四类全覆盖。** 支持 @文件、@技能、@工作流、@Agent 四类引用,在对话输入框中通过 autocomplete 下拉选择,选中后作为上下文注入 Agent 推理。
**Cmd+K 内联编辑延后。** AgentKit 当前没有代码编辑器Cmd+K 的场景定义不清,延后到代码预览集成完成后再评估。
## Actors
- A1. **开发者/运维工程师** — 通过对话面板与 Agent 交互,使用 @-mention 引用上下文,通过 Computer Use 让 Agent 操作远程环境
- A2. **Agent** — 接收用户消息,执行推理和工具调用,流式返回结果,响应 @-mention 注入的上下文
## Requirements
### 迭代 1对话体验质变
#### 布局重构
R1. 左对话 + 右双栏布局 — AgentLayout 从四象限等分布局重构为左半屏对话面板 + 右半屏上下双栏(上:代码/工作流/知识库,下:监控/技能/设置),左右分割默认 55:45右侧上下分割默认 60:40分割比例保存到 localStorage
R2. 面板折叠为 Tab 栏 — 每个面板可独立折叠为约 38px 的 Tab 栏,折叠状态保存到 localStorage折叠/展开有 200ms ease 过渡动画
R3. 侧边导航精简为图标模式 — 32px 宽图标导航栏,点击图标切换右侧面板 Tab 并展开,当前激活图标高亮,导航栏可通过 TopNav 按钮折叠/展开
R4. 小屏幕适配 — <1024px 显示提示1024-1280px 右下面板默认折叠,≥1280px 完整展示
#### 响应速度核心
R5. 启发式分类器替代 LLM quick_classify 用零成本的本地启发式规则消息长度关键词密度工具提示检测替代 `CostAwareRouter.quick_classify()` LLM 调用通过配置开关可回退到 LLM 模式
R6. 合并路由 LLM 调用 当启发式不确定需要 LLM 路由时将复杂度评分和意图分类合并为单次 LLM 调用而非两次串行调用
R7. Token 即渲染 前端 WebSocket 接收到首个流式 Token 即开始渲染不等完整块后端 ReActEngine 流式输出与前端渲染对齐
#### 消息格式增强
R8. 代码块语法高亮 消息中的代码块自动识别语言并语法高亮支持复制按钮
R9. 工具调用可视化 工具调用显示为可折叠的步骤卡片展示工具名称参数摘要执行状态结果预览替代当前的纯文本标签
R10. 图片和文件预览 消息中的图片内联显示缩略图文件显示为可下载卡片文件名+大小+类型图标
### 迭代 2专业感 + 精准度
#### 设计系统
R11. 暗色主题 在浅色 Token 基础上新增暗色主题 Token 变体TopNav 增加主题切换按钮偏好保存到 localStorage暗色配色为深色背景+荧光强调色+终端原生感
R12. 组件样式统一 所有组件统一引用 Design Token消除硬编码值Ant Design 全局覆盖通过 Token 驱动
#### @-mention 上下文引用
R13. @-mention Autocomplete 对话输入框中输入 `@` 触发下拉选择器支持 @文件知识库文档)、@技能已注册技能)、@工作流已有工作流)、@Agent已配置 Agent支持模糊搜索
R14. @-mention 上下文注入 选中的引用项作为结构化上下文注入 Agent 推理后端解析引用类型和 ID将对应内容文档片段技能描述工作流定义Agent 配置加入对话上下文
R15. @-mention 引用标签 输入框中已选引用显示为可删除的标签类似 ContextPill发送后消息中显示为可点击的引用链接
#### 交互增强
R16. 过渡动画 面板折叠/展开 200ms easeTab 切换 150ms 淡入淡出列表项交错渐入 stagger 50ms路由切换 200ms 淡入淡出
R17. 操作反馈 按钮点击波纹/缩放反馈加载状态骨架屏替代 `a-spin`成功/失败 Toast 提示WebSocket 断连顶部横幅
R18. 空状态设计 对话/工作流/监控/知识库/技能空状态各有品牌化插图和引导文案
### 迭代 3能力扩展
#### Computer Use MVP
R19. 截屏查看 Agent 可对目标环境执行截屏操作截图实时显示在 Computer Use 面板中支持缩放和滚动
R20. 简单点击操作 Agent 可在截屏上执行点击操作指定坐标操作结果通过新的截屏反馈
R21. Computer Use 面板 右上面板新增 Computer Use Tab展示截屏画面和操作历史支持手动截屏触发
#### 响应速度剩余优化
R22. 并行工具执行 ReActEngine 中多个独立 tool_calls 使用 `asyncio.gather()` 并行执行结果按 tool_call_id 顺序追加通过配置开关可回退串行模式
R23. 异步会话写入 SessionManager `append_message()` 改为非阻塞使用写前缓冲区防止消息丢失优雅关闭时 flush
#### 拖拽交互增强
R24. 分割线拖拽增强 拖拽时高亮分割线显示当前比例百分比
R25. 面板折叠缩略预览 面板折叠时显示缩略内容预览
## Key Flows
- F1. 对话为主的工作流
- **Trigger:** 用户打开 AgentKit
- **Steps:** 左侧对话面板占满左半屏 用户输入消息 启发式分类器即时判断复杂度 ReActEngine 流式推理 Token 即渲染 工具调用显示为步骤卡片 代码块语法高亮 右侧按需展示辅助信息
- **Covered by:** R1, R5, R7, R8, R9
- F2. @-mention 上下文引用
- **Trigger:** 用户在对话输入框输入 `@`
- **Steps:** 下拉选择器弹出 用户输入关键词模糊搜索 选择引用项 引用显示为标签 发送消息 后端解析引用 对应内容注入 Agent 上下文 Agent 基于引用内容推理
- **Covered by:** R13, R14, R15
- F3. Computer Use 操作
- **Trigger:** 用户让 Agent 执行视觉操作"帮我点击屏幕上的保存按钮"
- **Steps:** Agent 调用截屏工具 截图显示在 Computer Use 面板 Agent 分析截图定位目标 执行点击操作 新截屏反馈操作结果 用户可在面板中查看操作历史
- **Covered by:** R19, R20, R21
- F4. 主题切换
- **Trigger:** 用户点击 TopNav 主题切换按钮
- **Steps:** 点击月亮/太阳图标 所有 Token 变量切换 界面平滑过渡 偏好保存到 localStorage
- **Covered by:** R11
## Scope Boundaries
**在范围内:**
- 布局重构左对话 + 右双栏
- Design Token 体系 + 双主题
- 组件样式统一
- Token 即渲染
- 消息格式增强代码高亮工具调用卡片图片/文件预览
- @-mention 四类引用文件技能工作流Agent
- 响应速度优化启发式路由合并调用并行工具异步写入
- Computer Use MVP截屏+点击不含 Docker 容器化
- 过渡动画操作反馈空状态拖拽增强
- 侧边导航精简
- 小屏幕适配
**延迟到后续迭代:**
- Cmd+K 内联编辑
- Computer Use Docker 容器化隔离
- 代码 Diff 查看器实现右上代码Tab 仍为占位
- 代码 Diff Accept/Reject 实际回滚功能
- 响应式移动端适配
- httpx 连接池配置优化
- A/B 测试框架和性能基准 CI
**不在本产品身份内:**
- 多用户协作/实时协同编辑
- 插件市场
- 代码编辑器只读预览不提供编辑能力
## Success Criteria
1. **布局合理** 对话面板占左半屏右侧辅助信息可按需折叠
2. **首 Token <1s** 简单对话问候Q&A Token 延迟低于 1
3. **消息丰富** 代码块有语法高亮工具调用有可视化卡片图片/文件有预览
4. **@-mention 可用** 四类引用均可 autocomplete 选择并注入上下文
5. **双主题可用** 浅色/暗色一键切换所有组件在两种主题下正常显示
6. **Computer Use MVP** Agent 能截屏查看并执行点击操作
7. **交互流畅** 所有过渡动画 200ms操作有即时反馈
8. **渐进交付** 3 个迭代完成每个迭代可独立部署
## Dependencies / Assumptions
- 现有 SplitPane QuadrantPanel 组件支持水平和垂直分割可直接复用
- Ant Design Vue 4.x ConfigProvider 支持 CSS 变量主题注入
- ChatView ChatSidebar 默认折叠不影响左侧对话面板的空间利用
- Vue 3 `<Transition>` `<TransitionGroup>` 可满足过渡动画需求
- `CostAwareRouter` 已有 `_tokenize_content()` `_match_layer0()` 规则基础启发式分类器可复用
- `IntentRouter._classify_with_llm()` prompt 结构可扩展为同时返回复杂度评分
- Computer Use MVP 不依赖 Docker可直接在宿主环境执行截屏和点击
- 现有 `tools/computer_use_session.py` TODO 占位需要替换为实际实现
- 响应速度优化已有详细实施计划docs/plans/2026-06-12-021-feat-chat-response-speed-optimization-plan.mdU1-U6 可直接沿用
## Outstanding Questions
**Resolved:**
- Computer Use MVP 的截屏实现方式使用 OpenCLI
**Deferred to Planning:**
- @-mention 后端解析的具体协议引用项如何在 WebSocket 消息中编码与现有 `chat` 消息类型如何兼容
- 工具调用步骤卡片的折叠/展开交互细节
- 骨架屏的具体形状和占位内容