dsh-net-inspector: View 4 HTTP Flows on a Single Panel in DSH

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye