dsh-suggested-replies:DSH Web 的下一步回覆候選插件

前言

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_state domain。
  • 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 複用即可。如果你需要控制候選長度和超時,再配置 maxSuggestionCharstimeoutMs

適用場景與注意

這個插件適合在 DSH Web 裏希望減少“下一步手動輸入”的場景。它尤其適合以下情況:

  • 對話經常進入“繼續執行、檢查、選擇分支”的階段。
  • 希望 AI 回覆結束後,快速看到幾個可編輯的下一步選項。
  • 希望候選只進入草稿,不自動發送,保留人工確認。
  • 希望在 Web 端以插件方式擴展,不修改父 Session 的插件自定義事件。

需要注意:

  • 插件會額外運行短文本內部 Agent,會產生模型調用成本。
  • enabled 關閉後不再運行該 Agent。
  • 輔助調用受 timeoutMsmaxTokens 等配置約束。
  • 點擊候選不會自動發送,最終發送仍由用戶操作。
  • 插件許可證爲 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

該目錄頁可作爲資料入口參考,不代表官方應用商店。

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

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

小夜