DSH(DeepSeek Harness)從不主動向模型反饋當前的上下文 token 佔用情況。模型只能憑對話長度進行估算,導致在真實佔用僅 17% 時就誤判“上下文見底”,並在長會話中反覆出現。更嚴重的是,這種錯誤判斷會隨着壓縮摘要的生成而“存活”下來,被當作既定背景反覆注入,無法被糾正。
本插件通過實測佔用回填和壓縮指令補規則,從兩端掐斷這條鏈。它依賴宿主服務 tokenMeter 與 compaction(標準部署的 dsh-base 自帶),僅作爲單一 peer 依賴引入 schemastery,無需構建,MIT 許可證,版本 0.2.0。
核心能力¶
1. 實測佔用回填(默認開啓)¶
插件每輪由宿主的 tokenMeter 實測並回填上下文佔用信息。它會向模型展示已用 tokens、窗口總大小、剩餘 tokens 以及距離自動摺疊點的餘量。
系統會根據壓縮閾值比例自動分檔(ample / moderate / tight / critical),並附帶“餘量還能撐幾步”的估算(基於本會話步進中位數計算)。這一行是“宿主的後臺遙測”,明確告知模型這是唯一權威,不要自行倒計時。
顯示示例:
Context occupancy (host-measured): 300K / 1.00M tokens used (30%).
Automatic compaction fires at 678K (68% of the window).
About 378K tokens of headroom remain before it.
There is still real headroom — keep going.
2. 壓縮指令補規則(默認開啓)¶
在壓縮摘要調用的最後一條消息(purpose: 'compaction')末尾,插件會追加兩條規則。這確保了模型不會將自身關於“上下文快用完了”的陳述寫入摘要,從而避免錯誤判斷跨壓縮存活。
追加的規則示例:
- Never record the assistant's own statements about its remaining context, token budget, or context-window pressure...
- Never record a plan to stop, defer, or hand off work whose only justification was context pressure.
3. 空閒邊界摺疊(可選,默認關閉)¶
宿主的自動壓縮通常由“跨過閾值”觸發,這容易導致模型在臨近閾值時迴避關鍵操作,使讀數長期停在閾值下,無法完成需要連續迭代的任務。
此能力在模型處於 idle 狀態且餘量低於窗口的 5% 時觸發一次摺疊。摺疊後餘量重置,條件不再滿足,從而實現一個週期只折一次,解決任務收斂問題。
安裝¶
通過官方 CLI 安裝:
dsh plugin --profile web add dsh-context-truth
或直接寫入 profile 的 patch 層:
# <DSH home>/profiles/<profile>/cordis.patch.yml
- insert:
- id: context-truth
name: dsh-context-truth
config:
language: zh
宿主要求:
* 需要宿主服務 tokenMeter 與 compaction(標準部署自帶)。
* 需要宿主自帶 schemastery。
* 需要注入項:inject = ['systemPrompt', 'tokenMeter']。
配置¶
| 鍵 | 默認值 | 說明 |
|---|---|---|
enabled |
true |
總開關 |
language |
en |
文案語言 (en / zh) |
order |
100 |
在 runtime-context 中的排序 |
quantumPercent |
5 |
顯示臺階(窗口百分比) |
paceEstimate |
true |
是否把餘量換算成本會話節奏 |
paceSamples |
16 |
節奏取中位數的樣本數 |
paceMargin |
0.25 |
向上換檔需超出該檔的比例 |
thresholdRatio |
0.8 |
自動壓縮點閾值 |
tightAdvice |
none |
tight 檔收尾句(none / inform / stop) |
foldAtIdle |
false |
是否啓用空閒邊界摺疊 |
foldAtIdleMethod |
auto |
摺疊請求通道 (auto / command / service) |
注意事項¶
- 依賴:依賴
@deepseek-ai/schemastery。 - 摺疊方法:
foldAtIdleMethod支持auto、service、command三種模式。 - 無需構建:
lib/index.js同時是源碼和產物。
總結¶
dsh-context-truth 通過提供準確的宿主實測數據並修正壓縮指令,解決了模型在長會話中因誤判上下文狀態而降低工作積極性或無法收斂的問題。適合需要在長對話中保持穩定工作流的項目。