前言¶
在 DSH 里做智能体或插件时,真正发往模型的内容往往不止用户一句话:系统提示词、各插件注入、技能加载、工具调用与命令执行都会叠进同一条请求。事后若只能看到最终回复,很难还原「这一轮到底带了什么上下文、哪一步读了哪些文件、联网搜了什么」。手工翻日志或零散截图也缺少按轮次、按步骤的时间线视图。
下面介绍社区插件 Harness 交互追踪(@oihai/dsh-harness-trace,维护者 oihai,SkillHub 分类:记忆)。它持续监听本地 DeepSeek Harness 调用 LLM 的全过程,把可核对的事实按时间汇总成 Markdown,并落在会话对应工作区内,同时提供审阅页与可调配置。数据全部来自 Harness 自身的事件契约,README 明确说明不依赖任何其他插件。
这是什么¶
dsh-harness-trace 是一套只读观测插件:监听 Harness 事件,不修改请求内容;llm/stream 监听器原样透传所有 chunk。目标用户是希望在本地研究 harness 与模型真实交互的开发者。
- 维护者:oihai
- npm 包名:
@oihai/dsh-harness-trace(package.json 版本 1.0.0;README 标注版本 1.0) - 目录页:SkillHub - oihai/dsh-harness-trace
- 源码与说明:GitHub - oihai/dsh-harness-trace
- 许可证:MIT
DeepSeek Harness 生态采用「一切皆插件」思路;SkillHub 为社区独立目录,与 DeepSeek / 幻方无官方从属关系。
追踪了哪些内容¶
插件把多路事件归类后,按「轮次 → 步骤」依时间顺序拼成一条时间线,并附会话概览、文件访问汇总、联网活动汇总、技能加载汇总。README 中的对应关系如下。
| 内容 | 来源 |
|---|---|
| 完整提示词(发往模型的原始消息、系统提示词、各插件注入) | llm/stream 的冻结请求 + session/event 的 system/message、developer/message |
| 提示词由谁贡献(每段出处) | system-prompt/assemble |
| 用户输入、模型回复、推理过程 | session/event |
| 工具调用与结果(含失败) | session/event 的 tool/call、tool/result |
| 本地文件读写 | 从 read / write / edit / glob / grep 等工具调用归类并汇总 |
| 联网搜索与抓取 | 从 web_search / web_fetch 归类并汇总 |
| 技能加载、命令执行 | 从 skill、pwsh / bash 等归类并汇总 |
| Token 用量与结束原因 | assistant/message 的 usage、llm/stream 的 finish |
说明:系统提示词只记录真正进入请求的那一份,不在插件侧重新拼装。
产出位置与命名¶
一次会话对应一个 Markdown 文件;后续轮次持续追加(整体重写)。
- 默认目录:该会话对应工作区内的
<工作区>/harness-trace/。工作区不可写时,回退到~/.dsh/harness-trace/out/。 - 命名规则:序号 + 时间,例如
0001-20261010-040951.md。 - 自定义:可在设置中调整输出子目录名等输出相关项。
界面入口¶
安装后 README 列出四个入口,均可单独开关,并可各自调整位置序号:
- 侧边栏面板 — 审阅页:左侧会话列表,右侧按轮次 / 步骤展开的时间线;可切换查看 Markdown 源码、手动写入、自动刷新。
- 设置 → Harness 交互追踪 — 全部配置项;配置文件路径可在审阅页底部或设置页查看。
- 会话内「追踪」标签 — 仅当前会话。
- 会话头部快捷按钮 — 显示追踪状态,可一键暂停 / 开始与写入。
UI 改动即时生效;也可直接编辑配置文件。
配置要点¶
以下均来自 README,未在资料中出现的字段不要自行扩展。
采集项(可逐项开关):系统提示词、提示词装配来源、发往模型的完整请求、用户输入、模型回复、推理过程、工具调用、工具结果、文件读写、联网、技能、命令执行、Token 用量。
详细程度:摘要 / 标准 / 完整;另有单条正文上限(字符)。
原始请求:仅在变化时 / 每次都写 / 不记录;最多消息数;总预算(超出部分折叠为一行)。
去重:系统提示词与提示词装配在同一步骤重复出现时省略重复正文(关闭后文件会显著变大)。
追踪范围:全部 / 仅所选 / 除所选;可勾选具体会话与工作区;可排除子代理会话。
输出:子目录名、写入时机(每轮 / 每步 / 仅手动)、合并延迟。
入口位置:四个入口的开关与序号。
安装与开发方式¶
已抓取资料中未给出形如 dsh plugin add … 的固定安装命令;README 仅说明开发安装方式:
安装为 link: 指向工作区源码,因此改工作区文件即改插件(宿主半改动后需重新加载才生效)。
使用前请在 SkillHub 目录页或 GitHub 仓库核对当前推荐安装方式。插件以当前 dsh 进程权限运行,安装前应自行检查源码与 MIT 许可证。
典型用法(可复现流程)¶
- 在 Desktop 环境安装并启用插件后,打开 设置 → Harness 交互追踪,按需要勾选采集项、详细程度与追踪范围。
- 在 Harness 中正常进行会话;需要即时查看时,打开侧边栏审阅页或会话内「追踪」标签,使用时间线浏览轮次与步骤。
- 需要落盘归档时,使用会话头部快捷按钮控制暂停 / 开始与写入,或依赖配置的写入时机(每轮 / 每步 / 仅手动)。
- 到会话工作区下的
harness-trace/(或你配置的子目录)打开0001-YYYYMMDD-HHMMSS.md类文件,对照 Markdown 中的汇总与会话概览做离线分析。
与浏览器通信(Desktop)¶
插件自建顶层通道在 Desktop 组合下不会被服务。宿主因此在共享 /api 通道上注册精确 Fetch 路由 /api/harness-trace;浏览器侧调用方式为:
connection.rpc.call('/api', 'harness-trace', { method, payload })
README 注明:该插件仅在桌面版中完成测试。
适用场景与注意¶
适合:本地调试 DSH 插件与技能组合、核对提示词装配与各段出处、复盘工具链(文件、命令、联网)在同一轮中的顺序;需要把交互过程沉淀为工作区内 Markdown 的场景。
注意:
- 只读监听,不篡改模型请求;但若开启文件、命令、联网等采集,产出文件会包含会话中的敏感路径与内容,请自行控制工作区与追踪范围。
- 排除子代理会话、缩小追踪范围可减轻体积与泄露面。
- 关闭去重或选用「完整」详细程度会显著增大 Markdown。
- 非 Desktop 或未提供
/api/harness-trace的环境,审阅页等 UI 能力可能不可用,以实际宿主为准。
结尾¶
dsh-harness-trace 把 Harness 事件契约上的事实串成「轮次 → 步骤」时间线,并写入会话工作区,便于对照真实提示词、工具与 Token 行为做本地研究。进一步说明与 issue 见 GitHub;社区索引见 SkillHub 目录页:
- https://www.skillhub.cn/plugins/oihai/dsh-harness-trace
- https://github.com/oihai/dsh-harness-trace