前言¶
DeepSeek Harness 的上下文压缩功能可以防止对话历史超出模型上下文窗口,但默认配置需要编辑 YAML 文件,操作不够直观。deepseek-harness-compaction-ui 是一款可视化配置插件,它将原本需要编辑的配置项封装在 Web 设置页面中,支持百分比和绝对 Tokens 两种模式,方便调整自动压缩阈值和近期内容保留量。
核心功能¶
- 可视化配置:在“设置 → 插件 → 插件配置”中管理上下文压缩,替代手动编辑 YAML。
- 双模式支持:
- 触发阈值:支持按固定 Token 数或按当前上下文窗口的百分比触发压缩。
- 近期内容保留量:支持按固定 Token 数或按当前上下文窗口的百分比保留。
- 自动换算:在 Tokens 和百分比模式间切换时,自动计算并显示等效值。
- 热更新:保存配置后无需重新创建会话,策略立即生效。
- 运行时监控:在输入框旁显示压缩阈值进度圆环,悬停可查看当前上下文用量、自动压缩阈值及占用比例。达到阈值时圆环变红。
- 独立策略:支持为不同的 provider 和 model 设置独立的压缩策略。
安装与启用¶
使用以下命令将插件安装到 DSH 的 Web profile:
npx @deepseek-ai/dsh plugin --profile web add deepseek-harness-compaction-ui
安装完成后,在 Web 界面打开“设置 → 插件 → 插件配置 → 上下文压缩”即可使用。
典型用法¶
进入插件配置页面后,根据需要选择“Tokens 模式”或“百分比模式”。
- Tokens 模式:直接设定触发和保留的绝对 Token 数。百分比模式会同时显示按当前上下文窗口换算的近似 Token 数。
- 百分比模式:基于模型上下文窗口设定比例。
- 配置逻辑:设置的“保留近期对话”量必须小于“触发阈值”,否则无法保存。
默认策略如下:
| 设置项 | 默认值 |
|---|---|
| 自动压缩 | 开启 |
| 触发阈值 | 256,000 Tokens |
| 保留近期对话 | 64,000 Tokens |
| 上下文窗口 | 1,000,000 Tokens |
实现边界¶
本插件并非独立的压缩引擎,它不处理压缩范围选择、工具调用配对、摘要生成、消息替换、持久化事件、取消和上下文溢出恢复等逻辑。其核心职责是:
- 展示和保存可视化设置。
- 将绝对值换算为官方引擎使用的
thresholdRatio。 - 将百分比策略直接传给官方引擎。
- 校验配置并在运行时热更新策略。
注意事项¶
上下文压缩主要用于控制历史消息的增长,不能解决所有容量问题。以下场景仍可能导致溢出或错误:
- 单条消息或工具结果本身超过预算。
- System prompt 与工具 Schema 已接近上下文上限。
- 摘要模型持续失败或外部服务不可用。
- 多轮摘要导致的信息损耗。
此外,关键任务状态应写入仓库文件或其他持久化存储,不应仅依赖对话历史进行保存。
高级配置¶
通常不需要手动编辑 YAML。若需为自定义模型设置独立窗口或策略,可在 profile 的 cordis.patch.yml 中覆盖插件配置。
- id: compaction-absolute-tokens
config:
thresholdMode: ratio
thresholdRatio: 0.8
retainMode: ratio
retainRatio: 0.16
thresholdTokens: 256000
retainTokens: 64000
contextWindowTokens: 1000000
maxTokens: 8192
compactionRetries: 1
maxOverflowRetries: 1
auto: true
targets:
- provider: deepseek-official
model: deepseek-v4-flash
- provider: deepseek-official
model: deepseek-v4-pro