DeepSeek Harness 插件:Shell 風格的消息回溯

前言

在 DeepSeek Harness(DSH)的 composer 中輸入消息後,如果需要修改或調整之前的表述,目前只能手動刪除重寫。對於多輪對話場景,這種重複操作會降低開發效率。下面介紹一個插件,可以在輸入框中按方向鍵回溯已發送的消息,並回填爲草稿。

這是什麼

dsh-plugin-composer-history 是一個客戶端插件,由 Dogtiti 維護。它爲 DSH composer 提供類似 Shell 命令行的歷史記錄功能:按下 ↑ 向前回溯已發送的消息,按下 ↓ 返回到當前草稿。

插件通過攔截輸入框的按鍵事件,結合會話日誌中的消息記錄,實現消息的回填與恢復。歷史消息來自會話日誌中 role: user 且 source.kind === 'user' 的文本,運行時上下文、技能目錄等非用戶輸入會被過濾。

核心功能

按下 ↑ / ↓ 方向鍵,可以逐條回溯本會話已發送的消息:

  • 輸入框爲空時,按 ↑ 從最近一條開始向前回溯
  • 回溯時右下角顯示當前位置(如 3/19,表示當前第 3 條,共 19 條)
  • 按下 ↓ 向前返回,越過最新一條後恢復回溯前的草稿
  • 手動編輯輸入框內容後,會自動退出回溯狀態

安裝與啓用

市場索引

https://raw.githubusercontent.com/Dogtiti/dsh-plugin-composer-predict/main/market-index.json

設置 → 插件 → 啓用實驗性市場 bundle → Discover → 添加上面的地址 → 安裝 dsh-plugin-composer-history。

npm

npm i dsh-plugin-composer-history

在 Plugins 頁用「添加」填寫包名。

本地目錄

git clone https://github.com/Dogtiti/dsh-plugin-composer-history

Plugins → 添加 → 選擇該目錄。

典型用法

  1. 在輸入框中發送一條消息,例如「寫一個 Python 腳本」。
  2. 發送第二條消息,例如「再加一個日誌功能」。
  3. 輸入框清空後,按 ↑ 回溯到第二條消息「再加一個日誌功能」。
  4. 繼續按 ↑ 回溯到第一條消息「寫一個 Python 腳本」。
  5. 按 ↓ 返回到第二條消息,繼續編輯或刪除部分內容。
  6. 手動輸入新內容後,退出回溯狀態。

配置

插件支持以下配置項(YAML 格式):

- insert:
    - id: composer-history
      name: 'dsh-plugin-composer-history'
      config:
        limit: 50
鍵 默認值 說明
enabled true 總開關;關閉後路由返回 503,客戶端不接管按鍵
limit 200 保留的歷史條數(取最近)
maxChars 2000 單條消息最大字符數(保留頭尾)
cacheTtlMs 30000 相同會話事件序號下的緩存時間

行爲說明

按鍵 行爲
↑ 輸入框爲空時開始回溯,從最近一條向前;到達最舊一條後停止
↓ 向前返回;越過最新一條時恢復原草稿

不接管的情況:

條件 行爲
輸入框已有內容或附件 ↑ 保留給編輯器的光標與選區移動
焦點不在該輸入框 不處理
帶 Alt / Ctrl / Cmd / Shift 不處理
/ 或 @ 菜單已認領輸入 方向鍵歸菜單

實現原理

瀏覽器端通過 conversation.composer.dock 攔截階段捕獲 ↑ / ↓ 按鍵,維護一個索引狀態機(index = -1 表示未回溯),調用 inputActions.setDraft(items[index]) 回填消息。Host 側通過 POST /api/composer.history 接口,從會話日誌中提取用戶輸入消息,按來源過濾後緩存 30 秒。

歷史消息過濾規則:
- 計入歷史:{ "kind": "user" }
- 排除:runtime-context、skill-catalog、time-context、user-approval

相鄰重複消息會合併爲一條。

兼容性

  • DSH ^0.2.1-0(engines.dsh)。
  • 依賴公開的 inputActions.setDraft()。

相關插件

插件 說明
dsh-plugin-composer-predict 預測下一條指令並顯示爲佔位文字,Tab 採納
dsh-plugin-composer-history 輸入框中按 ↑ / ↓ 回填歷史消息
dsh-plugin-subagent-bridge 讓 Codex 通過本機 MCP 把 DSH 當 subagent 用
dsh-plugin-usage-panel 在模型選擇器旁顯示供應商套餐額度餘量

適用場景與注意

該插件適合需要頻繁調整多輪對話輸入的開發者。使用前請確認 DSH 版本不低於 ^0.2.1-0,並檢查插件源碼與許可證。插件以當前 dsh 進程權限運行,請從可信來源安裝。

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

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

小夜