前言¶
DSH 的智能體會話裏,AI 每完成一輪迴復後,用戶常常還要手動想下一句:是繼續執行、檢查剛纔的結果,還是從多個分支裏選一個。這個環節並不複雜,但頻繁出現時會打斷節奏。
dsh-suggested-replies 是面向 DSH Web 的“預測回覆”插件。它會在 AI 回覆結束後,在聊天輸入框上方生成幾條用戶下一步可能會發送的消息候選。點擊候選只會把文本填入輸入框或替換當前草稿,不會調用發送動作,也不會自動發送。
下面介紹它的位置、行爲、安裝方式、配置項,以及頁面驗收時要注意的點。
它是什麼¶
dsh-suggested-replies 是一個 DSH Web 插件,npm 包名爲 @anionex/dsh-suggested-replies,GitHub 倉庫地址爲:
https://github.com/Anionex/dsh-suggested-replies
它解決的問題是:在 AI 回覆完成後,給當前用戶一組可直接編輯的下一步消息候選。候選顯示在輸入框上方,點擊後只進入草稿,由用戶自行編輯或發送。
該插件以 Web 客戶端插件形式工作,候選註冊在 conversation.input.dock,位於 DSH 消息輸入卡片上方,不使用 conversation.composer.dock。
核心行爲¶
插件觸發後,大致流程是:
1、AI 完成本輪迴復。
2、插件爲候選生成運行一個短文本內部 Agent。
3、內部 Agent 根據近期對話生成候選。
4、插件把候選狀態寫入插件自有的 suggested_replies_state domain。
5、Web 頁面在 conversation.input.dock 顯示候選行。
6、用戶點擊候選後,文本進入輸入框草稿。
7、用戶自行編輯或點擊發送。
行爲上有幾個固定點:
- 候選行始終單行展示,寬度不足時橫向滾動,不換到第二行。
- 候選優先覆蓋下一步執行、驗證/追問、決策/選擇。
- 候選跟隨最近對話語言,彼此去重,且可以直接作爲草稿使用。
- 點擊候選只調用草稿填充,不會創建下一輪,不會自動發送消息。
- 輔助模型沒有返回規定 JSON 時,插件會按最近對話語言生成配置數量的保守候選,不把空數組當成成功結果隱藏整行。
- 輔助提示詞只截取直接用戶消息和 AI 回覆,不把
AGENTS、運行時快照和 Skill 目錄等注入上下文擠佔最近對話窗口。 - 新用戶輸入、設置關閉、輔助調用超時或插件卸載,都會取消當前生成,避免舊結果在下一輪對話中迴流。
- 父 Session 不追加插件自定義事件,也不修改
KNOWN_SESSION_EVENT_TYPES。 - 候選狀態保存在插件擁有的
suggested_replies_statedomain。 - sidecar 狀態按 Session id 存儲,並校驗 header 的
{ createdAt, cwd }。 - 頁面刷新或 Host 重啓後,仍可恢復當前候選。
- 卸載插件後,父 Session 仍能由原版 DSH reader 恢復。
成本方面,每個可生成候選的完成輪次都會額外運行一個短文本內部 Agent。默認會複用 Session 最新 request/header 中實際使用的 provider/model,並回退到 Agent 默認路由。關閉 enabled 後,不再運行該 Agent。
安裝與啓用¶
先從 npm 安裝:
dsh plugin --profile web add @anionex/dsh-suggested-replies
如果是本地開發目錄,可以使用絕對路徑安裝:
dsh plugin --profile web add /absolute/path/to/dsh-suggested-replies
安裝或更新後,先重啓正在運行的 dsh web 服務,再在瀏覽器硬刷新頁面。經過上面的步驟後,新建或重新打開一個會話再進行驗證。
啓用開關在 Web 設置頁的“下一步建議”分區。enabled 是總開關,它會寫入:
$DSH_HOME/settings.yaml
中的 suggested-replies 區域。修改後下一輪立即生效。
設置與配置¶
除設置頁的 enabled 外,其餘部署參數可以在 cordis.patch.yml 或 profile overlay 中配置。
| 字段 | 默認值 | 說明 |
|---|---|---|
enabled |
true |
是否生成候選;關閉後不再運行輔助 Agent |
suggestionCount |
3 |
每輪候選數量,範圍 2-4 |
contextMessageCount |
4 |
傳給輔助模型的最近可見消息數,範圍 2-6 |
maxSuggestionChars |
160 |
單條候選保留的最大字符數,範圍 32-300 |
maxTokens |
384 |
輔助調用的最大輸出 token,範圍 64-1024 |
timeoutMs |
15000 |
輔助調用最長時長,單位毫秒,範圍 1000-30000 |
suggestionProvider |
未設置 | 可選,顯式指定輔助調用 provider;省略時跟隨當前會話模型 |
suggestionModel |
未設置 | 可選,顯式指定輔助調用 model;必須與 suggestionProvider 同時提供 |
一個 overlay 示例如下:
- patch:
- id: suggested-replies
config:
suggestionCount: 4
maxSuggestionChars: 120
timeoutMs: 10000
suggestionProvider: deepseek-official
suggestionModel: deepseek-v4-flash
如果你只想限制候選數量和超時,不顯式指定模型,也可以只配置:
- patch:
- id: suggested-replies
config:
suggestionCount: 3
maxSuggestionChars: 120
timeoutMs: 10000
注意,suggestionModel 不能單獨使用。要顯式指定 model,就必須同時提供 suggestionProvider。
典型用法與頁面驗收¶
先安裝插件,然後重啓 dsh web 並硬刷新瀏覽器。接着新建或重新打開一個會話,等待 AI 完成一輪迴復。
頁面驗收時,可以按下面的點檢查:
1、候選行位於 [data-composer-card] 上方。
2、點擊候選後,textarea 草稿變爲候選文本。
3、點擊候選後不會創建下一輪,也不會自動發送消息。
4、候選行是單行展示,寬度不足時橫向滾動。
5、關閉“下一步建議”的 enabled 後,下一輪不再觸發生成。
6、頁面刷新或 Host 重啓後,當前候選狀態仍可恢復。
如果你只想觀察行爲,不需要調整模型路由,保留默認 provider/model 複用即可。如果你需要控制候選長度和超時,再配置 maxSuggestionChars 和 timeoutMs。
適用場景與注意¶
這個插件適合在 DSH Web 裏希望減少“下一步手動輸入”的場景。它尤其適合以下情況:
- 對話經常進入“繼續執行、檢查、選擇分支”的階段。
- 希望 AI 回覆結束後,快速看到幾個可編輯的下一步選項。
- 希望候選只進入草稿,不自動發送,保留人工確認。
- 希望在 Web 端以插件方式擴展,不修改父 Session 的插件自定義事件。
需要注意:
- 插件會額外運行短文本內部 Agent,會產生模型調用成本。
enabled關閉後不再運行該 Agent。- 輔助調用受
timeoutMs、maxTokens等配置約束。 - 點擊候選不會自動發送,最終發送仍由用戶操作。
- 插件許可證爲 MIT。
- 插件以當前
dsh進程權限運行。安裝前建議檢查源碼與許可證,再決定是否啓用。 - 本項目爲獨立實現,致謝
dsh-external/dsh-auto-blame的雙端 Web 插件組合思路,但未包含該項目的源代碼、圖像或品牌資產。
相關鏈接¶
GitHub:
https://github.com/Anionex/dsh-suggested-replies
可參考的插件目錄頁:
https://www.skillhub.cn/plugins/Anionex/dsh-suggested-replies
該目錄頁可作爲資料入口參考,不代表官方應用商店。