在 DeepSeek Harness (DSH) 開發中,LLM 經常會返回一系列需要用戶確認的方案、任務或選項。傳統的做法是將這些列表複製粘貼到輸入框中,這種方式不僅繁瑣,而且在流式輸出過程中極易產生誤操作。
dsh-todo-enhancer 是一個 Host/Client 雙半區插件,旨在解決這一問題。它通過標記識別,將 LLM 輸出中需要用戶決策的內容,直接渲染爲輸入框上方的可編輯複選框表格,支持勾選、編輯和發送,將決策流程標準化。
插件概況¶
- 名稱:dsh-todo-enhancer
- 維護者:EmptyCollin
- 許可證:MIT
- 核心價值:讓「需要用戶決策的內容」以帶複選框的表格形式呈現,支持勾選確認、行內編輯與直接發送。
核心功能¶
插件通過嚴格的標記識別和交互式界面,提供以下能力:
- 標記驅動識別:只解析
<!-- dsh-todo:start -->和<!-- dsh-todo:end -->標記塊。普通編號列表或項目符號不會觸發增強,杜絕誤報。每個標記塊對應一個獨立面板。 - 複選框表格:支持行內直接編輯文本、添加行、刪除行、全選及全不選。
- 整體編輯:列表標題可實時修改,並在發送時追加「整體補充說明」。
- 三種操作模式:
- 直接發送:填入輸入框並立即提交。
- 填入對話框:僅填入草稿,不立即提交。
- 關閉:放棄當前修改,關閉面板。
- 時序保證:僅在對話全部輸出完成後(
session.running === false)才渲染,流式輸出中不可見。 - 來源純淨:自動排除思維鏈(reasoning)與工具調用塊,僅處理決策清單。
安裝與啓用¶
支持從 GitHub 直接安裝或使用本地路徑安裝。
- 安裝命令:
dsh plugin --profile web add github:EmptyCollin/dsh-todo-enhancer
-
啓用步驟:
安裝後必須重啓 dsh 服務並刷新瀏覽器頁面,才能加載 Host 和 Client 半區代碼。 -
配置說明:
- Profile:安裝命令中的
web可替換爲其他配置文件名(如cli,desktop)。 - 離線安裝:如果無法訪問 github.com,可以使用本地路徑:
- Profile:安裝命令中的
dsh plugin --profile web add D:\dsh-plugin\dsh-todo-enhancer
* **依賴項**:插件依賴 `@deepseek-ai/cordis` (^4.0.1) 和 `react` (^18.2.0)。
典型用法¶
- 向 LLM 發送會產出需要決策內容的消息,例如「列出 3 個可選方案,讓我選一個」。
- LLM 返回包含標記包裹的清單後,輸入框上方會出現面板。
- 勾選、編輯或全選後,選擇「直接發送」、「填入對話框」或「關閉」,面板隨即關閉。
工作原理與注意事項¶
- 雙半區架構:
- Host 半區:向系統提示詞注入標記規則(order 120),要求 LLM 用成對標記包裹需要決策的內容。
- Client 半區:註冊
conversation.input.dock,將 LLM 返回的標記塊渲染爲表格 UI。
- 純前端實現:無持久化存儲,樣式隨插件卸載自動回收。
- 適用場景:適用於任何需要從 LLM 獲取列表並需要用戶篩選、確認的對話場景。