dsh-compact-value:一个设置项把压缩阈值铺到所有 Agent 模式

前言

在 DSH 里,上下文窗口占满到一定比例时会触发自动压缩,阈值由 compaction-basic.thresholdRatio 控制,上游默认是 0.8。这套参数写在每个 Agent 预设自己的 composition 里:标准、创造、极简、ptc 各有一份。内置预设是部署自带的声明,用户不能直接改 composition,若希望「所有模式都在 0.4 触发压缩」,只能手工复制多份 composition 并分别注册——维护成本高,也容易漏改某一档。

下面介绍社区插件 dsh-compact-value(维护者 ycm50):用一张设置卡片统一配置阈值与保留比例,按勾选的内置源模式自动生成带新阈值的副本预设,并可选择保存后把默认 Agent 模式切到优先生成的压缩副本。

这是什么

dsh-compact-value 是 DeepSeek Harness 的 Web 侧插件(当前版本 0.4.0,MIT 许可证)。它不改变内置预设本身,而是读取装载器里源模式的 composition,只改写含 compaction-basic 的那一行的 thresholdRatio(其余字段原样保留,源组合不会被就地修改),再 agentPresets.register() 成新预设,id 形如 <源id>-compact-<阈值>(例如 standard + 0.4 → standard-compact-4,命名不允许小数点)。

参考宿主为 DSH 0.2.0-rc.1,同时通过运行时探测兼容 0.1.5-rc.x 与 0.1.7+ 两代设置模型。仓库与安装标识统一为 dsh-compact-value(与目录线索中的别名不同,以 README 与 package.json 为准)。

核心功能

对每个源模式做什么

对设置里勾选的每个源模式,插件会:

  1. 从装载器条目读取源模式的组合(预设声明行里的 config 是交给 agentPresets.register() 的权威来源);
  2. 递归定位 compaction group 内的 compaction-basic,仅替换其中的 thresholdRatio;
  3. 注册新预设并保留 register() 返回的注销函数;阈值或勾选项变化时重新注册,取消勾选或关闭总开关时通过注销函数回收旧副本。

默认模式与优先级

生成的副本若无人选用意义不大,因此插件可选地在保存后把 新会话默认模式 指向其中一个副本(写 agent-preset-registry 的 volatile selectedDefault)。多个副本同时存在时,优先级为:标准 > 创造 > 极简 > ptc(即 standard > cordis > minimal > ptc;表外自定义源排在四者之后,同档按 id 稳定排序)。带显式阈值的副本会优先于未设置阈值的模式;若不想被改写默认模式,可在卡片里关闭「保存后设为默认模式」(adoptDefault)。

设置项

设置入口在宿主 UI 中对应 设置 → 压缩阈值。可写字段共五个:

字段 默认 说明
enabled true 关闭并保存会回收本插件生成的全部副本
thresholdRatio 0.4 上下文占用达到窗口的这个比例即触发自动压缩;必须 ∈ (0, 1)
retainRatio 0.16 压缩后保留的最近上下文比例;必须小于 thresholdRatio
sourcePresets standard, minimal, ptc, cordis 要扩展哪些模式
adoptDefault true 保存后把默认模式切到生成的压缩模式

不满足 0 < retainRatio < thresholdRatio 时会拒绝对设置的写入。profile(cordis.patch.yml)里与本插件相关的持久写入通常只有 selectedDefault 这一处指针;副本列表、跳过原因、接管前的默认模式等留在插件进程内存,重启后「释放时恢复用户原选择」可能退化为 unset。

明确不做的事

  • 不劫持内置预设 ID;运行中的会话不会因阈值变更而重读 composition(仅新建会话生效)。
  • 极简模式 composition 里没有 compaction-basic 行时会跳过并打日志,不会硬塞压缩栈,因此不会生成 minimal 的压缩副本。
  • 除默认模式指针外,不向 profile 写入插件状态。

安装与启用

在已配置 DSH Web profile 的环境中执行:

dsh plugin --profile web add github:ycm50/dsh-compact-value

安装完成后需要重启 dsh web,新增插件才会加载;然后在 设置 里打开「压缩阈值」卡片。宿主 peerDependencies 对 @deepseek-ai/dsh-* 有 semver 预检,不满足会拒绝安装(incompatible-version);本包已声明支持到 ^0.2.0-rc.1。

典型用法

  1. 安装并重启 dsh web 后,打开 设置 → 压缩阈值。
  2. 保持 enabled 为开启,按需调整 thresholdRatio(默认 0.4)与 retainRatio(默认 0.16)。
  3. 在 sourcePresets 中勾选需要扩展的模式(默认包含 standard、minimal、ptc、cordis;无压缩栈的源会被跳过)。
  4. 若希望保存后新会话默认使用压缩副本,保持 adoptDefault 为 true;若需保留手选的默认模式,将其设为 false 后再保存。
  5. 保存后,预设选择器应能见到形如 standard-compact-4 的新模式(插件会在 roster 变化时补发相关设置事件,一般无需整页刷新)。

卸载或禁用插件时,插件会撤销对 selectedDefault 的接管(写回接管前的值或 unset),避免指针指向已不存在的副本导致新会话解析失败。

适用场景与注意

适合希望在 不手工复制 composition 的前提下,让多个 Agent 预设共享同一套压缩阈值(例如统一从 0.8 降到 0.4)的 DSH Web 用户。也适合需要压缩后保留比例与阈值一并校验、并通过一张卡片管理源模式列表的场景。

使用前请注意:插件以当前 dsh 进程权限 运行,会注册内存中的 Agent 预设并可能修改用户层的默认模式指针;安装前应自行查看 GitHub 仓库 源码与 MIT 许可证。DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-compact-value 把「给每个 Agent 模式单独设 compression 阈值」收成五个设置字段:自动生成 -compact-<阈值> 副本、可选接管默认模式,并在卸载时清理悬空指针。需要进一步了解实现细节与两代宿主差异,可直接阅读仓库 README。

  • 目录页:https://www.skillhub.cn/plugins/ycm50/dsh-compat-val
  • GitHub:https://github.com/ycm50/dsh-compact-value
羽毛球分组比赛记分
小程序二维码

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

Xiaoye