前言¶
DeepSeek 类 agent 在长任务中,80% 以上的 prompt tokens 消耗在两类内容上:一是被一次性读取的大文件(如 1MB 的迁移 SQL),二是被反复搜索并回填的 grep 结果。这导致上下文窗口很快被填满,影响推理质量。
dsh-token-saver 是一个为 DeepSeek Harness (dsh) 设计的 Cordis 插件。由开发者 Shaw529 维护,采用 MIT 许可证。它的核心目标是在不破坏任务效果的前提下,通过挂载扩展点实现激进且无损的 token 节省。
核心功能¶
插件通过三个扩展点实现 token 优化:
- tools/post-execute:进行无损头尾裁剪和 grep 折叠。默认保留头尾部分,中间用 metadata 替换,模型仍能感知内容被截断。
- agent/pre-step:委托 dsh 官方的
ctx.compaction机制,在压力阈值触发时自动进行上下文压缩。 - 可选功能:支持 prompt-cache 段稳定排序,提升缓存命中率。
安装¶
确保已安装 DeepSeek Harness。在 harness home 目录下执行以下命令安装:
dsh plugin --profile web install dsh-token-saver
锁定版本安装:
dsh plugin --profile web install dsh-token-saver@0.1.0
前置条件:需要 Node.js 版本 >= 22.19.0。
配置¶
在 cordis.yml 中添加插件配置。以下是默认配置示例:
- name: 'dsh-token-saver'
config:
mode: balanced
headBytes: 16384
tailBytes: 8192
grepMaxMatches: 30
grepContextLines: 2
grepHeadBytes: 8192
grepTailBytes: 4096
pressureThreshold: 0.5
compactPressureThreshold: 0.5
llmSummaryEnabled: false
llmSummaryMaxInputTokens: 16000
replaceBasicCompaction: false
includeToolNames: []
excludeToolNames: ['interaction.ask_user', 'interaction.confirm']
cacheStableSections: ['agent-identity', 'user-instructions', 'tool-list']
telemetry:
onFold: |
(event) => logger.info({ kind: 'fold', ...event })
onCompact: |
(event) => metrics.histogram('tokens.saved', event.savedTokens, ['engine', event.engine])
关键配置项说明¶
- mode:模式选择器,默认为
conservative。 - headBytes / tailBytes:工具结果保留的头尾字节数。
- llmSummaryEnabled:启用 LLM 摘要引擎(推荐在 balanced 或 aggressive 模式下开启)。
- excludeToolNames:黑名单,防止对某些交互类工具进行截断。
模式与效果¶
插件提供四种模式,通过 mode 字段配置:
| 模式 | 头尾裁剪 | grep 折叠 | 触发 ctx.compaction | 替换 dsh-compaction-basic | LLM-summary |
|---|---|---|---|---|---|
off |
❌ | ❌ | ❌ | ❌ | ❌ |
conservative (默认) |
✅ | ✅ | ❌ | ❌ | 可选 |
balanced |
✅ | ✅ | ✅ | ❌ | 推荐 |
aggressive |
✅ | ✅ | ✅ | ✅ | 推荐 |
保守模式:完全不替换 dsh 原生链路,仅对工具结果做无损头尾折叠,确保任务效果零损失。
在覆盖 8 个真实场景的基准测试中(基于 4 chars/token 规则估算),插件表现如下:
- 保守模式:平均节省约 97.6% 的 tokens。
- 平衡模式:平均节省约 98.5% 的 tokens。
节省率最高的场景是混合会话(12 个工具),原始 tokens 约 200 万,经平衡模式压缩后降至约 3.5 万。
注意事项¶
- 兼容性:保守模式不会修改 dsh 原生链路,适合对稳定性要求极高的场景。
- 运行环境:必须在 Node.js >= 22.19.0 环境下运行。
- 生态背景:DSH 理念是“一切皆插件”,本插件为社区项目,与 DeepSeek 官方无官方从属关系。
结语¶
dsh-token-saver 通过在工具执行后和执行前介入,对工具输出结果进行智能压缩和折叠,能够显著降低长任务的 token 消耗。对于需要处理大文件或大量检索结果的 agent 任务,这是一个值得尝试的优化方案。
项目地址:GitHub