dsh-compact-suite

sessiontested: passnpmMIT

Takes over the compaction threshold on every mounted engine: forces headroomTokens to -1e6 so the ratio is the only term in the trigger, keeps retention below it on every write path, reroutes the compaction call to a chosen model, and adds a panel with a one-click compaction button and a per-session

下载量 / Downloads
2,326
依赖体积 / node_modules
1.08 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-compact-suite

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-compact-suite

给 DSH 的上下文压缩加一个控制面板。

DSH 的上下文快满时,会自动把旧对话压成一小段摘要来腾地方。但什么时候压、用哪个模型压、留多少,这些你平时都管不了 —— 全由 DSH 自己决定。

这个插件就是把这几个开关交回你手里。

它能干什么

  • 一键立即压缩 —— 点一下按钮,马上把旧对话压成摘要,不用等 DSH 决定。
  • 什么时候压,你说了算 —— 拖滑块定触发点。原版没有这个入口。
  • 用哪个模型压,你说了算 —— 摘要交给指定的模型,主模型不用从头读一遍历史。
  • 留多少,你说了算 —— 压完保留多少最近对话,自动或手动。
  • 随时反悔 —— 顶部开关一关,全部还原成 DSH 原样,不用重启。

安装

不用 git,不用 npm,两步。

兼容性:2.9.2 起要求 DSH 0.2.1-rc.1 或更新。旧版 DSH(0.2.0-rc.2)用 2.8.9。
差别只有一条:@deepseek-ai/schemastery 从 peer 依赖改成了真依赖 —— 0.2.1 里它不再被别的包顺带装进 profile,插件在 import 阶段就会失败、整个宿主半不加载(面板显示「无法读取状态」)。

第 1 步:下载安装包

点下面的链接,浏览器会把它存到你的下载文件夹:

dsh-compact-suite-2.9.2.tgz

第 2 步:装进 DSH

打开 DSH 的 设置 → 插件 → 安装,选中刚才下载的那个 .tgz 文件。

装完按 DSH 的提示刷新或重启一次。

以后要更新,去 Releases 页面 下载最新那个 .tgz,装法一样。

从源码安装(开发者)

git clone https://github.com/NoiraBaka/dsh-compact-suite.git
cd dsh-compact-suite
npm pack

然后用上面第 2 步同样的方式装生成的 .tgz。

面板在哪

输入框左边那排工具,点【压缩】。打开是个小面板:

  • 压缩 —— 唯一那个按钮,按保留量压:把触发阈值临时降到保留量下限,下一条消息发出时引擎自己压一次,压完阈值自动还原。按钮变成「已就绪 · 发消息时压」,再点一次是取消。

为什么不是立刻压:引擎的手动入口把保留预算写死成 0(selectCompactableRange(…, 0)),唯一读保留量的路径是自动那条,而它只在 agent/pre-step 上跑。空闲会话没有 step 可挂,所以「立刻 + 守保留量」在公开 API 上表达不出来 —— 这个按钮要的是能表达的那一半。

想要「忽略保留量、压到底」,手打 /compact 就是,面板上不再放第二个按钮。

  • 接管压缩阈值 —— 总开关。关掉 = 一切还原。
  • 触发阈值 —— 滑块。越高,撑得越满才压。不影响「压缩」按钮 —— 那个按钮按自己的下限走。
  • 保留量 —— 决定压完留多少。「压缩」按钮守它;「压到底」和溢出恢复不守。
  • 摘要模型 —— 让哪个模型去做压缩这件事。
  • 压缩记录 —— 本会话每次压缩:压前多少、压后多少、省了多少。

常见疑问

刚压完,"压后"那一栏写的是「计算中」,不是数字?

正常。压缩结束那一刻还没有可信的数字,等你发下一条消息后自动补上。

它不是在后台慢慢算,是在等下一次请求。

为什么原版没有压缩面板?

DSH 自带的压缩是全自动的,不给你留开关。这个插件补上了面板和按钮。

装了这个,会不会把 DSH 改坏?

不会。它只在你开着「接管压缩阈值」时生效;关掉开关、或卸载插件,DSH 恢复原样,不用重启。

开发

npm test

License

MIT

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::6,最后更新 2026-10-17

Links

GitHub · Homepage · npm

Same category