会话查看器
查看会话对话,支持树形导航、流程可视化和子代理会话。
会话查看器将 Pi 的 JSONL 会话文件渲染为丰富的交互式对话。支持分支对话、可折叠区块和多种可视化模式。
树形视图
左侧边栏以树形结构展示对话。每个节点代表一条消息,在对话分叉的决策点处形成分支。
导航
- 点击任意节点跳转到该消息
- 树形视图采用"最新叶节点"策略——点击节点会导航到该分支中最新的后代
- 分支点(有多个子节点的节点)显示折叠/展开切换
过滤器
树形视图工具栏提供过滤器,控制哪些节点可见:
| 过滤器 | 显示内容 |
|---|---|
| 默认 | 用户 + 助手消息 |
| 无工具 | 隐藏工具调用节点 |
| 用户 | 仅用户消息 |
| 全部 | 所有条目(包括元数据) |
| Read | 仅 read 工具调用 |
| Edit | 仅 edit 工具调用 |
| Write | 仅 write 工具调用 |
流程可视化
切换到流程视图,获得基于 React Flow 的图形化可视化。该模式:
- 将对话渲染为紧凑树形布局的有向图
- 将线性工具调用链折叠为边标签(如
bash ×2, read, edit) - 使用基于角色的节点图标:用户 / 机器人 / 工具 / 设置
- 包含带角色着色的 MiniMap
- 点击任意节点导航到对应的对话分支
流程工具栏
- 放大 / 缩小
- 适应视图(自动缩放以显示所有节点)
- 聚焦当前节点
流程视图与树形视图共享同一过滤栏。
可折叠区块
工具调用
工具调用(bash、read、edit、write 等)渲染为可折叠卡片。按 Cmd/Ctrl + O 切换所有工具调用的展开/折叠。
每个工具调用显示:
- 工具名称和参数
- 执行结果(可展开)
- 语法高亮的代码块,带复制按钮
思考块
AI 的思考/推理块默认折叠。按 Cmd/Ctrl + T 切换。
子代理会话
当会话使用子代理(通过 Pi 的 subagent 工具)时,查看器会渲染可点击的卡片,显示每次子代理运行的信息:
- 代理名称和模型
- 运行时长和 Token 使用量
- 任务预览
点击卡片可在模态窗口中打开完整的子代理对话。模态窗口复用相同的消息渲染组件(UserMessage、AssistantMessage、ToolCallList),并支持:
- 嵌套子代理(堆叠模态窗口,递增 z-index)
- 思考/工具切换(
Cmd/Ctrl + T/Cmd/Ctrl + O) - 单次、并行、链式和管理操作模式
子代理产物存储在 session-dir/subagent-artifacts/,使用与主会话相同的 JSONL 格式。查看器通过回退逻辑解析产物路径。
会话内容缓存
基于文件路径 + 修改时间戳的 LRU 缓存(5 个条目)加速了回退导航。缓存命中时完全跳过文件读取。
快捷键
| 快捷键 | 操作 |
|---|---|
Cmd/Ctrl + T | 切换思考块 |
Cmd/Ctrl + O | 切换工具调用展开 |
Cmd/Ctrl + F | 聚焦搜索 |
Cmd/Ctrl + E | 导出并在浏览器中打开 |
Cmd/Ctrl + R | 在终端中恢复会话 |