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

运行时性能补丁 ChenXu233/dsh-perf-patch

DeepSeek Harness
ChenXu23311 天前有提交已提供中文文档扫描:未发现敏感能力

抑制工具变更风暴并缓存结构,消除界面卡顿

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

给 DeepSeek Harness(dsh-ops / dsh-mcp-connector)的运行时性能补丁,等上游修复落地前先用着

README

由 DeepSeek 最新模型翻译生成
dsh-perf-patch DeepSeek Harness(DSH) 的运行时性能补丁。第三方插件把宿主拖慢到 O(N) 时用得上。node_modules 里一个文件都不改:补丁在加载时包装宿主服务,每个补丁都失败安全——只要有一点不确定,就退回原来的代码路径,不改变行为。 在 DSH Desktop 0.2.1-rc.2(Electron 44 / Node 24 / Windows 11)上构建并实测,环境里装了 dsh-ops 和 dsh-mcp-connector。 修复了什么 1. 智能体挂载引发的 tools/change 风暴 挂载一个智能体会注册约 161 个工具。每次注册都触发 tools/change,每个监听器(discovery reconcile、PTC reconcile、MCP governance)都会重放自己那套 O(tools) 的完整工作。所以一次 agents.create 会发出几百条通知,每个监听器都要重跑几百次。 修复: agents.create / agents.resume 运行期间,抑制 tools.layers.onChange;最外层调用返回时,同步发出一次通知。 抑制加同步刷新是刻意为之。
展开完整文档(README 剩余 1 节)
dsh-perf-patch

DeepSeek Harness(DSH) 的运行时性能补丁。第三方插件把宿主拖慢到 O(N) 时用得上。node_modules 里一个文件都不改:补丁在加载时包装宿主服务,每个补丁都失败安全——只要有一点不确定,就退回原来的代码路径,不改变行为。

在 DSH Desktop 0.2.1-rc.2(Electron 44 / Node 24 / Windows 11)上构建并实测,环境里装了 dsh-ops 和 dsh-mcp-connector。

修复了什么

1. 智能体挂载引发的 tools/change 风暴

挂载一个智能体会注册约 161 个工具。每次注册都触发 tools/change,每个监听器(discovery reconcile、PTC reconcile、MCP governance)都会重放自己那套 O(tools) 的完整工作。所以一次 agents.create 会发出几百条通知,每个监听器都要重跑几百次。

修复: agents.create / agents.resume 运行期间,抑制 tools.layers.onChange;最外层调用返回时,同步发出一次通知。

抑制加同步刷新是刻意为之。用 queueMicrotask 刷新会饿死事件循环(监听器排入的微任务比循环排出的多),实测会冻住 UI;那个版本已移除,不随包发布。

2. tools.schemas() 每次读取都深拷贝

schemas(scope) 克隆每个工具的 JSON Schema;schemaOf(def, true) 克隆单个。两者都只是工具 revision / definition 的纯函数,监听器却在循环里反复调用。

修复: 按工具 revision 缓存 schemas(scope)(WeakMap 以 scope 为键,tools/change 时失效),按 definition + 参数身份缓存 schemaOf(definition, true)。返回的对象在调用方之间共享,请当作只读。

3. dsh-ops 用完整提示词组装回答一个布尔问题

dsh-ops/lib/presentation.js 判断「这个智能体是否走 PTC presentation」时,调用 systemPrompt.assemble({scope, signal}),然后只读一样东西:

assembly.sections.some(s => s.name === 'tools:ptc-only' && s.text.trim() !== '')

assemble() 要渲染约 36 个 section,还要 structuredClone 每个工具 schema(实测约 250–310 ms)。dsh-ops 每个活跃智能体、每次 reconcile 都要做 6 次。

修复: 包装 systemPrompt.assemble。当且仅当这次调用是上述探测之一时,用同样的层拼出最小 assembly 返回:

{ sections: [{ name: 'tools:ptc-only', text }], contexts: [], tools: [] }

探测识别用 dsh-ops 自己的标记(isPresentationProbe,通过模块缓存拿到的 WeakSet);拿不到这个导入时,退回「调用栈里含 dsh-ops/lib/presentation.js」。其他所有调用方——包括 ptc/index.js 和 discovery/index.js 里真正的提示词组装——都原样放行。

section 文本每次调用都重新计算。缓存试过,已回退:控制输入一旦过期,reconcile 就变成永远不收敛的不动点,把宿主冻住。
在 3 个智能体的实例上实测:每次探测 254–312 ms → 0 ms(每轮 reconcile 扫描约 4.9 s),3 个智能体的 PTC 决策逐字节一致。

安装

cd ~/.dsh/profiles/desktop
npm install ChenXu233/dsh-perf-patch

然后在配置档 package.json 的 dsh.profile.bundles 数组里列出 "dsh-perf-patch"。这个包带有 dsh.bundle.patch → cordis.patch.yml,由它插入 loader 条目。只把名字加进 bundles 还不够 —— 没有补丁层,插件永远不会被加载。

从 checkout 安装:把本仓库克隆到 <profile>/node_modules/dsh-perf-patch,同样把名字加进 bundles。

开关

| 变量 | 作用 |
| DSH_PERF_PATCH=0 | 加载时禁用全部三个补丁。 |
| DSH_PERF_PATCH_VERIFY=1 | 探测短路还会计算完整装配并做比对。一旦发现不一致,就记录错误,并在本会话内永久禁用短路。 |

运行时计数器:

globalThis.__dshPerfPatchProbe // { hits, bypass, mismatches, enabled }

hits = 走短路应答的探测次数,bypass = 转到真实 assemble 的调用次数。如果 hits 一直是 0,说明检测没匹配上,插件等于没生效。

预期行为

* 上游修复落地后,本插件会自动失效:schema 缓存按 revision 做键(无论如何都正确),而 dsh-ops 不再匹配时,探测短路会自动退出。
* 批量门控是唯一的行为变化:监听器在每次 mount 时触发一次,而不是每个工具触发一次。这正是目的所在,但如果有插件依赖 mount 期间每一次中间 tools/change,现在只会看到一次。
* 不要修改 schemas() / schemaOf() 返回的对象。

相关上游 issue

* dsh-ops #333 —— discovery reconcile 为每个智能体重算 presentation
* dsh-ops #369 —— 258 个工具时 tools.schemas() 深拷贝,线性变慢
* dsh-mcp-connector #178 —— governance reconcile 开销

如果这个插件引发了问题:设置 DSH_PERF_PATCH=0,确认问题消失,然后带上数据开 issue。

许可证

MIT
预览分享卡片长什么样 ↓ChenXu233/dsh-perf-patch
分享 · DeepSeek Harness Hub
ChenXu233/dsh-perf-patch

抑制工具变更风暴并缓存结构,消除界面卡顿

这是你的仓库?认领条目

回到顶部