前言¶
在 DeepSeek Harness(DSH)里跑智能体时,对外 HTTP 往往走宿主环境的全局 fetch。排查缓存命中差异、对比两次 LLM 请求 payload 时,单靠日志很难拿到完整请求体。下面介绍社区插件 dsh-req-capture:在进程内包装 fetch,记录每次出站请求,并按 URL 子串把匹配到的 body 写到本地目录,便于离线 diff 与分析。
这是什么¶
dsh-req-capture 由维护者 r-ayin 发布,在 DSH 插件目录中归类为「联网工具」。定位是诊断型插件:无 UI、无额外 tools,仅在加载时对宿主 fetch 做包装。README 给出的典型用途包括调试时对比 LLM 请求 payload(例如 cache-hit 表现不一致时)。
仓库:https://github.com/r-ayin/dsh-req-capture
目录页:https://www.skillhub.cn/plugins/r-ayin/dsh-req-capture
核心功能¶
经 README 核实,插件行为如下。
-
全量 fetch 日志
每一次fetch调用都会写入捕获目录下的fetch-log.txt,字段包含时间戳、方法、截断后的 URL、body 大小。 -
按 URL 子串捕获 body
当请求 URL 包含环境变量REQ_CAPTURE_MATCH所配置的子串时,将原始请求体写入req-<ts>-<seq>.json。 -
加载自检
插件 apply 时会执行一次 self-probefetch,用于确认包装在宿主 realm 中已生效。
默认不配置匹配子串时,只做日志、不落盘 body(见配置表默认值)。
配置¶
通过环境变量控制,无需改源码。
| 环境变量 | 含义 | 默认值 |
|---|---|---|
REQ_CAPTURE_MATCH |
URL 子串;URL 包含该子串的请求 body 会写入捕获目录 | 空(仅日志,不捕获 body) |
REQ_CAPTURE_DIR |
捕获文件目录 | /tmp/dsh-req-capture |
日志文件路径为 <REQ_CAPTURE_DIR>/fetch-log.txt;匹配的 body 文件名为 req-<ts>-<seq>.json。
注意 — 捕获内容是原始请求 payload,可能包含 prompt 等敏感信息。请将捕获目录视为敏感数据,用完后删除。
安装与启用¶
插件为预构建产物,无需本地 build。官方说明的安装方式有两种:
- 在 DSH Plugin Market 中安装(设置 → Plugin Market)。
- 按仓库中的
cordis.patch.yml手动加入 profile bundle stack。
社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装前建议阅读仓库源码与 MIT 许可证,并确认插件以当前 dsh 进程权限运行。
运行环境:package.json 要求 Node >=20。
典型用法¶
下面是一套可复现的配置思路(路径与子串请按你的调试目标修改)。
- 指定捕获目录(可选,默认
/tmp/dsh-req-capture):
export REQ_CAPTURE_DIR=/tmp/dsh-req-capture
- 设置要匹配的 URL 子串(例如某 API 主机或路径片段);留空则只写
fetch-log.txt:
export REQ_CAPTURE_MATCH=api.deepseek.com
- 在 DSH 中启用插件后触发会走
fetch的流程,再到目录中查看:
fetch-log.txt:所有出站 fetch 的摘要;req-*.json:URL 命中子串时的完整 body。
插件加载后的 self-probe 若正常,说明 wrapper 已在宿主侧生效;若看不到预期文件,先核对环境变量是否在 dsh 进程启动前已 export。
适用场景与注意¶
适合谁
- 需要在 DSH 宿主内对比两次 LLM / 上游 HTTP 请求体差异的开发者;
- 希望在不改业务代码的前提下,临时观察全局
fetch行为的同学。
使用注意
- 捕获目录可能含 prompt 与密钥片段,勿提交到版本库或共享目录。
- 本插件不提供图形界面与 Agent tools,仅做
fetch层面的诊断。 - 当前仓库
package.json版本为0.0.1,星标与后续变更以 GitHub 为准。
结尾¶
dsh-req-capture 用最小侵入的方式包装全局 fetch:默认只记日志,配上 REQ_CAPTURE_MATCH 即可把命中 URL 的请求体落到磁盘,方便离线分析。需要安装或源码时,可访问目录页 skillhub.cn/plugins/r-ayin/dsh-req-capture 与 GitHub 仓库 github.com/r-ayin/dsh-req-capture。