dsh-predict:在 Composer 佔位符裏預測下一條指令

前言

在 DeepSeek Harness(DSH)裏寫 Composer 時,常見節奏是:助手剛改完代碼或跑完測試,下一句往往是「跑一下看看」「先修失敗用例」——這類短指令重複度高,但輸入框默認仍是通用提示。Codex 一類產品裏有過「下一條指令預測、Tab 採納」的交互;DSH 社區插件 dsh-predict(維護者 Dogtiti)把同類能力接到 Harness:根據當前會話上下文,用佔位文字給出一條建議,按 Tab 變成可編輯草稿,不會自動發送。

這是什麼

dsh-predict 是 DSH 標準 bundle(Host + Client),分類爲模型推理。它向當前會話正在使用的模型發起一次小請求,預測用戶可能輸入的下一條指令,並渲染在 Composer 輸入框的佔位區域;簡介原文爲:Codex-style next-instruction prediction for the DeepSeek Harness composer: a Tab-to-accept suggestion rendered as the input placeholder. 源碼與說明見 GitHub 倉庫,社區目錄頁:skillhub.cn/plugins/Dogtiti/dsh-predict(獨立社區索引,與 DeepSeek / 幻方無官方從屬關係)。

核心功能

佔位符裏的建議

會話空閒且輸入框爲空時,原生佔位提示可被替換爲模型生成的短句,例如:

- 發消息或創建任務, / 調用指令, @ 文件或對話
+ 跑一下測試

按 Tab 或點擊可將建議填入輸入框(光標在末尾),不會自動發送。README 中的對照示例包括:剛完成代碼修改時可能出現「跑一下看看效果」;測試報告有 3 個失敗用例時可能出現「先修掉這三個失敗用例」。

何時會請求、何時不顯示

建議僅在以下條件全部滿足時請求並顯示:

  • 該會話已完成至少一輪對話
  • 會話不在運行中
  • 輸入框爲空、無待發送附件、無已認領的斜槓命令
  • 非一次性子會話(只讀輸入框)

不接管的情況包括:輸入框非空(不請求、不顯示);會話運行中(不顯示);/ 或 @ 菜單彈出(不顯示)。

提示詞與「沒有就不顯示」

較新的行爲是:提示詞不再要求模型輸出 NONE 之類佔位詞——有具體任務就給一條,沒有就什麼都不輸出。插件會把少數模型把沉默寫成文字的情況(如 NONE、無、什麼都不輸出、空回覆)統一視爲無建議,輸入框保持原樣。

數據與開銷

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

安裝與啓用

插件以當前 DSH 進程權限運行;安裝前建議自行查看源碼與 MIT 許可證。兼容 DSH ^0.2.1-0(npm 包當前版本見倉庫 package.json,資料中爲 1.2.5)。

方式一:實驗性市場 bundle

在 DSH 中:設置 → 插件 → 啓用實驗性市場 bundle → Discover → 添加市場索引地址 → 安裝 dsh-predict。

市場索引地址:

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

方式二:npm

npm i dsh-predict

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

配置

在 bundle 的 insert 段可掛載 composer-predict,示例:

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

常用配置項(默認值以 README 爲準):

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

排障時可設 diagnostics: true,在包目錄下查看 .diagnostics.jsonl(如 found:false 表示會話未掛載,suggestion:null 且模型 raw 爲 NONE 等表示無法預測)。

典型用法

  1. 按上文任一方式安裝並啓用插件,保證會話至少有一輪完整對話且當前不在運行中。
  2. 清空 Composer 輸入框,等待佔位區域出現預測短句(若上下文不足以預測,則保持宿主默認佔位)。
  3. 按 Tab 將建議變爲草稿,按需編輯後發送。

Client 在回合結束(running: true → false)時請求 Host 的 POST /api/composer.predict;宿主通過 [data-composer-placeholder] 重繪佔位內容,若自檢失敗(內容不含建議或字號過小)會回退並在控制台輸出 [composer-predict] 警告。

適用場景與注意

適合在 Harness 裏高頻做「改代碼 → 驗證 → 修失敗用例」等短指令鏈路的開發者。插件依賴宿主佔位元素 [data-composer-placeholder];缺失時走回退路徑,不影響輸入框本身。

注意:每次預測都會用當前會話的模型與憑據再調一次模型,有 token 與延遲開銷;敏感項目請評估是否開啓 diagnostics 及上下文截取範圍。同維護者的相關插件包括 dsh-input-history(歷史消息 ↑/↓)、dsh-subagent-bridge 等,可與本插件並列使用,互不替代。

結尾

dsh-predict 把「下一條用戶指令」做成 Composer 佔位建議,Tab 採納爲草稿,貼合 DSH「一切皆插件」的擴展方式。進一步瞭解請訪問 社區目錄頁 與 GitHub:Dogtiti/dsh-predict。

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

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

小夜