dsh-plugin-composer-predict:DeepSeek Harness 輸入框指令預測

前言

DeepSeek Harness(DSH)的 Composer 是對話式智能體的核心交互組件,開發者常需要在輪次之間快速給出下一句指令。手動輸入容易遺漏上下文、重複命令或拼寫錯誤。一個自然的補全方向是讓當前會話的模型根據歷史對話生成“下一條用戶指令”,並直接在輸入框佔位中呈現,按 Tab 採納。

dsh-plugin-composer-predict 插供了 Codex 風格的 next-instruction 預測:當會話空閒且輸入框爲空時,插件將原生提示文字替換爲一條由當前模型生成的建議,按 Tab 或點擊即可填入輸入框成爲可編輯草稿,不會自動發送。

是什麼

dsh-plugin-composer-predict 是一個基於 DSH bundle 的插件,負責在 Composer 中預測下一條用戶指令並渲染爲佔位文字。它讀取當前會話尾部消息(用戶與助手文本、工具名、工作目錄),發送給當前會話配置的模型服務,將返回的建議直接寫入宿主佔位元素 [data-composer-placeholder],並通過 CSS 重繪實現可見效果。

插件由 Dogtiti 維護,分類爲模型推理,開源協議爲 MIT。

核心功能

  • 上下文感知建議:基於當前會話歷史生成建議,示例包括“跑一下測試”“跑一下看看效果”“先修掉這三個失敗用例”。
  • Tab 採納:建議填入輸入框後光標位於末尾,需手動發送,不自動觸發對話。
  • 門禁條件:僅在以下條件全部滿足時請求並顯示建議:
  • 會話已完成至少一輪對話;
  • 會話不在運行中;
  • 輸入框爲空、無待發送附件、無已認領的斜槓命令;
  • 非一次性子會話(只讀輸入框)。
  • 不接管場景:輸入框非空、會話運行中、/ 或 @ 菜單彈出時,不請求也不顯示建議。
  • 配置開關與超時:enabled: true 爲總開關,關閉後路由返回 503;單次請求超時爲 timeoutMs: 20000。

安裝與啓用

市場索引

  1. 在 DSH 中進入 設置 → 插件。
  2. 啓用實驗性市場 bundle。
  3. 點擊 Discover,添加市場索引地址:
https://raw.githubusercontent.com/Dogtiti/dsh-plugin-composer-predict/main/market-index.json
  1. 在插件列表中搜索並安裝 dsh-plugin-composer-predict。

npm

npm i dsh-plugin-composer-predict

在 DSH 的 Plugins 頁點擊“添加”,填寫包名 dsh-plugin-composer-predict。

本地目錄

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

Plugins → 添加 → 選擇該目錄。

典型用法

安裝後,插件會自動在 Composer 中生效。當會話完成一輪對話且輸入框爲空時,原生提示會被建議替換:

發消息或創建任務, / 調用指令, @ 文件或對話

變爲:

跑一下測試

此時按 Tab 或點擊建議區域,建議文字會填入輸入框,光標位於末尾,可繼續編輯或直接發送。

配置項

插件通過配置文件插入,示例:

- insert:
    - id: composer-predict
      name: 'dsh-plugin-composer-predict'
      config:
        model: deepseek-chat
        maxSuggestionChars: 24

主要配置項:

鍵 默認 說明
enabled true 總開關;關閉後路由返回 503,客戶端不再請求
provider / model '' 指定模型;留空跟隨當前會話
maxContextMessages 8 送入模型的消息條數(取尾部)
maxMessageChars 600 單條消息最大字符數(保留頭尾)
maxSuggestionChars 32 建議的目標長度
maxTokens 200 輸出上限
timeoutMs 20000 單次請求超時
cacheTtlMs 60000 相同會話事件序號下的緩存時間
diagnostics false 將客戶端判定寫入 .diagnostics.jsonl,用於排障

實現方式

插件爲標準的 DSH bundle,包含 Host 與 Client 兩部分:

  • Host:監聽 POST /api/composer.predict,通過 sessions.get(id) 獲取會話信息,調用 session.deriveMessages() 提取尾部消息,使用當前會話的 provider/model 發送請求,按 seq 緩存 60 秒。
  • Client:在對話回合結束時(running: true → false)請求建議,重繪 [data-composer-placeholder],通過 CSS 將內容設爲透明,再用 ::after 渲染建議,字號使用 font: inherit 避免變量解析失敗導致的字號退化爲 0。

掛載後,Client 會自檢:若建議內容缺失或字號小於 8px,則回退爲輸入框下方一行,並在控制台輸出 [composer-predict] 警告。

數據與開銷

  • 讀取本會話日誌尾部(用戶與助手文本、工具名、工作目錄),發送至會話自身配置的模型服務與憑據。
  • 每輪一次獨立小請求,默認上限 200 tokens;enabled: false 可關閉。
  • 結果不落盤,不寫入會話日誌。

開發與測試

項目包含 14 項測試,覆蓋提示詞拼裝、模型路由回退、輸出清洗、緩存失效、開關、CSS 轉義、門禁條件、兜底渲染等場景。運行測試:

node --test "test/*.test.mjs"

test/render-proof/ 目錄提供無頭 Chrome 渲染與截圖,用於覈對 CSS 重繪結果,包括字號變量非法的邊界環境。

兼容性

  • DSH 版本要求 ^0.2.1-0(engines.dsh)。
  • 依賴宿主佔位元素的 [data-composer-placeholder] 標記;缺失時走回退路徑,不影響輸入框本身。

生態背景

DSH 的理念是“一切皆插件”,社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件遵循這一生態規範,由社區開發者維護。

適用場景與注意

  • 適合需要在對話輪次間快速給出指令的智能體開發者。
  • 插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。
  • 若會話處於運行中或輸入框已有內容,建議不會出現,避免干擾正常輸入。

總結

dsh-plugin-composer-predict 通過 Codex 風格的 next-instruction 預測,將建議直接呈現在 Composer 輸入框佔位中,按 Tab 採納爲可編輯草稿,減少手動輸入的遺漏與重複。安裝與配置簡單,依賴 DSH ^0.2.1-0,適合需要在對話流中增強指令補全能力的開發者。

鏈接

  • 插件目錄頁:https://www.skillhub.cn/plugins/Dogtiti/dsh-plugin-composer-predict
  • GitHub 倉庫:https://github.com/Dogtiti/dsh-plugin-composer-predict
羽毛球分组比赛记分
小程序二维码

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

小夜