问题描述
当前 AI 聊天界面在 Geek/Evolution 模式下,tool call 满面板与消息气泡割裂,且 tool call 面板自身也割裂。具体表现:
- InlineToolCall - 简单徽章在气泡内
- ToolResults - 完整输出卡片在气泡外
- SessionSummary - 独立面板
- GenerativeUIContainer - 又一个独立区域
这导致用户需要四处滚动查看完整对话上下文。
解决方案
采用 Warp 的 Block 设计理念,将每个用户输入 + AI 回复封装为一个统一的 UnifiedMessageBlock。
功能范围
包含:
- UnifiedMessageBlock 组件(用户消息 + AI 响应统一容器)
- 可折叠/展开功能(新 Block 默认展开,历史 Block 默认折叠)
- 保留所有现有交互(复制/删除/错误标识)
- 适配三种 Parrot 主题(Normal/Geek/Evolution)
不包含(未来迭代):
- Block 导出/分享
- Block 级别的搜索/导航
技术方案
前端组件:
web/src/components/AIChat/
├── UnifiedMessageBlock.tsx # 主容器组件
├── BlockHeader.tsx # 头部
├── BlockCollapsibleBody.tsx # 主体(可折叠)
├── BlockActions.tsx # 操作栏
└── useBlockState.ts # 状态管理 Hook
主题适配:
| 模式 |
边框色 |
状态指示 |
| Normal |
border-zinc-200/300 |
灰色 |
| Geek |
border-green-500/30 |
绿色 |
| Evolution |
border-purple-500/30 |
紫色 |
折叠策略:
- 新 Block(流式中)→ 展开
- 最新 Block(刚完成)→ 展开
- 历史 Block(非最新)→ 折叠
参考资源
复杂度
- 工作量: 2-3 人周
- 风险: 中等(流式更新性能)
- 依赖: 无
验收标准
调研时间: 2026-02-04 | 调研版本: v1.0
问题描述
当前 AI 聊天界面在 Geek/Evolution 模式下,tool call 满面板与消息气泡割裂,且 tool call 面板自身也割裂。具体表现:
这导致用户需要四处滚动查看完整对话上下文。
解决方案
采用 Warp 的 Block 设计理念,将每个用户输入 + AI 回复封装为一个统一的 UnifiedMessageBlock。
功能范围
包含:
不包含(未来迭代):
技术方案
前端组件:
主题适配:
border-zinc-200/300border-green-500/30border-purple-500/30折叠策略:
参考资源
docs/research/event-type-ui-research.mddocs/research/cc-runner-message-handling-research.md复杂度
验收标准
make check-all通过UnifiedMessageBlock组件docs/dev-guides/FRONTEND.md调研时间: 2026-02-04 | 调研版本: v1.0