为会话压缩指定摘要模型并配置失败兜底重试
29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/643048695/dsh-compaction-route.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 指定会话压缩摘要模型
- 配置兜底模型
- 失败重试
在 Web 设置页里选 DeepSeek Harness 的会话压缩摘要器,再给它配个兜底模型
README
由 DeepSeek 最新模型翻译生成dsh-compaction-route
License: MIT
Last commit
Stars
在 Web 设置页里选择会话压缩用的摘要模型,并给它配一个兜底模型。
一个 DeepSeek Harness 插件。
为什么需要它
DSH 的压缩引擎只解析一个摘要模型,而且没有任何失败回退。摘要调用被拒时它直接抛错,/compact 显示 "Compaction could not produce a useful summary",然后就没有然后了。
问题在于:回放的历史是按 DSH 固定的 字符数 ÷ 4 估算的,而各个厂商对同一段字节的切分方式不同,输入上限也各自独立。于是你正在聊天的模型装得下的历史,可能你挑的那个摘要模型装不下 —— 整次压缩就这样失败,没有任何东西接住它。
在一个真实的 950k 窗口会话上实测:
| 项 | 值 |
| DSH 对回放的估算 | 743,536 tokens |
| 聊天模型实际读到的 | 744,184 tokens |
| 摘要模型实际需要的 | 超过它的输入上限 → HTTP 400 |
估算器是按聊天模型的分词器校准的(误差 0.1%),所以它报「装得下」,而摘要模型其实已经超了。
展开完整文档(README 剩余 1 节)
dsh-compaction-route License: MIT Last commit Stars 在 Web 设置页里选择会话压缩用的摘要模型,并给它配一个兜底模型。 一个 DeepSeek Harness 插件。 为什么需要它 DSH 的压缩引擎只解析一个摘要模型,而且没有任何失败回退。摘要调用被拒时它直接抛错,/compact 显示 "Compaction could not produce a useful summary",然后就没有然后了。 问题在于:回放的历史是按 DSH 固定的 字符数 ÷ 4 估算的,而各个厂商对同一段字节的切分方式不同,输入上限也各自独立。于是你正在聊天的模型装得下的历史,可能你挑的那个摘要模型装不下 —— 整次压缩就这样失败,没有任何东西接住它。 在一个真实的 950k 窗口会话上实测: | 项 | 值 | | DSH 对回放的估算 | 743,536 tokens | | 聊天模型实际读到的 | 744,184 tokens | | 摘要模型实际需要的 | 超过它的输入上限 → HTTP 400 | 估算器是按聊天模型的分词器校准的(误差 0.1%),所以它报「装得下」,而摘要模型其实已经超了。用同一段内容实测三条路由: | 路由 | 同样字节的 token 数 | | gemini-3.8-flash | 1,027,843 | | opencode-go/deepseek-v4.1-flash | 939,469 | | surplan/deepseek-v4.1-flash | 939,003 | 分词器相差约 10%,而上限是同一个(1,048,576)。所以光「换一个模型」并不够:只有兜底模型的窗口比主模型更大时,才救得回「装不下」这种失败。 你的选择救不了时,设置卡会明确警告。 它做什么 监听 llm/stream 瀑布 —— 每一次模型调用都经过的唯一接缝 —— 并且只对 purpose === "compaction" 的请求生效: 1. 把目标改写成你配置的主模型; 2. 该次尝试以终止性错误 chunk 结束时,在兜底模型上重试同一个请求; 3. 输出第一个成功的尝试,或最后一次尝试的结果。 其余所有请求 —— 正常对话、子代理、会话标题、联网搜索 —— 完全原样通过,不受影响。 安装 Web 界面: 设置 → 插件 → 添加插件,填入: github:643048695/dsh-compaction-route 命令行(普通 profile;desktop profile 由 Electron 应用接管,CLI 会拒绝): dsh plugin --profile add github:643048695/dsh-compaction-route 安装器询问时启用该 bundle 即可。没有构建步骤,插件挂载不需要重启应用。它插入的行 id 是 compaction-route,同时也是设置命名空间。 配置 设置 → 插件 → dsh-compaction-route → 配置。 | 字段 | 含义 | | 启用路由 | 关闭则引擎行为与装之前完全一致。 | | 主模型 | 优先使用的摘要模型。 | | 兜底模型 | 主模型出错后改用的模型。留空表示不用兜底。 | | 推理强度 | 压缩调用的 reasoning effort;留空则跟随服务商默认。 | 两个下拉框都是从你 profile 里实际安装的模型里读出来的 —— 数据来自 llm-pi-ai 设置命名空间,装了哪些就能选哪些 —— 每个选项都显示它的上下文窗口。 全新安装时两个模型都是空的,不会改变任何行为。 不做任何猜测:在你选出主模型之前,压缩行为与之前完全一致。在发布出去的代码里写死某条路由,等于替别人的 profile 猜一个它可能没有的服务商;而只有兜底、没有主模型是没有意义的,所以它不会自作主张开始路由。 每个字段都是 volatile,所以改动对下一次压缩即刻生效,无需重启。 怎么选兜底模型 兜底只有在窗口比主模型更大时才能救回装不下这种失败。两个窗口一样大的路由,只会把同一次拒绝重演一遍。 当兜底窗口 ≤ 主模型窗口时,设置卡会给出警告;两者是同一个模型时也会警告。 工作原理 压缩调用 ──▶ llm/stream 瀑布 │ ├─ purpose 不是 "compaction"? ──▶ 原样通过,不受影响 │ ├─ 主模型 ──成功──▶ 输出它的 chunks │ └──终止性错误──▶ 兜底模型 ──▶ 输出它返回的内容 └─(本插件自己创建的调用永远不会被自己再次拦截) 为什么是重新进入 ctx.llm.stream(),而不是调用 next(newOptions)。 cordis 把一个瀑布的 next 构建为对原始参数数组的闭包: const next = () => (cbs.shift() ?? inner)(...args) 所以 next(modifiedOptions) 会静默忽略传进去的参数,再次分发原来的 options。因此更换 provider/model 必须从链条顶部重新进入 ctx.llm.stream();用一个 WeakSet 标记本插件自己创建的调用对象,避免它拦截自己。 说明与限制 - 只在终止性错误 chunk 上重试。 中间件或调用方抛出的异常会原样上抛,与未装插件时一致 —— 这个接缝不会把它吞掉。 - 取消优先。 已中止的调用绝不重试。 - 只动压缩调用。 判别依据是 purpose,其余任何请求都不会被改道。 - 引擎自己的事件记录的仍是它配置的目标。 compaction/summary 里报告的是引擎的 summarizationProvider / summarizationModel,不是本插件的改写;兜底生效只会出现在本插件的日志行里。想让会话日志与之一致,就把引擎那一行也指向同一个主模型。 - 它不能代替「让历史变小」。 如果回放超过了你拥有的所有窗口,任何兜底都救不了 —— 那是压缩策略的问题,不是路由的问题。 兼容性 支持 @deepseek-ai/dsh 0.1.7-rc.2(已在其上实测),以及同一 node 序列的 0.1.7。 开发 两半都不需要构建步骤。 lib/index.js 宿主半 —— llm/stream 路由 + 设置 schema client/client.js 浏览器半 —— 配置卡片 cordis.patch.yml bundle 补丁:一行,id 为 "compaction-route" 许可证 MIT —— 见 LICENSE。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
643048695/dsh-compaction-route
为会话压缩指定摘要模型并配置失败兜底重试
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,462已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,848已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,246已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 4,717已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,711已汉化DSH
71.1