DSH 插件 dsh-fold:摺疊連續工具調用與長輸入

前言

DeepSeek Harness (DSH) Web GUI 在處理複雜任務時,同一回合內往往會出現連續的多個工具調用,或者出現超長的用戶輸入。這會導致聊天流變得冗長,分散對當前運行狀態的注意力。dsh-fold 插件通過原生 Slot 和 React 實現,將同一回合內的連續工具調用摺疊爲單行,並對超長用戶輸入進行限制,從而提供更緊湊、類似 Codex 風格的交互體驗。

插件簡介

  • 名稱:dsh-fold
  • 維護者:Yancey2023
  • 類別:客戶端插件
  • 核心價值:摺疊連續工具調用、實時顯示運行狀態、限制長輸入顯示、自動加載舊歷史。

核心功能

1. 連續工具調用摺疊

同一助手回合內的連續 tool-call 節點會被合併爲單行顯示。摺疊後的狀態欄會顯示:
* 運行中標籤:當前正在執行的工具名稱。
* 調用計數:該組中已完成的調用數加上正在運行的調用數。
* 展開/摺疊:點擊箭頭可展開查看所有詳細卡片。

2. 診斷信息保留

爲了保證調試信息的可讀性,以下診斷信息不會被摺疊:
* model-retry(模型重試)
* turn-error(本輪運行失敗)
* turn-max-tokens(達到輸出上限)
這些信息始終以官方視圖呈現,不參與分組。

3. 用戶輸入摺疊

當用戶輸入超過 3 行時,輸入氣泡會被限制顯示爲 3 行,並在底部顯示 Expand 按鈕以查看全文。摺疊高度精確設置爲 72px(3 × 24px),確保跨瀏覽器一致性。

4. 自動加載舊記錄

當用戶將對話滾動到頂部且存在更多歷史記錄時,插件會自動觸發 loadOlder 機制。只要用戶保持在頂部,歷史記錄會自動分頁加載,無需手動點擊按鈕。

5. 技術實現

插件採用純 Slot / React 實現,不使用 DOM 操縱(如 display:none、MutationObserver 或 querySelector),而是複用官方渲染器進行渲染。

安裝與依賴

該插件依賴 DSH 0.1.5 或 0.1.6 版本,以及 @deepseek-ai/dsh-attachment 0.1.6-alpha.2。安裝命令如下:

node scripts/install-dsh.cjs

典型用法

  • 查看運行狀態:在工具調用過程中,摺疊欄會實時顯示當前正在運行的工具標籤和累計調用次數。
  • 展開查看詳情:點擊摺疊欄的箭頭,可以展開查看所有被摺疊的工具調用卡片和詳細輸出。
  • 處理長消息:對於超長的用戶輸入,點擊 Expand 按鈕即可展開閱讀。

注意事項

  • 版本兼容:請確保 DSH 版本爲 0.1.5 或 0.1.6。
  • 插件範圍:插件僅處理回合內的工具調用摺疊,不包含回合級的摺疊邏輯(由產品自帶控制器處理)。
  • 許可證:目前未找到明確的許可證信息,安裝前請自行查閱源碼。

參考資源

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

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

小夜