前言¶
DeepSeek Harness(DSH)在處理模型調用時,偶爾會遇到模型輸出畸形 tool call 的情況,例如 id 爲空、name 爲空或 arguments 不是字符串。DSH 在運行期校驗較寬鬆,但解碼期要求嚴格,一旦壞事件落盤,會話日誌便無法加載,側邊欄顯示 stored session ... is corrupt。
下面介紹一個插件,它在日誌落盤之前攔截並修復這些問題。
插件定位¶
這是一個 DeepSeek Harness 插件,由 hbgdjb 維護,許可證爲 MIT。它掛在 DSH 官方的 llm/stream waterfall 上,通過一個鉤子覆蓋全部模型調用。
核心功能¶
- 壞調用自動修復:攔截並替換畸形 tool call。空
id會生成call-guard-<token>-<index>,空name會替換爲guard_malformed_tool_call,非法arguments會轉成 JSON 字符串。 - 正常調用原樣通過:對於有效的 tool call,不做任何修改。
- 無額外依賴與零配置:無額外依賴,無客戶端代碼,不寫任何文件,安裝後即生效。
安裝¶
通過插件管理器 install_bundle,或 設置 → 插件的安裝入口安裝。
- 安裝包(推薦分發):直接給出本
.tgz的絕對路徑。 - 源碼目錄:解壓源碼 zip 後給出目錄絕對路徑。
- Registry/Git:發佈後用包名或倉庫地址安裝。
配置與生效¶
安裝成功後,在 profile 的 cordis.patch.yml 中配置:
- id: session-shield
enabled: true
驗證配置是否生效:
dsh --profile <profile> --dump-config
輸出中應包含 # == dsh-session-shield 層與 - id: session-shield 行。最後重啓 DSH 生效。
驗證與注意¶
- 環境要求:需要 DeepSeek Harness 0.1.x(Web 端)。
- 日誌行爲:插件日誌輸出到內存 buffer,不打印到
manager.log。因此啓動時看不到 “armed” 日誌是正常現象。 - 安全性:插件以當前 DSH 進程權限運行,安裝前請檢查源碼與許可證(MIT)。
結尾¶
dsh-session-shield 通過在流處理階段攔截並修復畸形 tool call,解決了會話日誌損壞的問題。這是一個輕量級、零配置的插件,適合所有使用 DSH 0.1.x 的開發者。