前言¶
在 DeepSeek Harness 的開發與調試過程中,需要精確掌握請求從發起到完成的完整生命週期。傳統的日誌記錄往往包含大量敏感文本,不適合直接用於診斷。下面介紹一個插件,它可以在不保留提示詞或響應內容的前提下,記錄請求的精確座標與結構化元數據。
是什麼¶
dsh-request-flight-recorder 是一個由 abinzhao 維護的插件,屬於 admin-security 類別。它是一個 Privacy-safe request flight recorder,通過觀察官方 Agent Loop 請求,將請求組裝與流式完成進行關聯,並在內存中維護有限的飛行記錄歷史。
核心功能¶
該插件提供以下能力:
- 精確座標:記錄 Session、Turn、Step 和 request-attempt 的精確座標。
- 結構化元數據:包含 Provider、model、generation settings、structural message counts 以及 tool schema sizes。
- 結構化名稱:記錄 Prompt section、context、tool 和 variable 的名稱,但不包含具體值。
- 性能與狀態:記錄 Time to first chunk、total duration、token usage、finish reason 和結構化的失敗狀態。
- 進程健康:提供 Process health counters、retained-record queries 和確定性無內容差異。
- 人類命令:當 Profile 提供 Commands 服務時,提供可選的官方
/flight命令。
安裝與啓用¶
通過官方 DSH 插件命令進行安裝:
dsh plugin --profile web add dsh-request-flight-recorder
安裝後,插件會自動添加默認配置:
- insert:
- id: request-flight-recorder
name: dsh-request-flight-recorder
config:
capacity: 128
slowFirstChunkMs: 1000
slowTotalMs: 2000
說明:capacity 限制當前進程中保留的記錄數;slowFirstChunkMs 和 slowTotalMs 用於分類診斷請求,不會改變請求執行語義。
典型用法¶
噹噹前 Profile 包含 Commands 服務時,可以使用以下命令:
- 查看最新記錄:
/flight或/flight latest - 列出記錄:
/flight list(默認 10 條)或/flight list [limit](1-20) - 按狀態篩選:
- 失敗記錄:
/flight list failed [limit] - 慢請求:
/flight list slow [limit] - 截斷記錄:
/flight list truncated [limit]
- 失敗記錄:
- 查看詳情:
/flight show <request-id-prefix> - 對比差異:
/flight diff或/flight diff <from-prefix> <to-prefix> - 健康檢查:
/flight health - 解釋說明:
/flight explain <request-id-prefix> - 統計信息:
/flight stats
說明:ID 解析爲當前 Session 內的唯一前綴。輸出爲純文本,限制在 4,096 UTF-16 代碼單元。
適用場景與注意¶
- 隱私邊界:插件不保留提示詞文本、消息內容、工具參數、工具結果或提示詞變量值。它只保留結構化名稱、計數和計時信息。上游異常消息中的提供方細節也不被保留。
- 無持久化:插件不將記錄寫入磁盤。Ring Buffer 在進程退出、HMR 處置或服務處置時被清除。
- 運行環境:該插件在同一個 Node.js 進程中與其他 Profile 插件一起運行,不是安全邊界。
- 語義不變:插件不會註冊模型 Tool、Skill、prompt section 或 context provider,也不會改變 Agent Loop 或 prompt 語義。
短結尾¶
該插件通過結構化數據輔助開發者定位問題,同時嚴格遵守隱私邊界。更多細節與源碼,可參考插件目錄或 GitHub 倉庫。