dsh-harness-trace:把 Harness 与 LLM 的整段交互落成可读时间线

前言

在 DSH 里做智能体或插件时,真正发往模型的内容往往不止用户一句话:系统提示词、各插件注入、技能加载、工具调用与命令执行都会叠进同一条请求。事后若只能看到最终回复,很难还原「这一轮到底带了什么上下文、哪一步读了哪些文件、联网搜了什么」。手工翻日志或零散截图也缺少按轮次、按步骤的时间线视图。

下面介绍社区插件 Harness 交互追踪(@oihai/dsh-harness-trace,维护者 oihai,SkillHub 分类:记忆)。它持续监听本地 DeepSeek Harness 调用 LLM 的全过程,把可核对的事实按时间汇总成 Markdown,并落在会话对应工作区内,同时提供审阅页与可调配置。数据全部来自 Harness 自身的事件契约,README 明确说明不依赖任何其他插件。

这是什么

dsh-harness-trace 是一套只读观测插件:监听 Harness 事件,不修改请求内容;llm/stream 监听器原样透传所有 chunk。目标用户是希望在本地研究 harness 与模型真实交互的开发者。

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 文件;后续轮次持续追加(整体重写)。

  1. 默认目录:该会话对应工作区内的 <工作区>/harness-trace/。工作区不可写时,回退到 ~/.dsh/harness-trace/out/。
  2. 命名规则:序号 + 时间,例如 0001-20261010-040951.md。
  3. 自定义:可在设置中调整输出子目录名等输出相关项。

界面入口

安装后 README 列出四个入口,均可单独开关,并可各自调整位置序号:

  1. 侧边栏面板 — 审阅页:左侧会话列表,右侧按轮次 / 步骤展开的时间线;可切换查看 Markdown 源码、手动写入、自动刷新。
  2. 设置 → Harness 交互追踪 — 全部配置项;配置文件路径可在审阅页底部或设置页查看。
  3. 会话内「追踪」标签 — 仅当前会话。
  4. 会话头部快捷按钮 — 显示追踪状态,可一键暂停 / 开始与写入。

UI 改动即时生效;也可直接编辑配置文件。

配置要点

以下均来自 README,未在资料中出现的字段不要自行扩展。

采集项(可逐项开关):系统提示词、提示词装配来源、发往模型的完整请求、用户输入、模型回复、推理过程、工具调用、工具结果、文件读写、联网、技能、命令执行、Token 用量。

详细程度:摘要 / 标准 / 完整;另有单条正文上限(字符)。

原始请求:仅在变化时 / 每次都写 / 不记录;最多消息数;总预算(超出部分折叠为一行)。

去重:系统提示词与提示词装配在同一步骤重复出现时省略重复正文(关闭后文件会显著变大)。

追踪范围:全部 / 仅所选 / 除所选;可勾选具体会话与工作区;可排除子代理会话。

输出:子目录名、写入时机(每轮 / 每步 / 仅手动)、合并延迟。

入口位置:四个入口的开关与序号。

安装与开发方式

已抓取资料中未给出形如 dsh plugin add … 的固定安装命令;README 仅说明开发安装方式:

安装为 link: 指向工作区源码,因此改工作区文件即改插件(宿主半改动后需重新加载才生效)。

使用前请在 SkillHub 目录页或 GitHub 仓库核对当前推荐安装方式。插件以当前 dsh 进程权限运行,安装前应自行检查源码与 MIT 许可证。

典型用法(可复现流程)

  1. 在 Desktop 环境安装并启用插件后,打开 设置 → Harness 交互追踪,按需要勾选采集项、详细程度与追踪范围。
  2. 在 Harness 中正常进行会话;需要即时查看时,打开侧边栏审阅页或会话内「追踪」标签,使用时间线浏览轮次与步骤。
  3. 需要落盘归档时,使用会话头部快捷按钮控制暂停 / 开始与写入,或依赖配置的写入时机(每轮 / 每步 / 仅手动)。
  4. 到会话工作区下的 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
羽毛球分组比赛记分
小程序二维码

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

小夜