🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

调用压缩器 zhuzichen362/dsh-call-shrink

DeepSeek Harness
zhuzichen36267 天前有提交已提供中文文档扫描:含敏感能力

把多次模型调用归并为一次,省下冗余开销

28.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zhuzichen362/dsh-call-shrink
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 67 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 读取本地文件
    index.cjs:21
    const body = readFileSync(path.join(__dirname, 'src', 'host.js'), 'utf8');
  • 发起网络请求
    client.js:19
    fetch(hostBase() + '/call-shrink/stats', { cache: 'no-store' })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 归并多次模型调用
  • 节省冗余开销

README

由 DeepSeek 最新模型翻译生成
dsh-call-shrink 把 N 次 LLM 调用压成 1 次 —— DeepSeek Harness(DSH)的极致调用压缩插件。 Listed on dsh-plugin.org · GitHub 一句话:在不改变对话结果的前提下,把「去重、缓存、批量归并」做到调用数维度的极限,直接砍掉冗余 API 调用 —— 省 token、省预算、省时间。 它解决了什么 在 DSH 这类「一个模型回合会同步发起多路独立子任务」的代理环境里,每一次 llm/stream 都是一次真实上游调用。并发会话、平行子代理、标题生成、重复工具流,都会产生大量内容相近甚至完全相同的请求。call-shrink 在 Stream 层拦截这些请求,用三层压缩把它们归并到最少的上游调用: 1. 缓存(Cache) — 相同指纹的请求直接回放,24 小时 TTL、4096 条、落盘持久化。 2. 去重(Dedup) — 飞行中的同指纹请求共享同一个上游结果。 3. 批量归并(Batch-Merge) — 10 秒窗口内把 N 个独立请求拼成 1 次上游调用(条数无上限、不按字符拆批)。 外加两个「极端化」细节: - 标题生成短路:purpose === 'title' 直接返回空,0 次上游调用。
展开完整文档(README 剩余 1 节)
dsh-call-shrink

把 N 次 LLM 调用压成 1 次 —— DeepSeek Harness(DSH)的极致调用压缩插件。

Listed on dsh-plugin.org · GitHub

一句话:在不改变对话结果的前提下,把「去重、缓存、批量归并」做到调用数维度的极限,直接砍掉冗余 API 调用 —— 省 token、省预算、省时间。

它解决了什么

在 DSH 这类「一个模型回合会同步发起多路独立子任务」的代理环境里,每一次 llm/stream 都是一次真实上游调用。并发会话、平行子代理、标题生成、重复工具流,都会产生大量内容相近甚至完全相同的请求。call-shrink 在 Stream 层拦截这些请求,用三层压缩把它们归并到最少的上游调用:

1. 缓存(Cache) — 相同指纹的请求直接回放,24 小时 TTL、4096 条、落盘持久化。
2. 去重(Dedup) — 飞行中的同指纹请求共享同一个上游结果。
3. 批量归并(Batch-Merge) — 10 秒窗口内把 N 个独立请求拼成 1 次上游调用(条数无上限、不按字符拆批)。

外加两个「极端化」细节:

- 标题生成短路:purpose === 'title' 直接返回空,0 次上游调用。
- 提示词注入:向系统提示词挂入一条 API 经济性约束,让模型自己也会把可并行的工具调用一次发全。

特性

| 特性 | 说明 |
| ⚡ 极致归并 | 窗口 10s · 条数无上限 · 不拆批 · 单次输出上限 1 亿 token |
| 🧬 稳定指纹 | 规范化序列化(剔除 sessionId/signal/id/tool_call_id/source),跨会话命中相同工具流 |
| 🎯 协议化合并 | [[TASK n]] / [[ANSWER n]] 分隔 + JSON 应答;解析失败自动降级 STRICT MODE 重试 1 次 |
| 🛡 失败熔断 | 连续 2 次合并失败自动退化为单发,10 秒后复位 |
| 📊 实时面板 | 会话头「调用压缩」开关:今日用量/预算、单发+合并均摊、去重、缓存命中、省下的调用数 |
| 🧾 用量持久化 | 每日预算 500,跨重启记录每日与每会话用量 |
| 🔌 一键开关/重置 | host.call RPC:state / session-stats / set-enabled / reset |

