dsh-plugin-edit-regenerate:編輯歷史消息並重新生成

前言

在 DeepSeek Harness (DSH) 的對話流程中,如果需要修改之前的用戶輸入並重新生成回覆,通常需要手動截斷歷史或新建會話。dsh-plugin-edit-regenerate 插件通過在用戶氣泡下提供「編輯」按鈕,允許你直接修改歷史消息。確認修訂後,系統會 Fork 一個新會話,從修訂後的提示開始重新生成。

插件定位

這是 StabCut 維護的一個 DSH 插件,歸類爲「工作流」。它的核心作用是允許你編輯對話歷史中的用戶消息,並基於修訂後的文本在 Fork 的會話中重新生成回覆。

核心功能

  1. 編輯與重新生成:點擊用戶氣泡下的「✎ 編輯」按鈕,修改文本後確認,系統會丟棄當前點之後的所有內容,並在新會話中重新生成。
  2. Fork 會話策略:
    - 非首條消息:在當前回合末尾 Fork 新子會話。
    - 首條消息:創建空白會話,使用修訂文本作爲開場。
  3. 附件處理:帶有附件的消息在修訂後會作爲純文本重新發送,附件本身不會保留。
  4. 功能保留:保留原有的「複製」功能(⧉ 複製按鈕與 ✎ 編輯並存)。
  5. 存儲機制:會話存儲採用追加式日誌,不支持就地截斷。

安裝與啓用

安裝後需重啓 DSH 才能生效。插件通過 --profile 參數指定安裝目標。

# DSH Desktop app (Electron)
dsh plugin --profile desktop add file:./dsh-plugin-edit-regenerate

# Official launcher / CLI (dsh web)
dsh plugin --profile web add file:./dsh-plugin-edit-regenerate

如果需要手動安裝,需在對應 Profile 的 package.json 中添加依賴並執行 pnpm install。

典型用法

  1. 在對話界面中,找到任意一條用戶消息。
  2. 點擊消息氣泡下方的「✎ 編輯」按鈕。
  3. 修改文本內容(或移除附件)。
  4. 確認修訂。
  5. 系統將 Fork 一個新會話,使用修訂後的文本重新生成回覆。

適用場景與注意事項

該插件適合需要在對話過程中修正上一輪提示的場景。使用時需注意以下幾點:

  • 會話加載限制:Fork 的會話在重啓 DSH 後可能無法加載,如果父會話中包含 Harness 不識別的事件(例如 session/distill-review-request),會報錯 SessionFormatUnsupportedError。遇到此問題需運行修復腳本。
  • 附件丟失:修訂後的消息將不再包含附件,僅保留文本。
  • 存儲不可截斷:由於存儲是追加式日誌,無法在本地直接刪除中間內容,Fork 是 DSH 平臺原生的「編輯並重新生成」實現方式。
  • 更新機制:由於 pnpm 會將 file: 依賴複製到 node_modules,git pull 更新源碼後,已安裝的 Profile 需手動刷新其 node_modules 中的副本。

故障排查

如果重啓 DSH 後 Fork 的會話無法加載,通常是因爲父會話日誌中包含 Harness 不識別的事件。可以使用插件提供的修復腳本處理:

node scripts/repair-session-logs.mjs

此腳本會遍歷 $DSH_HOME/sessions 下的日誌文件,將不兼容的事件標記爲 ignorable: true 並備份原文件。

總結

該插件通過在 UI 層提供編輯入口,配合 Fork 機制,實現了對話歷史中特定節點的重新生成。對於需要精細化控制上下文的開發者,這是一個實用的輔助工具。

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

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

小夜