在 DeepSeek Harness(DSH)應用開發中,常遇到需要在當前對話上下文中針對特定片段進行深入分析的需求。直接在主對話中插入會打斷上下文,而新建會話又過於繁瑣。dsh-conversation-branches 插件通過選區提問的方式,在右側詳情列提供 IM 風格的獨立問答分支,解決了這一痛點。
插件簡介¶
該插件由 Caramel-Geass 維護,採用 MIT 許可證。它允許用戶選中主對話文本,隨即在詳情列開啓獨立的流式問答會話,且數據隨主會話持久化。
安裝與啓用¶
這是一個 dsh bundle 插件,通過 dsh.bundle 聲明,添加後無需手寫掛載配置,會自動成爲 profile 的 composition 層。
安裝命令如下:
dsh plugin --profile <name> add @deepseek-ai/dsh-conversation-branches
核心功能¶
- 選區提問:選中主對話文本即彈出提問框,針對選中片段發起獨立問答,不打斷主對話。
- IM 氣泡對話:分支以聊天氣泡呈現,支持流式輸出及同一分支內的多輪追問。
- 隨會話持久化:分支數據作爲
fork/branchlog-only 事件寫入會話日誌,重新加載時按順序重放。 - 定位高亮:點擊分支卡片中的“選中片段”可定位回主對話並短暫高亮。
- 摺疊 / 刪除:分支卡片可摺疊爲一行,支持刪除。
典型用法¶
- 在主對話正文中選中一段文本。
- 彈出提問框,輸入問題後回車(或點擊’提問’)。
- 右側詳情列出現分支面板,開始流式回答。
- 可繼續’追問’;點擊’選中片段’定位回主對話;摺疊或刪除分支。
技術細節¶
依賴項¶
- 運行依賴:
@deepseek-ai/dsh-session、@deepseek-ai/dsh-typert-protocol。 - Peer 依賴:
react、@deepseek-ai/dsh-client-connection。
命名空間解析¶
插件自掛載 conversationBranches Remote 命名空間。由於掛載者與本插件是兄弟 fiber,直接通過 ctx.remote.conversationBranches 的 fiber-store 鏈解析會導致死鎖。因此,統一通過 ctx.get('remote.conversationBranches') 走共享 reflect store 解析。
總結¶
dsh-conversation-branches 通過提供一種非侵入式的分支交互方式,增強了 DSH 會話的靈活性。開發者可參考 GitHub 倉庫 獲取更多源碼與開發細節。