前言¶
DeepSeek Harness (DSH) 的上下文压缩机制用于处理长会话,将早期对话压缩为 checkpoint 以节省 token。官方默认的后端是 dsh-compaction-basic,其摘要提示词为英文通用模板,存在两个主要问题:一是容易丢失精确值(如版本号、文件路径、命令串、错误串),这对量化或编程 Agent 是致命的;二是强制英文输出,导致中文会话阅读割裂。
dsh-compaction-pro 是一个高保真、双语、递归的上下文压缩后端插件。它只重写 summarize() 这一核心钩子,其余压力/保留/token 计量策略完全继承官方实现,作为 dsh-compaction-basic 的升级替换方案。
安装与启用¶
通过官方命令行工具安装:
dsh plugin --profile web add dsh-compaction-pro
安装后,需要在配置文件中注册并禁用内置后端,否则会导致服务冲突。
- 打开配置文件
~/.dsh/profiles/web/cordis.patch.yml。 - 添加
compaction-pro插件定义。 - 显式禁用
compaction-basic。
示例配置如下:
# 1) 禁用内置后端,防止冲突
- id: compaction-basic
disabled: true
# 2) 注册 dsh-compaction-pro
- id: compaction-pro
name: 'C:/Users/<you>/dsh-plugins/dsh-compaction-pro/src/index.ts'
config:
faithful: true
recursive: true
summaryLanguage: auto
thresholdRatio: 0.8
retainRatio: 0.16
maxTokens: 8192
核心功能¶
dsh-compaction-pro 的核心能力集中在“摘要质量”的提升上:
- 高保真:强制保留精确数值、路径、命令、标识符,绝不改写。
- 双语支持:摘要语言跟随会话语言(
auto模式),支持中文输出。 - 递归分块:对于大段内容,先分块压缩再合并,避免因
maxTokens限制导致的信息截断。 - 决策还原:不仅保留关键决策,还包含决策理由及被否决的替代方案。
- 工具结果保留:单列“关键工具输出”段,保留返回结构、重要返回值或文件片段。
- 自定义指令:通过
customInstruction参数可整段替换内置摘要提示词。
配置参数¶
插件通过 YAML 配置文件控制行为。主要参数包括:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
faithful |
boolean | true |
开启高保真模式,保留精确值。 |
summaryLanguage |
string | 'auto' |
摘要语言,支持 'en'、'zh' 或 'auto'(跟随会话)。 |
recursive |
boolean | true |
开启递归分块,处理大段内容。 |
customInstruction |
string | — | 自定义摘要提示词,完全覆盖默认逻辑。 |
thresholdRatio |
number | 0.8 |
触发压缩的上下文窗口比例。 |
retainRatio |
number | 0.16 |
保留近期尾部的上下文比例。 |
maxTokens |
number | 8192 |
摘要生成的 token 上限。 |
summarizationProvider / summarizationModel |
string | — | 指定摘要使用的模型,留空则复用会话路由模型。 |
注意事项¶
- 服务冲突:本插件与内置的
dsh-compaction-basic共享同一个ctx.compaction服务接口,不能同时启用。必须显式在配置文件中禁用compaction-basic。 - 早期开发阶段:插件处于
dsh v0.1.0-rc.6开发阶段,上游 API 可能存在破坏性变更,建议关注版本更新。 - 类型定义:由于官方未导出部分内部类型,本插件的类型定义镜像了官方内部类型,若上游契约变更,插件可能失效或崩溃。
总结¶
dsh-compaction-pro 通过改进摘要提示词,解决了 DSH 默认压缩后丢失精确值和语言割裂的问题。它通过继承官方策略,实现了“压得动”且“压不歪”的效果。
- 插件主页:https://github.com/helibeiqi/dsh-compaction-pro
- 目录页:https://www.skillhub.cn/plugins/helibeiqi/dsh-compaction-pro