前言¶
在開發基於 DeepSeek Harness (DSH) 的應用或調試智能體行爲時,開發者經常需要確認發送給模型的具體參數。這包括系統提示詞、工具定義以及消息流轉的原始結構。該插件直接讀取當前會話狀態或持久化日誌,重建併發送完整的請求幀,幫助開發者精確校驗輸入格式。
插件介紹¶
request-frame-preview 是一個由 zampie 維護的 DSH 插件,遵循 MIT 許可證。
它提供了兩個部分:
* 主機端:註冊一個只讀的 HTTP 端點。
* 瀏覽器端:在會話頭部工具欄提供“請求預覽 / Request preview”按鈕。
核心功能¶
- 預覽請求幀:點擊會話頭部的按鈕,可以打開覆蓋層,查看以下內容:
- 系統提示詞:消息數組中的索引 0。
- 工具聲明:每個工具定義的行,點擊可查看參數。
- 消息數組:從索引 1 開始的消息流,包含 user、assistant、tool-result 角色,以及 reasoning 內容和 tool_calls 結構。
- 下載 JSON:將完整的請求幀(包含配置、系統提示詞、工具參數模式及消息)保存爲
dsh-request-<sessionId>.json文件。
安裝與啓用¶
通過命令行安裝該插件:
dsh plugin --profile web add request-frame-preview
安裝完成後,需要重啓 dsh web 進程(或等待插件市場自動重啓)以加載插件包。安裝成功後,在會話頭部工具欄中會出現“請求預覽 / Request preview”按鈕。
使用步驟¶
- 啓動一個會話。
- 點擊工具欄中的“請求預覽 / Request preview”按鈕。
- 在彈出的界面中查看系統提示詞、工具定義和消息內容。
- 點擊“下載 JSON”按鈕,保存完整的請求幀數據。
數據生產方式¶
插件的數據來源分爲兩種情況:
* 當前運行會話:通過 requestHeader() 和 deriveMessages() 函數獲取,這與智能體循環在構建請求時讀取的數據一致。
* 歷史會話:當會話已關閉時,會從持久化日誌的 sessionQuery.readSession 和 readSurface 中讀取數據。
數據重組嚴格遵循 DeepSeek chat-completions 適配器的文本路徑:系統提示詞作爲第一條消息,每個工具結果塊作爲獨立的 role: "tool" 消息,助手文本、推理內容和工具調用則被拆分到對應的線纜字段中。
安全與注意事項¶
- 只讀端點:HTTP 端點僅支持 GET 和 HEAD 請求,不涉及任何狀態修改操作。
- 跨域限制:當請求頭
Origin存在且與Host不匹配時,插件會拒絕跨域請求;不帶Origin的請求(如 curl 或<a download>)則被允許,這與dshmarket的 GET 路由慣例一致。 - 調試性質:該插件是一個調試輔助工具。它將會話的完整系統提示詞、工具模式及消息內容暴露給能夠訪問該端點的人。主機端點本身不構成安全邊界,不應作爲防禦措施依賴。
總結¶
該插件幫助開發者精確還原發送給模型的請求幀結構,便於排查配置錯誤或調試工具調用邏輯。其源碼與文檔位於 GitHub:https://github.com/zampie/request-frame-preview