DeepSeek Harness 插件:dsh-tool-args-unwrap

前言

DeepSeek Harness (DSH) 在處理模型工具調用時,有時會遇到模型輸出的畸形參數(如嵌套的 {"arguments":{…}} 包裝)。如果這些參數被原樣持久化,下一輪歷史回放時模型會模仿錯誤,導致調用鏈路越來越畸形。dsh-tool-args-unwrap 插件在 llm/stream 水位線上攔截並修正這些參數,從源頭阻斷壞示範的生成與傳播。

插件簡介

插件名稱:dsh-tool-args-unwrap
維護者:shy19805
核心價值:在 DSH 的 llm/stream 流水線上修復模型產出的畸形工具參數,防止壞示範進入歷史記錄。

核心功能

  1. 修復畸形參數:處理嵌套 arguments 包裝、鍵別名(如 args、parameters)、參數鍵名別名(如 skill_name、name)等情況。
  2. 全鏈路修復:在參數持久化之前攔截,同時解決執行、持久化、歷史回放三個環節中的畸形參數問題。
  3. 歷史會話修正:v0.3.1 版本增加了對老會話輸入側的修正能力。在請求發往模型之前,對歷史記錄中的存量畸形參數進行就地修正,防止模型繼續模仿錯誤。
  4. 宿主校驗:基於宿主的 validateJsonSchemaValue 校驗器進行判定,確保修復後的參數符合 schema 要求。
  5. 靜默處理:對於沒有必填參數的工具,插件會靜默吞掉多餘的包裝層,避免因包裝導致的報錯。

安裝與啓用

通過在 profile 的 package.json 中配置依賴和 bundles 來安裝。

// <profile>/package.json
{
  "dependencies": { "@dsh-external/dsh-tool-args-unwrap": "link:/abs/path/to/dsh-tool-args-unwrap" },
  "dsh": { "profile": { "bundles": ["@dsh-external/dsh-tool-args-unwrap"] } }
}

配置完成後重啓 DSH 即可生效。

驗證與調試

  1. 確認生效:檢查插件目錄下的 state.json 文件,確認 listenerRegistered: true。
  2. 臨時停用:在配置中設置 enabled: false 即可完全停用流改寫,無需卸載插件。

注意事項與限制

  • 修復範圍:插件只修復參數的“形狀畸形”(如多了一層包裝),不修復語義缺失(例如模型真的漏寫了必填字段)。
  • 跨 Provider:跨 provider 的實機復現工作尚未全部完成。
  • 根本修復:插件是一個可插拔的實現參考,根本的修復方案應在宿主側(持久化前對 tool-call 參數做 schema 校驗 + 規範化)。

參考資料

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

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

小夜