前言¶
在 DeepSeek Harness (DSH) 的開發過程中,常需要在主會話中繼續追問細節,但又不想打斷當前的上下文流,更不希望生成的回答污染主會話的 Token 上下文。現有的側邊欄插件大多存在侷限:要麼是單次氣泡無法多輪追問,要麼會破壞前綴緩存,導致主會話推理成本激增。
dsh-side-branch 旨在解決這一問題。它從主會話派生一條獨立的只讀分支,利用流式傳輸提供實時回答,同時在執行層嚴格隔離,確保答案不會寫入主會話上下文。
核心功能¶
- 派生只讀分支:從主會話派生會話,繼承上下文但互不干擾。
- 流式傳輸與推理:支持逐 Token 流式輸出,包含推理過程。
- 多輪追問:分支內部支持連續多輪對話,上下文獨立維護。
- 前綴緩存優化:通過執行層隔離而非 Prompt 修改,保持與主會話一致的前綴緩存。
- 執行層只讀:安全策略在執行層生效,拒絕系統副作用(如寫文件),但保留
read、web_search等查詢能力。 - 持久化狀態:面板狀態本地持久化,支持斷點續問。
安裝與啓用¶
安裝前請確保本地環境已安裝 Node.js >= 20,且 pnpm 已加入 PATH。插件需要 DSH 版本 0.1.5-rc.2 或 0.1.7-rc.2。
- 安裝插件:
dsh plugin --profile web add dsh-side-branch
或通過 GitHub 倉庫安裝:
dsh plugin --profile web add github:wucl12/dsh-side-branch
- 重啓 DSH:
安裝完成後必須重啓 DSH 客戶端,插件才能正確加載。
使用方法¶
-
選擇文本追問:
在主會話中選擇任意文本,點擊彈出的 “Quote and ask”,會在右側側邊欄打開一個臨時會話。引用的文本會作爲摺疊塊記錄在當前輪次中,且不影響下一次提問的引用槽。 -
快速入口:
在主會話輸入框右側有一個快速入口按鈕↗,點擊可直接喚起側邊欄面板。 -
獨立配置:
在側邊欄面板中,可以單獨指定該分支使用的模型和推理努力(Reasoning Effort),而不受主會話配置的限制。
注意事項¶
-
只讀邊界:這裏的只讀是指無系統副作用(如寫入文件、執行腳本)。
web_fetch、web_search和read工具仍可正常使用,且允許列表硬編碼,無法通過設置放寬。 -
上下文繼承機制:
- 每次追問都會基於主會話最新已結算的內容重建上下文。
- 未完成的輪次不會自動出現在分支中(回退到上一輪結束點),但手動引用選擇文本不受此限制。
- 當上下文達到上限時,插件會拒絕該輪次並提示清理,不會靜默丟棄舊輪次。 -
前綴緩存說明:
前綴緩存命中是一個測量值而非保證。雖然插件通過執行層隔離保持了 Prompt 前綴一致,但平臺可能在某些情況下替換系統節點,導致緩存失效。 -
PTC 模式限制:
如果主會話使用了ptc(純代碼執行工具表面)模式,由於插件強制拒絕run_code,分支將回退爲純文本 Q&A 模式,無法調用代碼執行工具。
結語¶
dsh-side-branch 爲需要在主會話流中安全探索、追問細節提供了穩定的工具。通過執行層隔離和上下文重建機制,它在保證安全性的同時最大化了前綴緩存的利用率。