11 KiB
| date | topic |
|---|---|
| 2026-06-13 | 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 ease、Tab 切换 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
- Trigger: 用户在对话输入框输入
-
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
- 布局合理 — 对话面板占左半屏,右侧辅助信息可按需折叠
- 首 Token <1s — 简单对话(问候、Q&A)首 Token 延迟低于 1 秒
- 消息丰富 — 代码块有语法高亮,工具调用有可视化卡片,图片/文件有预览
- @-mention 可用 — 四类引用均可 autocomplete 选择并注入上下文
- 双主题可用 — 浅色/暗色一键切换,所有组件在两种主题下正常显示
- Computer Use MVP — Agent 能截屏查看并执行点击操作
- 交互流畅 — 所有过渡动画 ≤200ms,操作有即时反馈
- 渐进交付 — 分 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.md),U1-U6 可直接沿用
Outstanding Questions
Resolved:
- Computer Use MVP 的截屏实现方式:使用 OpenCLI
Deferred to Planning:
- @-mention 后端解析的具体协议:引用项如何在 WebSocket 消息中编码,与现有
chat消息类型如何兼容 - 工具调用步骤卡片的折叠/展开交互细节
- 骨架屏的具体形状和占位内容