在 DeepSeek-Harness (DSH) 中进行智能体开发时,对话历史通常以线性列表呈现。一旦继续对话,对过往路径的追溯或修改就会变得困难。dsh-session-tree-extension 插件提供了追加式、多分支的对话树结构,允许在任意历史节点分叉、克隆对话,并以合并的 WebUI 图表浏览整个血缘关系。
该插件由 robiteame 维护,旨在为 DSH 添加对话树功能。它采用追加式设计,所有节点均为不可变状态,分支和跳转仅移动光标,不修改旧分支。
核心功能¶
插件提供以下核心能力:
- 追加式、多分支对话树:所有历史记录以节点形式存储,不可变。
- 从任意历史节点分叉:在历史记录的任意位置创建新分支。
- 克隆对话:将当前对话复制到新的独立会话中。
- WebUI 浏览:通过合并的图表浏览完整的血缘关系。
- 三个命令:
/tree、/fork、/clone。
安装与启用¶
使用以下命令安装插件:
dsh plugin --profile <profile> add @robiteame/dsh-session-tree
安装完成后,重启对应的 Profile。配置层会增加三个组件(pi-agent-session-tree、tool-session-tree、ui-session-tree),分别提供域服务、命令和浏览器面板。可以通过以下命令验证安装:
dsh --profile <profile> --dump-config
典型用法¶
插件定义了三个命令,用于管理对话树:
/tree:打开右侧面板,显示当前会话血缘的合并图表。在该视图中,祖先节点、分叉点和克隆节点以 git 风格的视图展示,包含用户消息、助手回复、工具调用等连接节点。点击节点可绑定,点击其他会话节点可跳转至该会话。/fork:从任意历史节点分叉。分叉后的新分支会出现在图表中,并在源会话的行下方显示为可折叠的内联菜单。原对话保持不变。/clone:将当前对话复制到一个独立的新会话中。源对话保持只读,克隆的会话可以独立继续。
适用场景与注意事项¶
该插件要求以下环境:
- DeepSeek-Harness 0.1.5-rc.2 或兼容的 0.1.5 构建。
- Cordis ^4.0.2。
插件在运行时会检测分支选择 API。根据环境不同,支持三种模式:
- Native mode:在带有特定补丁的 DSH 检出中,直接使用原生 API 进行跳转和分叉。
- Stock mode:在标准 DSH 中,通过官方追加 API 模拟切换,并在本地存储分支状态。
- Projection mode:如果连模拟模式都不可用,仅移动面板和投影,不修改历史。
无论哪种模式,插件都不会修改 Harness 的核心文件。许可证为 MIT。
总结¶
dsh-session-tree-extension 为 DSH 提供了可视化的对话树管理能力,适合需要频繁调试历史分支或进行对话迭代的开发场景。通过不可变节点和清晰的命令接口,它简化了多分支对话的管理流程。