Skip to main content
N

dsh-compact-suite

noirabaka/dsh-compact-suite

面向本地部署的 DSH 上下文压缩控制面:面板一键立即压缩、摘要改走指定模型(省掉本地卡的全长 prefill)、让触发阈值真正生效、引擎读数对齐卡片、暂停即完整还原。基线为 dsh-compaction-threshold 1.0.3(MIT)。

Install

dsh plugin --profile web add github:noirabaka/dsh-compact-suite

README

dsh-compact-suite

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

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

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

它能干什么

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

安装

不用 git,不用 npm,两步。

第 1 步:下载安装包

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

dsh-compact-suite-2.8.9.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

Related plugins