前言¶
在 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。插件无配置项,装不上时无需排查配置文件。
典型用法¶
两种触发方式,文档说明均不花费模型令牌。
- 在会话中输入
/receipt:结果由 UI 直接展示,不进入模型上下文。 - 用自然语言问「这个会话都干了什么」:模型可调用
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