DSH Token Saver:在工具边界上压缩上下文占用

前言

在 DeepSeek Harness(DSH)里跑智能体时,上下文往往最先被工具输出撑满:一次读大文件、grep 整段 dump、或冗长的命令日志,可能一次性塞进几万字节,而模型后续多轮对话都会背着这些 token。常见做法是手动截断或换更小的查询,但要在每次工具返回后稳定处理,更适合做成 DSH 插件,挂在工具执行链路上统一裁剪。

下面介绍社区插件 dsh-token-saver(维护者 LoveDoLove,GitHub 仓库 LoveDoLove/dsh-token-saver)。它在 DSH 工具执行边界拦截 oversized 输出:保留头尾、折叠 grep、可选 RTK 压缩与上下文压力处理,并支持在 DSH Web 里配置与查看节省统计。插件目录页:skillhub.cn/plugins/LoveDoLove/dsh-token-saver(社区目录,与 DeepSeek / 幻方无官方从属关系)。

这是什么

DSH Token Saver 是面向 DeepSeek Harness 的可配置 token 效率插件:在工具结果进入会话前缩小读文件、grep、命令日志等体积,并可选地做上下文压力处理、prompt shaping、本地应答与 LLM 摘要压缩。默认只开启相对保守的裁剪与 grep 折叠;RTK、Caveman/Ponytail、本地响应、LLM 摘要等均为独立开关,默认关闭。

工作原理概览

插件挂在 DSH 工具执行管道上,README 中的流程可概括为:

  1. Post-execute hook:工具返回后,对过长结果做头尾保留或折叠(grep 保留匹配行;若启用 RTK,则对支持的命令输出做结构化压缩)。
  2. Context-pressure handling:在 balanced / aggressive 模式下,上下文压力超过阈值时可触发进一步压缩。
  3. LLM-summary compaction:在 balanced / aggressive 下可选,用 LLM 摘要替换大块输出(需配置 callLlm)。
  4. Prompt-cache stability:重排 system prompt 区段,使可缓存区段顺序稳定。

所有路径均为 fail-open:优化出错时保留原始内容;标记为错误的工具结果不会被工具输出过滤器压缩。

核心功能

以下能力与 README 功能表一致;「默认」列含义以仓库文档为准。

能力 说明 默认
Tool-output trimming 过长工具结果保留头部与尾部 除 off 外均开启
Grep folding 折叠大体积 grep,保留有用上下文 除 off 外均开启
Context-pressure handling 跟踪上下文压力,较高模式可触发压缩 conservative 关;balanced/aggressive 开
RTK integration 通过 RTK 压缩支持的命令输出 关
Caveman / Ponytail prompt shaping 可配置的简洁或最小改动任务风格 关
Local responses 对部分探测形态本地应答,不调用 LLM 关
LLM-summary compaction 可选 LLM 摘要压缩 关(仅在 balanced/aggressive 有效)
Prompt-cache stability 稳定 system prompt 区段顺序 除 off 外应用
Web settings DSH Web Settings → Token Saver 配置 可用

模式总开关 mode 取值为 off、conservative、balanced、aggressive:默认 conservative 只做裁剪/折叠并保留 DSH 常规模压缩路径;aggressive 会启用更激进的压缩行为(默认可能替换内置 compaction provider),启用前建议通读配置说明。

安装与启用

官方 Quick install 与 Install 小节给出的命令如下(web profile 以 README 为准):

dsh plugin --profile web add github:LoveDoLove/dsh-token-saver

若安装过程要求批准 build script,按 DSH/pnpm 打印的说明批准后重试,并按本机要求 reload 或重启对应 DSH profile。README 建议以 GitHub 仓库与 Releases 为版本来源;需要固定版本时可安装当前文档记载的 v1.0.4:

dsh plugin --profile web add github:LoveDoLove/dsh-token-saver#v1.0.4

Release v1.0.4 亦提供预构建包 dsh-token-saver-1.0.4.tgz,可在无本地构建环境时作为本地包安装。package.json 标明运行环境为 Node >=22.19.0,许可证为 MIT。

配置示例

除 Web 面板外,可通过 DSH bundle 配置。README 示例:

dsh-token-saver:
  mode: conservative # off | conservative | balanced | aggressive
  rtkEnabled: false
  cavemanLevel: off # off | lite | full | ultra | wenyan-lite | wenyan | wenyan-ultra
  ponytailLevel: off # off | lite | full | ultra
  localResponsesEnabled: false
  localResponses: [quota, prefix, title, suggestion, filepath]
  llmSummaryEnabled: false

常用项(默认值见 README「Key options」表):

  • headBytes / tailBytes:默认各 16384 / 8192;结果长度不超过 headBytes + tailBytes + 256 时不改动。
  • grepMaxMatches / grepContextLines:默认 30 / 2。
  • grepHeadBytes / grepTailBytes:默认 8192 / 4096。
  • pressureThreshold:默认 0.5。
  • includeToolNames / excludeToolNames:限定或排除参与裁剪的工具名。
  • cacheStableSections:需要固定在前的 system prompt 区段 id,利于 prompt cache。

具体行为与已安装的 DSH 版本相关,以当前构建的设置面板与配置默认为准。

统计与可观测性

DSH Web 设置页展示实时节省遥测;累计数据写入 ~/.dsh/token-saver/stats.json(或 $DSH_HOME/token-saver/stats.json),主机重启后仪表盘仍可读到历史合计。指标包括 Saved(压缩减少的字节)、Saved ratio、Calls(产生至少一块裁剪的压缩调用次数)、Blocks(实际被压缩的文本块数)。同一输出可能在 post-execute 与 LLM/stream 路径各压缩一次,故 calls 与 blocks 含义不同;Saved 字节为各次 pass 累加。v1.0.2 起支持持久化累计,更早版本重启后仪表盘会归零。

适用场景与注意

适合谁:长期在 DSH Web profile 下开发智能体、频繁读文件与 grep、上下文经常触顶的团队或个人;希望默认保守、再按需打开 RTK 或 LLM 摘要的场景。

安全与权限:插件与当前 DSH 进程同权限运行;安装前请阅读仓库源码与 MIT 许可证,确认 build script 与依赖符合本机策略。错误类工具输出不会被压缩;可选能力均需显式打开。

生态位置:DSH 强调「一切皆插件」;skillhub.cn 为社区插件目录,不等同于官方应用商店。

结尾

DSH Token Saver 把 token 节省放在工具返回这一层:默认裁剪与 grep 折叠即可减轻上下文压力,更高模式与 RTK、LLM 摘要、prompt shaping 可按需叠加。安装与版本以 README 为准;进一步了解可看目录页 LoveDoLove/dsh-token-saver 与 GitHub LoveDoLove/dsh-token-saver。

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

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

小夜