前言¶
在 DSH 智能體開發裏,會話通常是上下文邊界。會話變長後,繼續聊容易把無關內容越堆越多;換一個新會話又可能丟掉已經建立的上下文。dsh-session-fork 把會話 fork 變成類 git 的 branch refs:fork 出來的會話成爲可管理的分支,分支上的新增 turns 也可以再合併回主線。
這是什麼¶
dsh-session-fork 是一個 DeepSeek Harness(dsh)插件,描述爲:
dsh plugin: git-like conversation forking (branch refs on sessions)
它不能獨立運行,需要安裝到 dsh 中使用。已覈實資料給出的倉庫地址爲:
https://github.com/Jason-skd/dsh-session-fork
許可證爲 MIT。當前資料未額外給出作者字段;倉庫地址中的賬號爲 Jason-skd。
核心功能¶
下面介紹三類已覈實能力:
- 接管原生 fork:官方 dsh fork action 被接管,因此每次 fork 都會成爲 managed branch。
- 分支間操作:可以把某個分支獨有的 turns 和 conclusions squash 回 main 分支或其他分支。
- 分支可視化:使用 vendored VS Code Source Control Graph,提供類似 VS Code 的分支查看體驗。
安裝與啓用¶
安裝要求一個基於 web-app 的 dsh profile。命令如下:
dsh plugin --profile web add dsh-session-fork
安裝後,可以在任意 session 中使用分支命令,也可以切到 branch tab,通過圖形界面執行相同操作。
package.json 中列出了若干 peerDependencies,並標記爲 optional。啓用前可以結合 dsh profile 環境確認這些可選依賴是否已經存在。
典型用法¶
下面的示例來自已提供的用法示例:
- 先把當前 session 命名爲
main分支:
/branch adopt main # name the current session as branch 'main'
- 在最後一個已完成 turn 處 fork 出
review分支:
/branch review # fork a 'review' branch at the last completed turn
- 在
review分支上,把新增 turns 壓縮回main:
/squash into main # (on 'review') compress the new turns back into main
執行完上面幾步後,也可以切到 branch tab,用圖形界面查看分支並做同類操作。
適用場景與注意¶
適合在 DSH 中做長會話管理、希望把一條會話拆成多個分支、並在保留主線上下文的同時把分支結論合併回來的使用者。
使用前注意:
- 這是 DSH 插件,不能脫離 dsh 獨立運行。
- 安裝命令要求 web-app-based dsh profile。
- 插件會隨當前 dsh 進程運行,安裝前應檢查源碼、許可證,以及
package.json中的可選 peerDependencies。 - 當前已覈實資料未給出 star 數、分類等字段;目錄頁是社區插件目錄,不應寫成官方應用商店。
相關鏈接¶
目錄頁:
https://www.skillhub.cn/plugins/Jason-skd/dsh-session-fork
GitHub:
https://github.com/Jason-skd/dsh-session-fork