dsh-live-compact:边做边压,保留前缀缓存

前言

在 DeepSeek Harness(DSH)里跑长任务时,对话日志、命令输出和工具返回值会一层层叠在上下文里。上下文越长,下一轮请求的输入 token 越多;若走云端 API,还会影响前缀缓存命中和计费。不少团队的做法是等上下文快满再让模型做一次大摘要,或者手动删减历史。这两种方式要么打断节奏,要么容易误删仍被后续推理依赖的内容。

dsh-live-compact(社区名 tranquillitatis-lab/dsh-live-compact)由 Tranquillitatis-Lab 维护,归类为模型推理相关插件。它在每一轮对话收尾时,在本机检查是否有可安全收短的长输出,能压则压;不额外请求模型。压缩只替换选中的片段,切点之前的正文保持不动,从而尽量保留已建立的前缀缓存。整理前会备份原文,备份失败则保留原内容。

这是什么

插件全称对应 npm 包 dsh-live-compact,当前资料中的版本为 1.1.4,许可证 MIT。README 的一句话定位是:边做边压 Live Compact——Compress the finished turn in place and keep the prefix cache.

它挂在 DSH 的插件体系上运行(engines.dsh 要求 >=0.2.0-rc.2 <0.3.0),依赖 Node ^22.19 || >=24,并与 @deepseek-ai/dsh-compaction 等配套包协同。社区目录页:https://www.skillhub.cn/plugins/Tranquillitatis-Lab/dsh-live-compact;源码与说明:https://github.com/Tranquillitatis-Lab/dsh-live-compact。

核心功能

轮次内就地压缩

每轮结束时插件检查上下文。默认在累计约 2 万 token 后才开始评估是否值得压缩;是否真动刀还取决于本轮读入内容与下一轮预期长度。接近窗口上限时,DSH 仍可走官方大摘要路径,与插件的小切互补。

压缩在本机完成,不经模型重写整段历史。失败工具结果会保留退出码、错误类型和标准错误/标准输出中的关键原因;过长时保留原因与首尾,避免把失败卡片写成「正常完成」。

前缀与记账

1.1.0 起把「最新一张卡片」当作切点地板,避免切点走到已有卡片左侧导致前缀缓存被打掉。一次收尾可连切多刀;rewrite 统计改为一次收尾只记一笔(第一刀之后的前缀减去后续几刀省下的),明细落在 shadow 目录的 spine-cuts.jsonl(仅序号、token、切点,不含消息原文)。

备份与安全

替换前备份选中片段。Windows 上对备份目录使用固定 PowerShell 流程写 DACL,仅允许当前用户、SYSTEM、Administrators 完全控制;权限失败则本进程后续备份熔断,压缩仍可进行。Unix 侧为目录 0700、文件 0600。插件以当前 DSH 进程权限读写备份与影子文件,安装前宜自行查看源码与 LICENSE。

可选与配置

平常默认参数即可。实验性模型摘要模式 SPINE_THUNDER 默认关闭,本地或内网模型建议保持关闭;试用时设为 1。常用压缩参数可在 DSH 插件设置中修改,并保留环境变量用法。云端大压缩三项可通过 SPINE_THRESHOLD_RATIO、SPINE_HEADROOM_TOKENS、SPINE_RETAIN_TOKENS 等环境变量覆盖(云端默认仍为 0.8、65536、8192);也可改 cordis.patch.yml 中对应字段。

安装与启用

下面命令来自项目 README,请按你使用的 DSH profile 择一执行。

headless:

dsh plugin --profile headless add dsh-live-compact@1.1.4

网页端:

dsh plugin --profile web add dsh-live-compact@1.1.4

若只想在本机查看 CLI 版本:

npm install -g dsh-live-compact
dsh-live-compact --version

安装后无需单独改配置即可参与轮次收尾压缩;要调阈值或实验模式再改插件设置或环境变量。

典型用法与如何看效果

云端 API(DeepSeek、GLM 等)

按上一节安装插件后正常完成任务。README 建议先看答案是否正确,再结合缓存命中、未命中输入 token 与实际费用评估。命中率百分比不是费用本身;输入变少时要连同 token 数一起比较。

资料中的 1.1.1 测评示例(DS V4.1 Flash,10 组 31 轮填日志):填日志 230/230;首步缓存约 98.64%;spine-cuts.jsonl 合计压缩节省 65 180 token;任务墙钟 36 分 18 秒。图中「含切割轮次墙钟」含模型、工具与网络等待,小切本身为毫秒级。

本机或内网模型

同样用上述 dsh plugin add 命令。优先看答案是否正确、当前上下文是否下降、实际少掉多少 token。界面显示「上下文 2 万多」表示仍保留的内容量,并不等价于「未压缩」。本地侧重上下文与复用,不设云端那套固定命中率门槛;同一任务前后可对比复用量与预填充耗时。

可用 dsh-live-compact stats 查看运行统计(含 rewrite 等字段)。

适用场景与注意

适合:长时间编码、查库、读大文件的 DSH 会话;既用云端 API 又在意前缀缓存与输入 token,或用本地模型且上下文经常顶到窗口。

注意:

  1. 插件与 DSH 同进程权限运行,会写备份与 shadow 元数据;共享备份目录、多会话并发时需遵守 README 中的目录独占与 ACL 规则。
  2. 默认 2 万 token 起才检查压缩,短会话可能全程不触发小切,属预期行为。
  3. 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标、fork 等以 GitHub 公开页为准(资料线索:约 161 stars、12 forks)。
  4. 维护方在 README 中提供离线门禁 npm run test:gate;连模型长测为 npm run test:live-gate,供贡献者与发版验证,终端用户一般只需通过 DSH 安装启用。

结尾

dsh-live-compact 把「收短已完成轮次里的长输出」做成每轮收尾的本地步骤,在尽量不动前缀的前提下控制上下文增长。若你在 DSH 长会话里被日志和工具输出撑满窗口,可按 README 版本安装试用,并用题目正确性、token 与缓存指标对照评估。

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

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

Xiaoye