dsh-plugin-tool-trace: Tracking Tool Call Duration and Result Size

前言

在使用 DeepSeek Harness (DSH) 构建工作流时,除了关注对话本身的内容(transcript),开发者通常还需要监控工具调用的实际表现,例如耗时是否异常、参数与结果消耗了多少 Token。传统的日志方式往往将大量数据注入上下文,不仅难以检索,也缺乏聚合统计能力。本插件提供了一种“零模型可见面”的透视镜,仅记录关键指标,不干扰上下文。

插件介绍

dsh-plugin-tool-trace 是一个 DeepSeek Harness (dsh) 插件。它的核心职责是追踪每次工具调用的耗时、参数量与结果量(仅记录大小,不记录内容)。数据按月生成 JSONL 文件落盘,并提供 /tools-stats 命令生成慢工具排行榜。

  • 维护者:121212165
  • 许可证:MIT

核心功能

  1. 慢工具排行榜:访问 /tools-stats,系统会按累计耗时排序,展示每个工具的调用次数、累计耗时、平均耗时、最慢耗时、平均结果量以及错误计数。
  2. 零模型可见面:所有追踪数据仅写入本地文件,不进入对话上下文。这既保护了隐私,也使得数据纯粹用于人眼分析。
  3. 容错处理:如果进程崩溃导致写入中断,半行数据会被自动跳过并计数。对于中途死掉的调用(只有开始没有结束),在聚合统计时会自然被忽略。

安装与启用

安装过程需要通过 DSH 的插件命令将包添加到指定 Profile,并修改配置文件。

1、执行安装命令(需确保 pnpm 在 PATH 上):

dsh plugin --profile web add github:121212165/dsh-plugin-tool-trace

此命令会通过 pnpm 自动运行 prepare 脚本构建插件。

2、配置补丁文件。
找到本插件仓库根目录的 cordis.patch.yml,将其内容合并到 $DSH_HOME/profiles/web/cordis.patch.yml 中。
注意:该文件默认为空数组 []。请将补丁内容并进数组,不要直接追加。追加会导致 YAML 解析错误(报错 failed to parse overlay ... end of the stream or a document separator is expected)。

3、重启 dsh。
配置层与客户端都需要重启才能生效(客户端基于启动时的内容 rev 下发,硬刷新浏览器无效)。

配置

插件支持以下配置项:

字段 默认值 说明
dataDir ~/.dsh/tool-trace JSONL 日志落盘目录
captureArgsSize true 是否记录参数 JSON 的长度

典型用法

1、查看统计:在 DSH 界面或终端使用 /tools-stats 命令,查看慢工具排行榜。
2、查看日志:进入 dataDir(默认 ~/.dsh/tool-trace),查看按月分割的 JSONL 文件,了解具体的调用指标。

注意事项

1、结果量精度:结果体大小的提取依赖下游结果的数据形状。如果 content 为字符串,大小计算是精确的;如果是其他形状(如数组、对象),则通过序列化估算大小。
2、Live Mount 未验证:插件未在正在运行中的 dsh 实例上进行 live mount 验证。
3、生效条件:必须重启 dsh 进程,插件才能生效。

结尾

本插件通过文件落盘和聚合统计,帮助开发者从“说了什么”转向“做了什么、慢在哪”。更多细节与源码,请访问 GitHub 或 社区目录。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye