前言¶
在 DeepSeek Harness (DSH) 的開發或調試過程中,經常會遇到請求失敗的情況。此時界面往往只顯示模糊的“API 錯誤”或“Provider Error”,缺少錯誤碼、Request ID 等關鍵上下文,且第三方網關返回的 HTTP 狀態碼(如 401、403、429)在界面上往往被統一處理,難以快速定位問題根源。
dsh-error-lens 插件旨在解決這一問題。它作爲 DeepSeek Harness 的一個社區插件,通過讀取本地會話日誌,將失敗記錄整理成結構化的診斷信息,並自動進行脫敏處理,幫助開發者快速排查 API 故障。
插件介紹¶
dsh-error-lens 是一個只讀的、脫敏的模型請求錯誤診斷工具。
- 維護者:Wanbinyu
- 類別:admin-security
- 許可證:MIT
- 定位:它不攔截請求,也不自動重試,僅作爲 Web UI 的輔助診斷面板存在。
核心功能¶
- 失敗信息展示
插件會在消息輸入區上方顯示最近一次仍未恢復的請求失敗信息。 - 歷史記錄對比
展開面板後,可以看到最近 3 條此前失敗的記錄,便於判斷是否爲重複故障。 - 錯誤分類
插件會將錯誤細分爲 8 類:身份驗證、禁止訪問、限流、上下文超限、兼容性、超時、網絡和服務端錯誤。 - 關鍵上下文
它會展示 DSH 已持久化的供應商錯誤消息以及對應的 Request ID,這些是排查問題的重要依據。 - 報告生成
提供一鍵複製功能,生成中英文脫敏的診斷報告,適合直接提交到 GitHub Discussions 或發給技術支持。 - 交互與狀態
支持手動關閉當前診斷面板(不刪除會話內的記錄),且在成功完成下一輪對話後自動隱藏提示。
安裝與啓用¶
在安裝前,請確保環境滿足以下要求:
* Node.js:版本 >= 22.19
* DeepSeek Harness:版本 0.1.0-rc.6 或更高
使用官方提供的安裝命令進行安裝:
dsh plugin --profile web add https://github.com/Wanbinyu/dsh-error-lens/releases/download/v0.1.7/dsh-error-lens-0.1.7.tgz
安裝完成後,需要重啓 Harness 服務以加載插件:
dsh web
如需卸載,可使用:
dsh plugin --profile web remove dsh-error-lens
配置說明¶
插件的默認配置位於 Web profile 的 cordis.patch.yml 文件中:
- insert:
- id: error-lens
name: dsh-error-lens
config:
maxRecords: 10
maxMessageLength: 2000
| 配置項 | 默認值 | 說明 |
|---|---|---|
maxRecords |
10 |
每個會話投影保留的最近錯誤數量,範圍 1-50 |
maxMessageLength |
2000 |
單條脫敏錯誤的最大字符數,範圍 256-8000 |
隱私與邊界¶
該插件設計時遵循嚴格的隱私原則:
* 數據來源:僅處理 DSH 會話日誌中已經存在的終止失敗記錄。
* 不讀取敏感信息:不會讀取 settings.yaml 中的密鑰,不會記錄請求正文或完整提示詞。
* 無外部交互:不會向外部服務發送遙測數據,不會自動更改配置、重試或切換模型。
* 無 DOM 注入:基於官方 session projection 與 Web UI slot 實現,不進行破壞性的 DOM 注入。
雖然插件會嘗試通過文本規則移除 API Key、Token 和 URL 密鑰參數,但複製或公開報告前仍建議人工檢查,因爲基於文本的脫敏無法保證覆蓋所有供應商自定義的錯誤格式。
適用場景與注意¶
- 適用場景:適合在調試 API 調用、排查網關報錯、分析 Request ID 時使用。
- 注意:這是一個非官方社區插件,與 DeepSeek 官方無隸屬或背書關係。
- 權限提示:插件以當前 DSH 進程的權限運行。在安裝任何插件前,建議檢查其源碼與許可證。
結尾¶
dsh-error-lens 提供了從模糊報錯到清晰診斷的中間層能力。對於需要頻繁排查 API 問題的開發者,它能顯著提升溝通與調試的效率。