前言¶
在 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。
典型用法¶
- 装好插件并重启 DSH,点输入框左侧波形按钮打开面板。
- 复现一次对话或页面操作,在「Host」看工具与 LLM 出站,在「DSH 页面」看前端 API。
- 桌面版若开了右侧内置浏览器,切到「内置浏览器」;未开时底部会提示「内置浏览器未开」。
- 需要对照外部网页时,用调试端口启动浏览器,看「CDP」分段与带
C徽标的行。 - 让 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