前言¶
在 DeepSeek Harness(DSH)裏做方案設計、改架構、對比實現路徑時,對話往往不是一條直線:你先走 A 方案,發現不行再 fork 出 B;某個分支裏已經寫清楚的結論,又要回到父會話裏繼續往下推。普通 transcript 會把這些分叉攤平成時間線,主線每次都要重新掃一遍舊決策,既費上下文,也看不清「哪條路是當前採納的主鏈」。
dsh-branch-map(npm 包名 dsh-branch-map,GitHub:Matthew-Laplace/dsh-branch-map)是社區維護的工作流類插件,在 DSH Web UI 裏增加 Conversation View / 分支圖,把每輪對話做成節點、把分叉收成可展開項,並在不改動源會話的前提下支持結論回收、分支比較和上下文編輯。
這是什麼¶
插件定位一句話:面向工程場景的長對話分支圖——保持主鏈可讀,同時保留每一次 fork、保存的結論和顯示層上的上下文裁剪。
- 維護者:Matthew-Laplace(倉庫 README 署名 MIT © 2026 syc-ai)
- 分類:工作流
- 運行環境:DSH
>=0.2.2-rc.1 <0.3.0,需 Web UI profile(註冊conversation.view與 composer dock) - 許可:MIT
插件本體不發起外網請求;會話圖數據通過 Host 的 sessionQuery 讀取,分支元數據落在本地 sidecar 文件。
核心功能¶
主鏈視圖(Mainline)¶
豎向、偏閱讀的輪次鏈。每張卡片上方是 AI conclusion,下方是你的 壓縮意圖;結論輪與決策輪會高亮,並有 conclusion rail 彙總已保存結論。
分叉點默認收成 ⑂N 藥丸;展開某一分支時,到根的路徑仍可見。工具欄提供 Follow / Pin;選中分支後主線可跟隨。中央錨點與固定的 inspector 便於滾輪逐步瀏覽輪次時兩側界面穩定。
樹視圖(Tree)¶
工具欄切換 Mainline / Tree,以整潔的豎向樹展示輪次與摺疊間隙。三檔 LOD:標題 + 意圖(≥80%)、僅標題(≥50%)、點狀(<50%)。當前路徑、當前會話、選中項與側分支用不同視覺狀態區分。兩種視圖各自獨立「相機」,但分支展開、結論與主線狀態共享。
上下文編輯與派生會話¶
下列能力均強調 可逆:編輯落在新分支或新派生會話上,源會話日誌不會被重寫。
| 能力 | 作用 |
|---|---|
| Hide / restore | 僅影響顯示;真實 session log 與模型上下文不變 |
| Context path preview | 預覽下一輪請求將帶入的輪次(標註爲 prediction),可導出 Markdown |
| Rewind here | 從選中輪新建分支,只保留截止該輪的上下文 |
| Merge conclusions | 彙總子分支已存結論爲一條可編輯消息並填入 composer |
| Derive session(Phase 5) | 通過 Host agents.create({ seed }) 生成去掉選定輪次的乾淨派生會話;記錄 parentSession,在圖上顯示爲子分支 |
README 中的工程閉環示意:
mainline ──┬── approach A ── conclusion A
│ └─ return conclusion
├── approach B ── conclusion B
│ └─ choose as mainline
└── cleaned derivation ── continue
數據落盤與隱私¶
- 分支元數據(標籤、分叉點、結論、派生會話血緣):
$DSH_HOME/plugins/branch-map/meta.json - 顯示偏好(主線、隱藏輪次、模式、瀏覽狀態):瀏覽器
localStorage - 派生會話爲真實 DSH session,由
agents.create創建
安裝與啓用¶
DSH 生態裏插件可通過自定義索引或包管理器安裝;不要憑倉庫名自行拼接未經文檔記載的 dsh plugin add github:... 命令。以下與 README 一致。
方式一:DSH 插件市場索引¶
在 DSH 中打開 Plugins,啓用 Experimental plugins → Custom plugin indexes,添加索引 URL:
https://cdn.jsdelivr.net/gh/Matthew-Laplace/dsh-branch-map@v0.2.0/market/index.json
然後在 Discover 標籤頁找到 dsh-branch-map 並安裝。
方式二:npm / 插件管理器¶
標準 DSH bundle,可用插件管理器指定 dsh-branch-map@0.2.0,或先查看包信息:
npm view dsh-branch-map
當前 package 版本爲 0.2.0(以 package.json 與上述索引 URL 爲準)。
典型用法¶
按 README 推薦順序操作即可復現主流程:
- 在會話視圖切換器裏打開 分支圖 / Branch Map。
- 從主線開始:在某輪用
+或 inspector 的 Fork from here 分叉。 - 在分支裏 Save 結論,用 Save and return 帶回父會話。
- 用
⑂N只展開需要的分支;需要全圖時切換 Show all branches。 - 用
Mainline / Tree在「閱讀流」與「結構對比」之間切換。 - 上下文編輯:在 inspector 中隱藏輪次、預覽 context path,再 Rewind 或 Derive session。
若要讓模型真正不再看到已刪輪次,README 明確:隱藏只動顯示;需乾淨上下文時應使用 Derive session,並注意長會話 seed 可能達到數 MB、跨輪壓縮摘要仍可能提及已移除輪次等限制。
適用場景與注意¶
適合誰:在 DSH Web UI 裏進行多方案並行、需要決策樹可視化、要把分支結論合回主線、或要從某一輪「裁剪後繼續」的工程對話。
安裝前宜自查:
- 插件與 DSH 進程同權限運行,會讀寫
$DSH_HOME下 sidecar 與通過 Host API 創建派生會話;安裝前應瀏覽倉庫源碼並確認 MIT 許可證與版本要求。 - 面向 Web UI;不改變 DSH append-only log 格式。
- 隱藏輪次若錨定某分叉,該分支錨點可能移動到最近可見輪次。
社區目錄頁(SkillHub 等)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;發現與安裝仍以 README 記載路徑爲準。
結尾¶
dsh-branch-map 把長工程對話從「一條時間線」變成可比較、可回收結論、可派生乾淨上下文的分支圖,主線保持簡潔而不丟掉分叉歷史。