dsh-chat-rewind:在 Harness 裏就地改消息並從該點重開會話

前言

在 DeepSeek Harness(DSH)裏做智能體或長對話時,發出去的用戶消息往往沒法「當作沒發過」再改一版:會話日誌是 append-only,底部輸入框只能繼續往後聊。一旦提示詞寫錯、意圖表達不清,常見做法是開新會話或手動複製粘貼,工作目錄裏的文件狀態也不會跟着「對話回退」。

下面介紹客戶端插件 dsh-chat-rewind(維護者 cyh8037):雙擊你自己發出的某條消息即可就地編輯,確認後在該消息之前切會話分支並重新發送,後續回答隨之重新生成;工作目錄中的文件不會被回退,原會話可保留或由選項自動歸檔。

這是什麼

dsh-chat-rewind 是 DSH 的 Web 客戶端插件(分類:客戶端),npm 包名爲 dsh-chat-rewind,當前倉庫版本 1.0.0,許可證 MIT。

Harness 沒有公開的「原地截斷會話」接口,本插件的實現方式是:在目標用戶消息之前調用會話分支能力,在新分支裏發送修改後的內容,從而在體驗上達到「從這條消息重新開始」的效果,而不動磁盤上的項目文件。

核心功能

覈實自項目 README 的能力如下:

  • 進入編輯:雙擊用戶消息,或懸停後點鉛筆圖標;內聯編輯預填原文。
  • 快捷鍵:Enter 發送、Shift+Enter 換行、Esc 取消,與底部 composer 一致;點編輯區域外部會收起編輯態;同一時刻只允許一個編輯態。
  • 圖片:原消息帶圖片時,圖片會隨新消息一起發送,可逐張刪除,也可粘貼或拖拽新增。
  • 歸檔開關:底部「歸檔原會話」開關默認開啓;發送成功後歸檔源會話。
  • 不可編輯情形:帶文件附件的消息不允許編輯;子代理會話中的消息不允許編輯;不可編輯項不顯示編輯按鈕,雙擊也無反饋,保持官方渲染形態。
  • 失敗處理:發送失敗時,剛創建的空分支會被自動歸檔,減少側欄重複分支。

安裝與啓用

本倉庫是本地 bundle,無需構建。安裝命令須以 README 原文爲準,勿自行拼接 dsh plugin add github:...。

方式一:在 DSH 中安裝 bundle

在 DSH 中執行(將 target 換成本地 clone 或解壓後的目錄絕對路徑;README 要求把目錄放到任意位置後安裝,此處不執行 git clone):

# 在 DSH 中執行:
#   plugin_manager  install_bundle  target=<本目錄絕對路徑>

方式二:寫入 profile 的 patch 文件

在當前 profile 的 cordis.patch.yml 中加入:

- insert:
    - id: chat-rewind
      name: 'dsh-chat-rewind'

安裝後在 Web UI 刷新頁面即可生效(客戶端插件在頁面啓動時加載;package.json 中 dsh.client.immediately 爲 true,並注入 @deepseek-ai/dsh-client-ui-chat)。

插件以當前 DSH 進程及 Web 前端環境運行;安裝前應自行審閱 源碼 與 MIT 許可證。

典型用法

  1. 在 Web UI 打開已有會話,找到你自己發送且可編輯的一條消息(無文件附件、非子代理會話)。
  2. 雙擊該消息(或懸停點鉛筆),修改正文;若含圖片,按需刪除或粘貼/拖拽新圖。
  3. 確認底部「歸檔原會話」是否符合預期(默認開:成功後歸檔原會話)。
  4. 按 Enter 發送;插件會在該消息之前創建分支併發送新內容,後續模型回覆在新分支中生成。
  5. 若需放棄編輯,按 Esc 或點擊編輯區外。

行爲與兼容性

會話與文件:原會話可保留或由歸檔開關處理;工作目錄文件不回退。歸檔默認 stopActivity: true——若源會話正在運行,歸檔可能中止其活動。

渲染契約:插件覆蓋 conversation.chat.node 的 user 渲染器,並複用官方的 conversation.chat.user.content Factory 與 conversation.chat.user.before chain。註冊前校驗 sessions.fork,渲染前校驗槽位 props;契約不滿足時會撤銷註冊、恢復官方渲染器,並在控制台輸出 warning。

已知限制與注意

  • 只處理用戶消息。
  • 帶文件附件不可編輯;圖片可帶入,但已被上下文壓縮卸載(offloaded)的圖片不會帶入新消息。
  • 子代理會話中的消息不可編輯。
  • 分支不再自動追加 「(1)」 標題後綴(README 說明爲避免孤兒分支)。
  • 發送被宿主拒絕時,底部發送可能因本地 pending 計數而提前關閉編輯態。

適合需要在 Harness 對話流裏快速改一條歷史用戶消息並分叉重試、且接受「文件狀態不隨對話回退」的 DSH 用戶。

結尾

dsh-chat-rewind 用客戶端內聯編輯 + 會話分支,把「改消息再從該點繼續」做成雙擊即可完成的操作,同時明確不回退工作區文件。

社區插件目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」的擴展方式,可按需選用並自行維護信任邊界。

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

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

小夜