前言¶
在 DSH 裏和智能體來回對話時,輸入框往往是最常停留的地方:你要續寫半句話、或在助手剛答完時想發下一條,卻還要自己從頭打滿。常見做法是複製上一輪上下文到別處讓模型幫想話術,或依賴通用編輯器的補全——它們通常看不到當前會話,也接不進 DSH 的發送鏈路。
下面介紹社區插件 dsh-input-prediction(維護者 fishcg,分類:客戶端):它直接掛在 DSH 的 composer 上,做兩件事——停頓後用灰字續寫你可能要打的下一句(Tab 接受),以及每輪助手回答結束後在輸入框上方給出 1–3 條可一鍵發送的候選。預測依據是當前會話上下文,並把你最近幾條消息當作口吻樣本。
這是什麼¶
dsh-input-prediction 是 DeepSeek Harness(DSH)的輸入預測插件,版本 0.2.0(MIT © 2026 fishcg)。宿主半區註冊預測與推薦路由並調用 llm.stream;客戶端半區對接 Lexical 輸入框與官方 UI 槽位,零構建、可熱重載。要求 DSH >= 0.2.0-rc.2,Node >= 20。
目錄頁:SkillHub - dsh-input-prediction
源碼與說明:GitHub - fishcg/dsh-input-prediction
核心功能¶
灰字補全(Ghost completion)¶
在輸入框裏,模型把「接下來最可能的那一段」畫在光標後面,用灰字顯示,不改動已有草稿。
- 草稿至少有一個字,停頓約 320ms 後發預測;相鄰請求至少間隔 650ms。
- 條件滿足時(光標在末尾、已聚焦、非斜槓/
@菜單、非中文輸入法組合、建議非空等),灰字顯示在光標後;按 Tab 接受,文字經 DSH 官方插入通道(captureInsertion+insertText)落進輸入框,屬於可撤銷的普通編輯。 - 助手仍在流式輸出或跑工具時,只要草稿非空,灰字仍可預測;草稿爲空則不會憑空猜「下一條」。
- 模型不確定時會返回空串,界面寧可不提示也不亂猜。
回覆後推薦(Follow-up suggestions)¶
每輪助手回答結束(uiSession.sessionStatus 的 running 從 true 變 false)且草稿爲空時,在輸入框正上方(官方 conversation.input.dock 槽)展示 1–3 條候選下一條消息。
- 回答進行中不請求、不展示候選;開始打字、切換會話或點右下角 × 會收起。
- 點候選等價於你自己打完再 Enter:寫草稿 → 提交;同一對話版本只請求一次,過期結果按
contextEpoch丟棄。 - 單條候選長度默認不超過 40 字(
chipMaxChars)。
設置面板¶
入口:設置 → 內置插件 → 「輸入預測」。
| 項 | 默認 | 說明 |
|---|---|---|
| 輸入框灰字補全 | 開 | 關則不再請求、不畫灰字、Tab 不接管 |
| 回覆後推薦 | 開 | 關則不再請求,已有氣泡立即收起 |
| 推薦條數 | 3 | 1 / 2 / 3 |
偏好寫入 $DSH_HOME/input-prediction.settings.json(路徑可由 settingsFile 覆蓋),立即生效,無需重啓。用戶在面板改過的值優先於 cordis.patch.yml 裏的出廠默認。
安裝與啓用¶
DSH 生態裏插件以「一切皆插件」方式擴展;社區目錄 SkillHub 是獨立站點,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行查看倉庫源碼與 MIT 許可證;插件在當前 DSH 進程權限下運行。
從插件市場(設置 → 插件市場 → 搜「input-prediction」)或命令行安裝:
dsh plugin --profile desktop add dsh-input-prediction
或直接從 GitHub 添加:
dsh plugin --profile desktop add https://github.com/fishcg/dsh-input-prediction
兩半區支持熱重載,無構建步驟、無額外依賴。改 cordis.patch.yml 中的模型相關項後,需重新載入 patch 層(保存 profile 的 patch 觸發 live reload)或重啓 DSH 桌面端。
典型用法¶
- 打開任意會話,在 composer 裏打幾個字並稍停,看光標後是否出現灰字續寫;合適則 Tab 接受,再繼續改或直接發送。
- 等助手本輪迴答完全結束且輸入框爲空,看輸入框上方是否出現 1–3 條建議;點一條即可發送。
- 在 設置 → 內置插件 → 輸入預測 裏按需關閉灰字或推薦、把推薦條數改爲 1 或 2。
需要確認鏈路是否加載時,可開啓 debugLog 後查看日誌(默認關閉):
tail -f /tmp/dsh-input-prediction.log
常見事件包括 client:ready(客戶端已加載)、predict / predict-done(灰字預測)、client:chips(拿到推薦候選)、client:accept(Tab 接受)。瀏覽器 DevTools 控制台另有 [input-prediction] 前綴輸出。
配置要點¶
高級項寫在 cordis.patch.yml(或 profile 下同 id 覆蓋)。常用片段如下;完整鍵說明見倉庫 README。
- insert:
- id: dsh-input-prediction
name: dsh-input-prediction
config:
enabled: true
provider: ''
model: ''
reasoningEffort: 'off'
maxTokens: 160
temperature: 0.3
contextMessages: 16
contextChars: 600
maxSuggestionChars: 60
styleHint: ''
completionEnabled: true
chipsEnabled: true
chipCount: 3
chipMaxChars: 40
chipsMaxTokens: 320
chipsTemperature: 0.7
settingsFile: ''
debugLog: ''
務必保持 reasoningEffort: 'off':灰字續寫通常只有十幾個字,若打開 reasoning,token 預算會被思考佔滿,補全容易變成空文本。provider / model 留空則跟隨 DSH 的默認模型設置。
適用場景與注意¶
適合:長期在 DSH 桌面端寫對話、希望少敲重複跟進句、又希望補全與推薦跟當前會話和本人口吻對齊的開發者。
注意:
- 依賴聯網或本地配置的 LLM;預測質量隨模型與上下文長度變化。
- 切換會話會作廢灰字、候選與緩存,不會把上一會話的推薦帶到新會話。
- 完全沒有灰字時,可先查日誌裏是否有
client:ready、client:host-contact,並確認設置裏灰字補全未關、enabled爲 true。
結尾¶
dsh-input-prediction 把「下一句寫什麼」收進輸入框本身:灰字負責續寫草稿,推薦氣泡負責答完後的快捷跟進,設置與偏好文件分開,改動即生效。若要在 DSH 裏試用,可從 SkillHub 目錄頁或 GitHub README 對照安裝命令與配置表。
- 目錄頁:https://www.skillhub.cn/plugins/fishcg/dsh-input-prediction
- GitHub:https://github.com/fishcg/dsh-input-prediction