前言¶
在 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 为准)。
核心功能¶
对每个源模式做什么¶
对设置里勾选的每个源模式,插件会:
- 从装载器条目读取源模式的组合(预设声明行里的
config是交给agentPresets.register()的权威来源); - 递归定位
compactiongroup 内的compaction-basic,仅替换其中的thresholdRatio; - 注册新预设并保留
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。
典型用法¶
- 安装并重启
dsh web后,打开 设置 → 压缩阈值。 - 保持
enabled为开启,按需调整thresholdRatio(默认 0.4)与retainRatio(默认 0.16)。 - 在
sourcePresets中勾选需要扩展的模式(默认包含 standard、minimal、ptc、cordis;无压缩栈的源会被跳过)。 - 若希望保存后新会话默认使用压缩副本,保持
adoptDefault为 true;若需保留手选的默认模式,将其设为 false 后再保存。 - 保存后,预设选择器应能见到形如
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