前言¶
DeepSeek Harness(DSH)的轨迹通常展示语义化交互,但底层的 HTTP 交换对调试来说是一个黑盒。dsh-trace 为 DSH Web 增加了一个“请求追踪”Tab,把大模型请求从“黑盒调用”变成可检查的完整 HTTP 交换记录。
插件定位¶
dsh-trace 是一个面向 DeepSeek Harness 的 Web 插件,由 weekitmo 维护。插件当前位于 weekitmo/oh-my-dsh-plugins monorepo 中,使用 @weekit/dsh-trace 包。
安装与启用¶
安装前请确保环境满足以下要求:
- Node.js ^22.19.0 或 >=24.0.0
- pnpm 11.7.0
- DeepSeek Harness 0.1.2-alpha.2
在插件源码目录执行以下命令:
pnpm install --frozen-lockfile
pnpm run build
dsh plugin --profile web add .
安装完成后,重启 DSH Web:
dsh web
核心功能¶
插件在 DSH 轨迹旁增加“请求追踪”Tab,按当前会话筛选请求。它记录实际发出的 HTTP method、URL、请求头、请求体、响应状态、响应头、响应体、耗时和重试次数。
在详情页,可以通过两种视图查看数据:
- 对话阅览:将请求和响应还原为可阅读的对话结构,显示请求上下文、模型响应、思考过程、工具定义、工具调用和工具结果。
- 接口数据:查看请求概览、请求头、响应头,以及格式化或原始的请求/响应 Body。
插件支持以下格式:
- 模型协议:OpenAI Chat Completions、OpenAI Responses、Anthropic,以及常见 Gemini-compatible 请求和响应格式。
- 数据内容:普通 JSON、SSE 流式响应、推理内容、工具调用、工具结果和附件标记。
请求列表支持自动刷新、手动刷新、游标分页、复制 URL、显示每条记录的保留截止时间,以及清空当前会话追踪记录。
在 UI 适配上:
- 桌面端列表和详情使用独立滚动区,默认不自动选中请求。
- 移动端保持列表到详情的进入和返回流程,不需要横向滚动。
保留与设置¶
默认只保留最近 24 小时。在 DSH 设置 > 通用 > 请求追踪保留时间 中配置:
- 最近 24 小时
- 最近 3 天
- 最近 7 天
- 自定义数值,单位可选小时或天
数据存储在插件自己的 SQLite 数据库中:
$DSH_HOME/dsh-trace/requests.sqlite
使用方法¶
- 打开一个已有内容的 DSH 会话。
- 在会话顶部切换到“请求追踪”。
- 从左侧请求列表选择一次模型 HTTP 请求。
- 在详情顶部切换“对话阅览”或“接口数据”。
限制与注意事项¶
- 捕获范围:只有 DSH 在
llm/stream上下文中通过globalThis.fetch发出的模型请求会被捕获。浏览器 RPC、工具调用和其他插件的 HTTP 请求不会进入此列表。 - 数据归属:请求追踪是官方轨迹的增强视图,不是 Session event,不会进入 Session 导出或 fork 历史。
- 隐私与脱敏:数据写入磁盘前会进行通用脱敏,包括常见凭据请求头、URL 查询参数中的凭据等。但提示词、工具定义、模型输出、自定义请求头和业务 Payload 仍然可能包含隐私或敏感业务数据。
- 配置生效:修改保留时间可以直接通过设置页面生效。修改采集字节上限或数量上限后需要重启插件所在的 DSH Web。
总结¶
dsh-trace 将原本不可见的 HTTP 交换记录化为可见的调试数据,配合脱敏机制,适合开发者检查模型调用细节。相关目录与源码请参考:weekitmo/dsh-trace