在 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 提供了可視化的對話樹管理能力,適合需要頻繁調試歷史分支或進行對話迭代的開發場景。通過不可變節點和清晰的命令接口,它簡化了多分支對話的管理流程。