前言¶
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