工作原理

ctx.on('llm/stream')
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
title 短路 缓存命中(回放) 指纹去重(飞行中) (0 次上游) (0 次上游) (0 次上游) │ ▼ 剩余请求进入 10 秒归并窗口 │ ▼ N 个请求 → 拼成 1 个上游流(任务分隔协议) │ ┌────────────┴────────────┐ ▼ ▼ 解析成功 解析失败
按 [[ANSWER n]] 拆回 STRICT 重试 → 仍失败
N 路原始流 逐个降级为单独调用 └────────────┬────────────┘ ▼ 全部写入 24h 回放缓存 + 用量统计

合并协议:一次上游调用中,每个待答任务用 [[TASK n START]]…[[TASK n END]] 包住完整对话,模型需在每个 [[ANSWER n START]]…[[ANSWER n END]] 之间输出恰好一个 JSON —— {"kind":"text","text":"…"} 或 {"kind":"tool_calls","tool_calls":[…]} —— 再按序拆回 N 路原始流。

安装(标准 DSH 插件包 · 推荐)

call-shrink 同时打包成符合 DSH Plugin 规范 的标准插件(package.json 声明 dsh.bundle,由 profile boot 自动应用),可被 DSH 内置插件市场 / dsh.market 目录收录:

dsh plugin --profile web add dsh-call-shrink

或未发布 npm 前,从本仓库直接安装:

dsh plugin --profile web add https://github.com/zhuzichen362/dsh-call-shrink

重启 dsh web(桌面端请先把内置 dsh 更新到 0.1.0-rc.6 及以上),会话头会出现「调用压缩」状态点;服务端拦截逻辑在 index.cjs(内部加载 src/host.js),浏览器端在 client.js。

安装(动态 Cordis 插件 · 源码注入)

call-shrink 的原始形态是 DSH 的动态 Cordis 插件(code.host + code.client),源码即 src/host.js 与 src/client.js。

在 DSH 中让代理执行:
- code.host ← src/host.js 全文
- code.client ← src/client.js 全文
- 名称 / 用途(可选附带)

主机侧声明了 inject: ['timer'],并读取 llm、fs、systemPrompt、harness 等服务;服务缺失时安全降级、不影响运行。

调参(src/host.js 顶部「调参区」)

| 参数 | 默认 | 说明 |
| CACHE_TTL_MS | 86400000 | 回放缓存有效期(24 小时) |
| MAX_ENTRIES | 4096 | 缓存条数上限 |
| BATCH_WINDOW_MS | 10000 | 归并收集窗口 |
| MAX_BATCH | Infinity | 单次合并条数上限 |
| MERGE_COOLDOWN_MS | 10000 | 合并连续失败后的熔断时长 |
| MERGE_MAX_CHARS | Infinity | 不再按字符拆批 |
| MERGED_MAX_TOKENS | 100000000 | 单次合并输出上限 |
| DAILY_BUDGET | 500 | 每日预算看板阈值 |

面板指标

- 今日 api/budget:是否超预算(绿 / 黄 / 红)。
- 本对话:steps、API 次数(单发 apiSingle + 合并 apiMerged)、省 steps-api、去重 dedup、缓存命中 cacheHit、参与合并 merged。
- 全局:requests / upstream / dedup / cacheHit / batches(batched) / fallbacks / cacheEntries / restored。

注意

- 批量归并改变了「并发独立请求各自一次调用」的形态,聚合上游输出依赖模型遵守协议;解析失败会自动降级,不会丢答案。
- 上游调用按 1/N 均摊计入参与合并的各会话。
- 缓存与用量写入工作目录的 .dsh-shrink-cache.json / .dsh-shrink-usage.json,已列入 .gitignore。

License

MIT
预览分享卡片长什么样 ↓zhuzichen362/dsh-call-shrink
分享 · DeepSeek Harness Hub
zhuzichen362/dsh-call-shrink

把多次模型调用归并为一次,省下冗余开销

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部