dsh-message-handoff:DeepSeek Harness 消息級會話移交插件

前言

在 DeepSeek Harness 中使用 Fork 功能,會切斷當前會話並創建一個新的空白會話。如果需要在對話的中間某個節點繼續,新的會話無法獲知該節點之後發生了什麼。dsh-message-handoff 解決了這個問題。它爲每條已確認的助手消息添加了一個手柄,允許用戶在該點進行“移交”操作:複製該點之前的對話歷史,同時讓 LLM 總結該點之後發生的內容,從而 fork 出一個帶有上下文的新會話。

插件介紹

dsh-message-handoff 是一個爲 DeepSeek Harness 設計的插件,用於實現消息級的會話移交。

  • 核心功能:在助手消息旁提供手柄,點擊後 fork 新會話。
  • 維護者:antonkoatl。
  • 開源協議:MIT。
  • 技術特點:零運行時依賴,源碼由人工維護,無需構建步驟。

安裝與啓用

安裝過程無需構建環境,lib/client.js 已預編譯。

dsh plugin --profile web add /path/to/dsh-message-handoff
dsh web

安裝後,可通過以下命令確認插件已加載:

dsh --profile web --dump-config | grep message-handoff

核心功能

該插件提供以下能力:

  1. 消息級移交:在每條已確認的助手消息旁,渲染 copy · ✋ handoff · fork 控制組。
  2. 歷史複製與總結:點擊手柄後,將選定消息之前的 verbatim(逐字)歷史複製到新會話;同時調用 LLM 僅總結選定消息之後的對話內容。
  3. 結構化文檔注入:在 fork 出的新會話中,注入包含“任務目標”、“當前進度”、“關鍵決策”、“文件列表”、“下一步計劃”和“未解決問題”的結構化文檔。
  4. 自動會話管理:將子會話附加到源會話的工作區,自動重命名標題並打開新會話。

配置

插件支持在 cordis.yml 中配置 config: 參數,以控制總結請求的輸入輸出限制:

- id: message-handoff
  name: dsh-message-handoff
  config:
    maxInputBytes: 24000   # 總結輸入的字節上限(UTF-8),超時則丟棄最舊條目
    maxTokens: 10000       # 總結輸出的 Token 預算
    timeoutMs: 120000      # 總結請求的超時時間(毫秒)

總結所使用的模型,默認取自源會話的最新請求路由,若不可用則回退到部署的默認模型。

使用流程

  1. 在 Web 界面中,找到一條已確認的助手消息。
  2. 點擊該消息行右側的 Handoff 圖標(位於 Copy 和 Fork 按鈕之間)。
  3. 系統會自動執行:
    • 複製直至該消息的 verbatim 歷史到新會話。
    • 發送請求給 LLM 總結該消息之後的內容。
    • 將結構化總結文檔注入新會話。
  4. 新會話會自動打開,源會話保持不變。

注意事項與限制

  • 隱私:爲了生成總結,選定消息之後的所有對話文本會被髮送到配置的模型中。
  • 觸發限制:該手柄僅渲染在已確認的助手消息上,用戶消息不支持此操作。
  • 無持久化文件:目前不會在文件系統中生成 HANDOFF.md,總結僅存在於會話日誌中。
  • 文本限制:總結僅處理文本內容,不包含工具調用和附件。
  • 預設繼承:fork 出的子會話繼承的是源會話創建時的預設配置,而非創建時的最新預設。

總結

dsh-message-handoff 是一個實用的工具,旨在解決 DSH 中 fork 會話上下文丟失的問題。它通過自動化的歷史複製和 LLM 總結,讓開發者能夠從任意節點繼續對話,而無需手動複製粘貼。對於需要長期維護多輪對話或需要頻繁從中間切入的開發場景,該插件提供了明確的路徑。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