按真实 token 预算裁剪摘要请求并自动缩小重试
30.2/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/warter666/dsh-compaction-fit.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 压缩中间件:按真实 token 裁剪提示词,提示词过长时先压缩再重试,并修复 pi-ai 静默溢出误报。
README
由 DeepSeek 最新模型翻译生成dsh-compaction-fit
让 DSH 的上下文压缩在本地 OpenAI 兼容网关上真正能跑完:摘要前按真实 token 预算裁剪、被上游拒绝时缩小预算重试,并修掉 pi-ai 把「已经完整到达的回答」误判成上下文溢出。
它解决的两个问题
1. 摘要请求超出上游真实限制。 dsh-compaction-basic 把整段被压缩历史塞进摘要请求,既不裁剪也不重试;harness 的 token meter 又按 4 字符/token 估算,中文和 JSON 会被低估 3–4 倍。自建反代(Qoder / WorkBuddy / AutoClaw 等)实际窗口和 adapter 声明值经常对不上,摘要请求就这样被顶回去,整个压缩失败,原始报错浮到用户面前。
2. pi-ai 的静默溢出误判。 当响应以 stop 结束、且 input + cacheRead > contextWindow(adapter 声明的窗口)时,pi-ai 不看内容是否已经到齐,直接伪造一条 pi-ai detected context overflow for model "..."。压缩摘要总是以 stop 结束,于是每一次成功的摘要都被丢弃;普通对话的最终文本回答同样会被毁掉。
展开完整文档(README 剩余 1 节)
dsh-compaction-fit
让 DSH 的上下文压缩在本地 OpenAI 兼容网关上真正能跑完:摘要前按真实 token 预算裁剪、被上游拒绝时缩小预算重试,并修掉 pi-ai 把「已经完整到达的回答」误判成上下文溢出。
它解决的两个问题
1. 摘要请求超出上游真实限制。 dsh-compaction-basic 把整段被压缩历史塞进摘要请求,既不裁剪也不重试;harness 的 token meter 又按 4 字符/token 估算,中文和 JSON 会被低估 3–4 倍。自建反代(Qoder / WorkBuddy / AutoClaw 等)实际窗口和 adapter 声明值经常对不上,摘要请求就这样被顶回去,整个压缩失败,原始报错浮到用户面前。
2. pi-ai 的静默溢出误判。 当响应以 stop 结束、且 input + cacheRead > contextWindow(adapter 声明的窗口)时,pi-ai 不看内容是否已经到齐,直接伪造一条 pi-ai detected context overflow for model "..."。压缩摘要总是以 stop 结束,于是每一次成功的摘要都被丢弃;普通对话的最终文本回答同样会被毁掉。
它做什么
- 摘要前裁剪:用 CJK 感知的估算器衡量 purpose: 'compaction' 请求;超预算时先按字符上限截断超长工具结果、assistant 文本、reasoning 和工具参数,仍不够再按「工具调用 + 结果」整组省略中间历史,插入一条省略说明。system、首组(通常是上一个 checkpoint)和最近若干组始终保留。
- 缩小重试:上游真的拒绝(CONTEXT_WINDOW_EXCEEDED 或 prompt too long 一类错误,且尚未产出任何内容)时,按 shrinkRatio 几何缩小预算重发,最多 maxRetries 次。已经流出的内容不会被撤回重试。
- 纠正伪造溢出:只在上游诊断是 pi-ai 的伪造措辞、没有 status/requestId、且流里已经有内容时,把 finish 改回 stop 并保留回答。真实上游拒绝没有内容、消息也是上游原文,不会被吞掉。
插件只挂在 llm/stream 上,不修改 harness、不修改 app.asar、不改会话日志;被省略的原文仍完整保存在 session log 里。
安装
在市场(Discover)里搜 dsh-compaction-fit 点安装,或:
dsh plugin --profile web add dsh-compaction-fit
package.json 声明了 dsh.bundle.patch,安装时 cordis.patch.yml 会作为 bundle 层自动并入,无需手工编辑 profile 的 patch。装完重启 DSH(市场里的热安装不需要)。
要求:Node ^22.19.0 || >=24.0.0,DSH 0.2.1-rc.2(cordis ~4.0.5)已实测;其他 0.2.x 版本请以 llm/stream 的 chunk 形状为准。
配置
默认值(随包 patch):
| 键 | 默认 | 说明 |
| trim | true | 对 purpose: 'compaction' 请求做预算裁剪 |
| suppressFabricatedOverflow | true | 纠正 pi-ai 伪造的溢出诊断 |
| suppressScope | all | all 覆盖普通请求;compaction 只覆盖摘要 |
| retryOnPromptTooLong | true | 真拒绝时缩小重试 |
| maxRetries | 2 | 最多重试次数 |
| shrinkRatio | 0.5 | 每次重试把预算乘以该系数 |
| contextRatio | 0.9 | 未 pin 时,预算 = 窗口 × 该系数 − 输出预留 − 安全余量 |
| safetyTokens | 8192 | 安全余量 |
| maxOutputReserveTokens | 32768 | 输出预留上限 |
| minBudgetTokens / maxBudgetTokens | 16000 / 1000000 | 预算夹取范围 |
| minRetryBudgetTokens | 4000 | 重试预算下限 |
| keepHeadGroups | 2 | 省略中间段时额外保留的开头组数 |
| budgets | 空 | provider/model → prompt token 预算,显式覆盖声明窗口 |
未 pin 的模型用 max(声明 contextWindow, 本进程观察到的最大成功 prompt) 作为容量,再套上面的公式。观察值来自正常完成的 usage 分片,进程重启后从声明窗口重新开始——所以如果你的网关实际窗口远大于声明值,建议直接 pin:
插件作为 bundle 安装后,在你自己的 cordis.patch.yml 里按 id 追加覆盖层即可(同一 id 的后层配置覆盖前层):
- id: compaction-fit
config:
budgets:
"qoder/deepseek-flash": 650000
pin 的值应来自该网关实际接受过的 prompt 大小;写大了会被真实拒绝,然后自动缩半重试。
行为细节
- 消息按组处理:assistant 的 tool-call 与紧随其后的 tool 结果是一组,不会被拆开;省略说明只插在组边界。
- 超长工具参数替换为合法 JSON 的 {"_compaction_fit_truncated":true,"originalChars":N,"preview":"..."},避免上游校验失败。
- 字符上限分 5 轮逐步收紧(最低工具结果 250 字符、assistant 500 字符);仍不够就继续扩大被省略的中间段。
- 观察日志:%TEMP%\dsh-compaction-fit.trace.log(桌面端 info 日志可能被过滤)。启动时写 apply called;第一次命中 compaction 请求时写 intercepting llm/stream,之后是 trimmed ...、suppressed fabricated overflow ... 或 retrying ... after: ...。
- trace 只记录路由、token 估算和错误摘要,不记录消息内容。
已知限制
- 预算用启发式估算,不是上游 tokenizer 的精确值;safetyTokens 和 contextRatio 就是为此留的余量。
- 中间历史被省略后,本次摘要不会包含那部分细节;原始事件仍在 session log,但不会回到模型上下文。对已经有 checkpoint 覆盖早期内容的会话,这是代价最小的恢复方式。
- 不处理图片 offload(交给 dsh-compaction-image-offload),也不拆分单个不可分单元(超大工具结果的剩余部分)。
- 只对 purpose: 'compaction' 做裁剪与重试;伪造溢出纠正默认覆盖所有请求,因为同一条误判同样会毁掉普通回答。
开发
node --test test/guard.test.mjs
13 个测试覆盖 CJK 估算、组级裁剪与工具配对、伪造溢出纠正、真实溢出后的缩小重试、有内容时不重试,以及 suppressScope: compaction 不拦截普通请求。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
warter666/dsh-compaction-fit
按真实 token 预算裁剪摘要请求并自动缩小重试
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 20,482已汉化DeepSeek 客户端
73.1
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,270已汉化DSH
70.8
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。