DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-compaction-threshold

S

dsh-compaction-threshold

Manifest valid

DSH 插件:在插件设置卡里调会话自动压缩的触发阈值与保留比例,保存即时写进 agent preset 隔离的压缩引擎

UI (client)hasBundlePatchMachine translated

dsh-compaction-threshold

在 插件 → dsh-compaction-threshold 的配置卡里调 DSH 的会话压缩阈值,保存后即时生效,不需要重启。

设置项默认范围说明
触发阈值80%17–90自动压缩在已路由模型上下文窗口的百分之多少处触发
保留近期对话16%1–89压缩时逐字保留的最近对话比例,必须小于触发阈值
自动压缩开—关闭后不再自动压缩,手动 /compact 仍可用

例:窗口 1,000,000 的模型,触发阈值 80% → 800,000 tokens 处压缩,逐字保留 160,000 tokens。

为什么不能只改 profile 配置

DSH 内核本来就带压缩(@deepseek-ai/dsh-compaction-basic,默认 thresholdRatio = 0.8 / retainRatio = 0.16),但在 web / desktop 装配下改不到:

  • 组合里进程级那一行 compaction-basic 是被禁用的;
  • 每个 agent preset 在自己的隔离 realm 里各挂一个 BasicCompactionEngine (presets/cordis/agent.cordis.yml 的 compaction 组,isolate: { compaction: true });
  • 往 ~/.dsh/profiles/<name>/cordis.patch.yml 写同 id 行不落到会话实际用的那个引擎。

实现要点(内核 0.1.5-rc.2 实测)

  1. 取得引擎:ctx.get('agentPresets').serviceFor(agent, 'compaction') → 返回该会话所在 preset 隔离 realm 内的 BasicCompactionEngine。
  2. 改值的正确姿势是「替换整个 config 对象」,不能原位赋值:
    • Object.isFrozen(engine.config) === true,而 config 属性本身 writable: true;
    • 原位赋值在 ESM 严格模式下抛 TypeError: Cannot assign to read only property 'thresholdRatio', 被 try/catch 吞掉就等于静默什么都没做(这点极易踩坑);
    • 引擎每次决策都重新读 this.config,所以整体替换即热更新。实测替换后 45 秒回读仍是新值。
  3. 枚举存活会话用 ctx.get('agents').list(): sessionPersistence.list() 的条目形状是 { header, revision, sizeBytes }, 会话 id 在 entry.header.id 里、顶层没有 id;照顶层取会永远扫到 0 个会话。
  4. 两条落地路径:
    • 保存设置时立即扫描存活会话写入(实测 1.5 秒内引擎即为新值);
    • 每个 step 边界 ctx.on('agent/pre-step', …, { prepend: true }) 再兜底同步一次。

不改压缩算法、不碰会话日志:摘要生成、消息替换、checkpoint、持久化、溢出恢复 全部仍是官方 compaction-basic 负责。设置值持久化在设置存储(命名空间 dsh-compaction-threshold),进程重启后由 step 边界重新应用。

安装(本机 DSH Desktop)

Desktop 独占 profile 装配,dsh plugin add 在本机不可用。走本地热装配:

npm pack                                  # → dsh-compaction-threshold-0.1.0.tgz
# 解包到 D:\dsh-plugins\dsh-compaction-threshold
# dev_install_package(dir, profile='desktop')

本插件宿主半边只 import @deepseek-ai/schemastery(0.2.0 起 @deepseek-ai/dsh-settings 的 installSettingsSection / settingsNamespace 已删除,导入它们会让宿主起不来)。 link 安装的插件目录没有自己的 node_modules,因此目录内建立一个指回内核同一份的 junction(不是拷贝,避免版本偏移):

node_modules/@deepseek-ai/schemastery → <app>/dsh/node_modules/@deepseek-ai/schemastery

(<app> = 官方 Harness 安装目录,例如 D:\DeepSeek Harness\resources\app。 注意不要指向社区 Desktop 或其它副本:目标一旦被卸载/移动,悬空链接会让插件 failed to import、宿主启动报错。)

装完硬刷新页面(Ctrl+Shift+R),在 插件 → dsh-compaction-threshold 的配置卡里 即可看到本行(0.2.0 起第三方插件的配置卡在插件页,不在「设置 → 通用」)。

⚠️ 改本插件的代码后需要重启 DSH Desktop 才生效:本机 super-injector 的 dev_reload_package 拿不到 loader.internal,只会"重新装配"旧模块; 且 dev_install_package 见到已存在的 loader entry 会跳过 create。重启后由 profile 的 bundles 列表正常装配。

验证

宿主日志(%APPDATA%\DSH Desktop\logs\host\dsh-<日期>.log)里会有:

[dsh-compaction-threshold] audit-><写入路径> {"event":"applied","thresholdRatio":0.62,…}

同时会往下列第一个可写目录追加一行 JSONL 审计(dsh-compaction-threshold.jsonl): $DSH_HOME → ~/.dsh → 本插件目录。

限制

  • 只调阈值类策略;压缩范围选择、摘要质量、按模型覆盖(modelPolicies)、 摘要模型选择不在本插件范围内。
  • 只支持百分比;按绝对 Token 设阈值需要知道每个模型窗口,未做。
  • 若别处设过 retainTokens,本插件会清掉它(与 retainRatio 互斥)。
  • 某个 preset 若没有压缩组(不压缩的 preset),serviceFor 拿不到引擎,本插件对它无效。

许可

MIT。

Comments

Loading…

Similar plugins

dsh-prompt-editor

by AGImentu

DSH 插件:在「更多设置」里查看、修改并保存所有 agent 共用的全局系统提示词,保存后立即生效。

Development & InfrastructureTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Oct 6, 2026

dsh plugin --profile web add dsh-prompt-editor

by yezitotempeace

DSH 超大会话压缩插件:上下文实时监测(窗口×0.85)触发,分块摘要再合并,小会话仍走自带压缩

Sessions & MessagesManifest valid

★ 0

MIT

JavaScript

Oct 20, 2026

dsh plugin --profile web add dsh-big-compact

by tianyaojiudi-prog

DSH(DeepSeek Harness) 插件:把一段可在设置页随时改写的文字,作为全局系统提示词段注入到所有会话,含子代理与工作流内部子代理;文本与开关即时生效,无需重启。

Tools & CapabilitiesManifest valid

★ 9

MIT

JavaScript

Oct 4, 2026

dsh plugin --profile web add dsh-djy-xttsc

by masknull

DSH 插件:在每个会话的系统提示词最顶部注入自定义提示词,并可在 Web 设置页中即时编辑。

Manifest valid

★ 0

MIT

TypeScript

Aug 31, 2026

dsh plugin --profile web add dsh-session-prompt

by baldovinmarques391-design

按路由模型上下文窗口的比例触发自动压缩:比例精确可控,不预留固定余量。

Manifest valid

★ 0

JavaScript

Oct 17, 2026

dsh plugin --profile web add dsh-compact

by Kazusa1085

DSH插件:提供“模型能力”设置页面,用于声明模型输入模态、上下文窗口、输出上限及图像配额,无需手动编辑 `settings.yaml` 文件。

Manifest valid

★ 0

MIT

JavaScript

Sep 9, 2026

dsh plugin --profile web add dsh-awesome-model-setting