dsh-session-receipt:为 DSH 会话出具工具调用小票

前言

在 DeepSeek Harness(DSH)里跑长会话时,模型会连续发起大量工具调用,终端输出往往一长屏翻不完。事后想回答「这次改了哪些文件」「哪几次调用失败了」「上下文占用到哪了」,通常只能向上翻日志,费时且容易漏项。

社区插件 dsh-session-receipt(维护者 york0307,目录分类为 admin-security)在后台把每次已完成的工具调用记成一本账,需要时输出一张结构化小票,不额外消耗模型令牌。本文介绍其定位、记录内容、安装方式与使用边界,事实均来自项目 README 与 package.json(版本 1.0.0,MIT 许可证)。

这是什么

dsh-session-receipt 是面向 DSH 0.2.x 的零配置、零运行时依赖插件:被动订阅 tools/result 事件,在宿主进程内存里聚合单次会话内的调用统计、涉及文件、失败次数与(在可用时)上下文占用,通过 /receipt 命令或 session_receipt 工具按需渲染,不进模型上下文。

与手动翻日志相比,小票把「调用分布、触达文件、错误、上下文」收在一处;与跨会话汇总不同,本插件刻意只服务当前会话,避免误导。

核心功能

下面是小票能呈现、且文档明确说明的数据来源。

能力 来源 说明
调用次数与工具分布 tools/result 事件 全量统计,不含插件加载前的历史
碰过的文件 写文件类工具参数中的 path 只认 write / edit 一类工具
失败次数 工具结果的 isError 并标出失败最多的工具名
上下文占用 tokenMeter.contextPressure 服务不存在时该行省略

小票示例形态(内容摘自 README,便于对照字段;实际工具名以你环境中的 DSH 为准):

### 本次会话小票

**调用 14 次** · 失败 1 次 · 跨度 23 分钟

| 工具 | 次数 |
| --- | --- |
| bash | 6 |
| read | 4 |
| edit | 3 |
| grep | 1 |

**碰过的文件 2 个**

- src/index.ts — edit
- README.md — write

**上下文** 82.0k / 131k · 63%

> 1 次调用返回错误:bash ×1

安装与启用

官方推荐通过 profile 安装插件包名,装完后需重启 DSH 生效。

dsh plugin --profile <你的 profile> add dsh-session-receipt

卸载:

dsh plugin --profile <你的 profile> remove dsh-session-receipt

从源码目录或 tarball 安装时:

dsh plugin --profile <你的 profile> add ./dsh-session-receipt-1.0.0.tgz

兼容性:engines.dsh 为 >=0.2.0 <0.3.0,README 写明在 0.2.2-rc.1 上实测安装与加载通过;其它 0.2.x 为声明兼容。Node 需 >=22。插件无配置项,装不上时无需排查配置文件。

典型用法

两种触发方式,文档说明均不花费模型令牌。

  1. 在会话中输入 /receipt:结果由 UI 直接展示,不进入模型上下文。
  2. 用自然语言问「这个会话都干了什么」:模型可调用 session_receipt 工具,取与小票相同的数据。

每安装一次插件,会为每个会话独立记账;切换会话看到的是各自账本。长期运行下,每个会话最多保留 50 份账本,用于控制内存。

隐私、安全与适用注意

README 将下列行为列为可在源码中核对的设计承诺,适合归类在 admin-security 场景下做会话侧的可观测与复盘:

  • 不联网:无网络调用与遥测。
  • 不写盘:账本仅在宿主进程内存,卸载即消失。
  • 不拦截:只观测已完成的 tools/result,不修改参数或结果。
  • 不读文件:路径来自工具参数,不读取文件内容。
  • 零运行时依赖:不 import 宿主包,安装时不拉取、不执行构建脚本。

安装前仍建议自行审阅 GitHub 仓库 源码与 MIT 许可证;插件以当前 DSH 进程权限运行,权限边界与宿主一致。

已知边界(摘自文档):

  • 只统计插件加载之后的调用,无法追溯更早的调用。
  • 文件清单不解析 shell 命令里隐式写入(例如 sed -i)。
  • 上下文数值来自 tokenMeter,供参考,不是计费口径。

结尾

dsh-session-receipt 用被动记账把单次会话里的工具活动收成一张小票,适合长对话复盘、排错与粗略审计。零配置即可使用,代价是只覆盖安装后的调用、且文件列表依赖工具参数。

  • 社区目录页:https://www.skillhub.cn/plugins/york0307/dsh-session-receipt
  • 源码与说明:https://github.com/york0307/dsh-session-receipt
羽毛球分组比赛记分
小程序二维码

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

小夜