dsh-net-inspector:在 DSH 裏用一塊麪板看四條 HTTP 流量

前言

在 DeepSeek Harness(DSH)裏排網絡問題,往往要分開看:Host 進程裏的 web_fetch、LLM 調用,頁面自己的 fetch,桌面版右側欄內置瀏覽器裏的網頁,有時還要對照外部 Chrome 或 Edge 裏打開的頁面。各自開 DevTools 或抓包,上下文對不齊,也難和 Agent 工具調用放在同一條時間線上。

下面介紹社區插件 dsh-net-inspector(維護者 puthead,分類:客戶端)。它在輸入框工具欄提供類似瀏覽器 DevTools「Network」的浮動面板,把 Host、DSH 頁面、內置 <webview>、以及通過 CDP 掛上的外部 Chromium 流量合併展示,並給 Agent 註冊 net_inspect 工具讀取最近請求。

這是什麼

一句話:給 DSH 內置 DevTools 風格的網絡面板,停靠在輸入框正上方,可查看方法、URL、狀態碼、耗時、大小、頭與 body,並按來源分欄過濾。

四條來源在 README 裏寫得很清楚:

來源 抓什麼 怎麼抓
Host 進程 工具調用、web_fetch、web_search、圖片 API、MCP、LLM 等出站 HTTP 包裝 Host 的 globalThis.fetch
DSH 頁面 頁面內 fetch / XHR / WebSocket / EventSource 在頁面內包裝對應構造函數
內置瀏覽器 桌面版右側欄 Electron <webview> 裏的網頁 對每個 webview 注入採集腳本,再抽回事件
CDP 外部 Chrome / Edge 等標籤頁 連接 --remote-debugging-port,訂閱 Network 域

列表行前綴:[H] Host、[B] DSH 頁面、[W] 內置瀏覽器、[C] 外部瀏覽器(CDP)。

核心功能

面板與過濾

  • 輸入框工具行(模型選擇器左側)有波形圖標;點在輸入框上方展開,再點、右上角 × 或 Esc 收起。
  • 分段標籤:「全部 / Host / DSH 頁面 / 內置瀏覽器 / CDP」;過濾框支持空格分詞、-關鍵詞 排除、method:post、status:4(前綴)或 status:404。
  • 表頭「耗時」「大小」可排序;底部「失敗 N」只看失敗請求。
  • 點一行右側展開詳情;JSON 自動美化,URL / cURL / 各段內容可單獨複製。
  • 波形按鈕上的紅色角標只統計「上次打開面板之後」的新失敗請求,不會一直掛着歷史錯誤。

Agent 工具 net_inspect

模型可讀最近請求(四側均可),示例參數:

{ "limit": 10, "side": "client", "urlContains": "api", "includeBodies": false }

外部瀏覽器(CDP)

默認只抓 Host 和 DSH 頁面。要讓插件連上 Edge(示例來自 README):

& 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' `
  --remote-debugging-port=9222 `
  --user-data-dir="$env:TEMP\edge-cdp-profile"

面板底部 CDP N 表示已掛標籤數;端口不通顯示 CDP 未連接,約 5 秒內自動重試。HTTPS 與 DevTools Network 一致,無證書攔截問題。限制:只覆蓋連接之後發起的請求;僅 Chromium 系,Firefox 未實現。

配置與安全邊界

cordis.patch.yml 中可配環形緩衝、body 上限、URL 忽略規則與 CDP 端點:

- id: net-inspector
  name: dsh-net-inspector
  config:
    enabled: true
    maxEvents: 2000
    bodyCap: 24576
    ignore:
      - 'dsh-app://app/dsh-whale/'
    cdp:
      enabled: true
      endpoints:
        - 'http://127.0.0.1:9222'
      retryMs: 5000

橋接 API 只接受本機迴環;捕獲內容可能含 API Key、Cookie,面板僅本機內存、不落盤。插件以當前 DSH Host 進程權限運行,安裝前宜自行查看源碼與 MIT 許可證。

安裝與啓用

官方安裝方式(README 原文,路徑換成本地克隆或下載後的絕對路徑):

plugin_manager install_bundle  <本倉庫所在的絕對路徑>

安裝後插件行 net-inspector 應爲 active。桌面版啓動時組裝客戶端 bundle,修改 lib/client.js 或 lib/index.js 後需重啓 DSH 才生效。package.json 標明版本 0.4.0,Node >=20,peer 依賴 @deepseek-ai/cordis 與 @deepseek-ai/dsh-tools。

典型用法

  1. 裝好插件並重啓 DSH,點輸入框左側波形按鈕打開面板。
  2. 復現一次對話或頁面操作,在「Host」看工具與 LLM 出站,在「DSH 頁面」看前端 API。
  3. 桌面版若開了右側內置瀏覽器,切到「內置瀏覽器」;未開時底部會提示「內置瀏覽器未開」。
  4. 需要對照外部網頁時,用調試端口啓動瀏覽器,看「CDP」分段與帶 C 徽標的行。
  5. 讓 Agent 用 net_inspect 按 urlContains、side 等篩最近條目(是否帶 body 由 includeBodies 控制)。

鍵盤:列表聚焦時 ↑/↓ 切換請求,/ 聚焦過濾框;Esc 逐級清空過濾 → 取消選中 → 收起面板。

適用場景與注意

適合:在本機調試 DSH 插件與頁面聯調、覈對 Host 工具 HTTP、對比內置 webview 與外部瀏覽器行爲、把最近請求交給 Agent 分析(不含 body 時可減敏感信息暴露)。

務必知曉的限制(摘自 README):

  • Host 側只 hook globalThis.fetch,走 node:http/node:https 的不會進面板。
  • SSE / 流式響應 deliberately 不讀 body;二進制、圖片、音視頻不 clone body。
  • 瀏覽器側是插件加載之後的請求;WebSocket 主要記 outbound 與生命週期。
  • 暫停面板只凍 UI,採集繼續;環形緩衝滿會淘汰舊條目,面板底部會顯示忽略與丟棄計數。

DSH 生態強調「一切皆插件」;社區目錄 SkillHub 插件頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-net-inspector 把 Host、頁面、內置瀏覽器、CDP 四條線收進一塊本機 Network 面板,並暴露 net_inspect,適合在 DSH 日常開發裏少開幾個窗口、少猜請求從哪一側發出。

  • 目錄頁:https://www.skillhub.cn/plugins/puthead/dsh-net-inspector
  • 源碼與完整說明:https://github.com/puthead/dsh-net-inspector
羽毛球分组比赛记分
小程序二维码

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

小夜