前言¶
在 DeepSeek Harness 裏和智能體多輪對話時,輸入框往往要等你想好下一句再打字;半寫一句又卡住時,也常要自己在上下文中找線索。市面上一些瀏覽器或 IDE 的「幽靈文本」補全並不瞭解當前 Session 的對話結構,也容易在你不想觸發時搶焦點。
dsh-composer-suggest 是面向 Harness Web UI 的客戶端插件,在 Agent 回覆後的空輸入框裏給出「下一條消息」幽靈建議,或在已有草稿末尾按 Tab 觸發「續寫」——且明確區分兩種模式、用設置開關控制,並儘量不打斷 Tab 在其它場景下的默認行爲。下面按安裝、用法和配置說明如何接入。
插件定位¶
- 名稱:
dsh-composer-suggest(npm 包名同插件 id:composer-suggest) - 維護者:WuweiRE
- 分類:客戶端(
dsh.client,Web 平臺,immediately: true) - 倉庫:https://github.com/WuweiRE/dsh-composer-suggest
- 目錄頁:https://www.skillhub.cn/plugins/WuweiRE/dsh-composer-suggest
- 許可證:MIT(
0.1.0)
插件在編輯區提供兩類 Composer 建議,回答來自當前 Session 所用模型(或你在設置裏指定的模型),每次建議對應一次模型調用,會消耗 token;不會寫入 Session 日誌,也不會出現在 token 計量器上。
核心功能¶
下一條消息(Next message)¶
Agent 回覆結束後,若輸入框爲空,插件會顯示你最可能發送的下一條消息的幽靈文本。
- Tab:把建議接受爲可編輯草稿(不會直接發送)
- Alt+Down / Alt+Up:在最多三個候選之間切換
- Esc:撤回當前建議
- 一旦開始輸入,建議會被丟棄
草稿續寫(Draft continuation)¶
輸入框裏已有文字且光標在末尾時,按 Tab 開始續寫;界面會顯示 “Continuing…” 和加載狀態,模型會結合上方對話與你的草稿生成續寫。再按 Tab 接受結果,或 Esc 取消。
在未按 Tab 之前不會發起請求。空輸入框、光標在草稿中間、輸入 / 命令或 @ 引用時,Tab 仍保持 Harness 原有行爲,不會誤觸續寫。
粘貼圖片與續寫¶
輸入框附帶的圖片算作草稿內容:即使沒打字,也可以在圖片場景下用 Tab 續寫「你可能會發的說明」。最多附帶三張圖,取自輸入框縮略圖,發送前會縮小到 1024px。若模型不支持視覺,狀態行會提示圖片未被識別,續寫會退化爲純文本;若既無文字又無可用視覺能力,界面會明確說明,而不是瞎猜。
幽靈文本佈局¶
過長建議會在當前列換行顯示,並臨時給帶 data-input-scroll 的滾動區域增加底部邊距,把下方工具欄擠開。若 Harness 更新改了該選擇器,建議仍可能顯示,但有可能暫時蓋住工具欄,需在 client.js 裏更新選擇器。
設置與狀態¶
Settings → General 中爲兩種模式各有一個開關;另有狀態行顯示最近一次應答的路由、耗時或失敗原因。
安裝與啓用¶
插件尚未發佈到 npm(npm view dsh-composer-suggest 爲 404)。README 給出的安裝方式是從倉庫檢出後按路徑加入 profile:
git clone https://github.com/WuweiRE/dsh-composer-suggest.git
dsh plugin --profile <name> add ./dsh-composer-suggest
首次發佈到 registry 後,預期一行安裝爲(README 預留說明):
dsh plugin --profile <name> add dsh-composer-suggest
安裝後重啓 Harness,並刷新 Web 頁面。開發與測試針對 DeepSeek Harness 0.2.2-rc.1。宿主需提供 conversation.input.overlay、settings.general.item、connection.admit()、ctx.llm、session.deriveMessages();圖片續寫 additionally 依賴 attachments 服務(saveImages)及輸入框內 Host 渲染的 blob: 縮略圖。缺少圖片能力時,純文本續寫仍可用。
模型與配置¶
默認:建議使用 當前 Session 已選模型,並以該模型 advertised 的最低 reasoning effort 回答,不設 temperature。
在 Settings → General → Model for suggestions 填入模型 id(例如 claude-sonnet-5-5)後按 Enter,可改爲專用模型;留空則繼續跟隨 Session。該值保存在當前瀏覽器;其下方的狀態行會彙報最近路由或失敗原因。
若要爲所有瀏覽器統一默認,可在 profile 的 cordis.patch.yml 中覆蓋插件配置。設置頁裏手填的模型優先於文件默認值:
- id: composer-suggest
name: dsh-composer-suggest
config:
model: claude-sonnet-5-5
未寫 provider 時,會在 profile 已掛載的 provider 中查找模型,並優先嚐試 Session 的 provider;沒有任何 provider 提供該模型時會失敗並報 model-unavailable,不會靜默換模型。要固定路由需同時設置 provider 與 model,完整選項見倉庫內 cordis.patch.yml。
典型用法¶
- 安裝並重啓、刷新頁面後,在 Settings → General 打開你需要的模式開關(下一條消息 / 續寫)。
- 下一條消息:等 Agent 回覆完,看空輸入框是否出現灰色建議;滿意則 Tab 收成可編輯草稿,不滿意用 Alt+Down / Alt+Up 換候選或 Esc 關掉。
- 續寫:在輸入框寫好半句並把光標放在末尾,按 Tab 等待 “Continuing…”;確認後再 Tab 接受,或 Esc 取消。
- 帶圖續寫:在輸入框掛上圖片(可零文字),光標在末尾時按 Tab;注意狀態行對「模型是否看見圖」的提示。
適用場景與注意¶
適合:長期在 DSH Web UI 裏做多輪 Agent 對話、希望減少「下一句寫什麼」和「半句寫不下去」的停頓,且能接受每次建議單獨耗 token 的開發者。
源碼與權限:客戶端插件隨你當前的 Harness profile 與進程權限加載;安裝前建議閱讀倉庫源碼、LICENSE 與 THIRD_PARTY_NOTICES.md(本插件整合了 Stijnus 的 dsh-composer-predictions 與 Amir Bazylkhanov 的 dsh-composer-prediction 部分思路與代碼,均爲 MIT)。插件與 DeepSeek 及上述原作者無隸屬關係。
生態:DSH 主張「一切皆插件」;SkillHub 目錄 爲社區站點,並非 DeepSeek / 幻方官方應用商店。
本地跑插件自帶測試:
node --test
結尾¶
dsh-composer-suggest 把「回覆後的下一條消息」和「Tab 觸發的草稿續寫」做成兩種可開關的 Composer 能力,並保留明確的接受、輪換與取消交互。需要細節與更新時,以 GitHub README 與 SkillHub 目錄頁 爲準。