记住每个模型上次用的推理强度,切回时自动恢复
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add cup113/dsh-effort-memory该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 38 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 按服务商模型记忆强度
- 切回会话自动恢复
仅宿主的 DeepSeek Harness(DSH)插件包:按(服务商,模型)记住上次生效的推理强度,会话切回时自动恢复。
README
由 DeepSeek 最新模型翻译生成dsh-effort-memory
一个树外(out-of-tree)的 DeepSeek Harness
(DSH)插件,它会记住每条 (provider, model) 路由上最后一次实际生效的推理强度(reasoning effort),并在会话切换回该模型时将其恢复。
为什么需要它
编辑器(composer)的模型席位(model seat)从持久化的 modelSelection 投影中渲染推理强度。选择一个不同的模型会发送该模型自己的 defaultEffort (dsh-client-ui-model-selection/lib/client.js:427,883),而当调用方省略推理强度时,宿主解析器(host resolver)会实体化适配器的默认值(dsh-llm/lib/index.js:2116-2130)。因此,模型切换总是落到新模型的默认值上,而在被离开的模型上选择的级别在返回时不会被恢复。
本插件通过 GUI 所调用的同一公共命令接口,重新发出恰好一次选择,从而填补这一空白——它自身不追加任何会话事件,不注册任何服务,也不写入任何设置。
行为
1. 记忆键为 (provider, model);值为该路由上最后一次生效的推理强度 id。
展开完整文档(README 剩余 1 节)
dsh-effort-memory
一个树外(out-of-tree)的 DeepSeek Harness
(DSH)插件,它会记住每条 (provider, model) 路由上最后一次实际生效的推理强度(reasoning effort),并在会话切换回该模型时将其恢复。
为什么需要它
编辑器(composer)的模型席位(model seat)从持久化的 modelSelection 投影中渲染推理强度。选择一个不同的模型会发送该模型自己的 defaultEffort (dsh-client-ui-model-selection/lib/client.js:427,883),而当调用方省略推理强度时,宿主解析器(host resolver)会实体化适配器的默认值(dsh-llm/lib/index.js:2116-2130)。因此,模型切换总是落到新模型的默认值上,而在被离开的模型上选择的级别在返回时不会被恢复。
本插件通过 GUI 所调用的同一公共命令接口,重新发出恰好一次选择,从而填补这一空白——它自身不追加任何会话事件,不注册任何服务,也不写入任何设置。
行为
1. 记忆键为 (provider, model);值为该路由上最后一次生效的推理强度 id。
2. 在路由变更 A -> B 时,插件记住 A 的推理强度,然后:
- 如果 B 有已记住的推理强度且 B 当前声明支持它,则通过
ctx.sessionController.selectModel(...) 重新发出一次选择,使
会话的持久化选择变为 { B, 该推理强度 };
- 否则它什么都不做,B 保持自己的默认值。这是有意为之:首次访问一个从未使用过的模型会落到该模型的默认值上。
3. 路由变更在重启后也能被识别:每个会话在切换前的路由会在 session/created —— 附加(attach)时刻,从持久化的 modelSelection 投影中播种(seed),此时该投影仍然只反映已存储的日志。从事件处理器内部读取种子将是徒劳的:stateOf 会在会话的当前游标处实体化,而该游标已经包含了正在被处理的事件,因此种子将始终等于事件本身。
4. 一个未声明任何推理能力的目标模型(解析出的 reasoning 缺失,或设置中 reasoningEfforts: false)不会得到 reasoningEffort,也不会报错。
5. 目标不再声明支持的已记住推理强度(例如被 dsh-custom-reasoning-effort 重写)会静默回退到模型的默认值,不进行重试。
6. 在已选模型上仅推理强度发生变化的情况永远不会被触碰。
设计约束
- 仅宿主(Host)部分。 没有 client.js,没有 slot,没有 React,没有 UI。
- 单一杠杆。 ctx.sessionController.selectModel —— 与 GUI 所调用的同一公共命令接口。插件自身从不追加会话事件,也从不重写内存中的选择状态。
- 能力优先。 在任何重新发出之前都会查询
ctx.llm.resolveModelInfo(provider, model),因为对于目标不声明支持的级别,
selectModel 会抛出 UNSUPPORTED_REASONING_EFFORT。
- 循环安全。 只有路由变更才能触发重新下发,且仅当事件的 effort 与已记住的不同时才会触发,并且重新下发保持相同的路由——因此它产生的事件无法作为变更重新进入规则。
- 重放安全。 构造函数种子(重放、分叉、恢复)从不在 session/event 消防水带上发布;保留 seq add link:
直接从 GitHub:
dsh plugin --profile add github:cup113/dsh-effort-memory
dsh plugin 会转发到 profile 目录中的 pnpm,然后协调 dsh.profile.bundles:解析为声明了 dsh.bundle 的包的依赖会自动加入层栈。新的 bundle 行及其 Node ESM 模块都会在启动时加载,因此安装后或编辑 index.js 后重启 dsh。
布局
| 路径 | 作用 |
| index.js | 宿主半部分:事件监听器、服务调用、存储记忆(apply、inject、name) |
| decide.js | 纯规则:路由键、effort 归一化、决策表 |
| cordis.patch.yml | 唯一的 bundle 行(id: effort-memory、name: dsh-effort-memory) |
| test/ | 测试套件:纯层、打包一致性以及一个集成测试 |
| _verify/ | 针对实时 DSH 使用的测试装置:一个动态宿主探针、一个多帧会话日志提取器、一个变更检查 |
只有 files 中列出的根文件才是 bundle;test/ 和 _verify/ 对 Loader 无影响。
测试
node test/all.mjs
二十二个断言:纯决策表、打包一致性(bundle 行 id、包名、存储域名称),以及一个集成测试套件,它针对伪造的 Cordis 上下文驱动真实的 apply() —— 监听器形态、事件顺序、重发循环断路器、重放种子拒绝、重启种子,以及无存储回退。CI 在 Node 20 和 22 上运行相同的入口。
node --test 被有意不使用:它会在子进程中运行每个文件,并使用管道 stdio,而受限沙箱会拒绝这种方式。
_verify/mutation-check.mjs 证明决策断言并非空洞:从 decide.js 中移除 restore 分支后,规范断言会翻转。
已知限制
1. 每次切换的一次设置写入由公共 selectModel 路径本身执行(agentDefaultModel.saveSelection → settings.replace('agent-default-model', …))。此插件不添加任何设置命名空间,也不进行自己的设置写入。
2. 内存按 (provider, model) 全局共享 —— 按规范由每个会话和工作区共享。
3. 该插件会对每个路由发生变化的活跃会话起作用,包括子代理会话。若限制为根会话,则需要额外的 agents 依赖。
4. 没有 sessionProjections 时,就没有附加时种子,因此会话在重启后的第一次切换仅建立基线,不会被恢复;同一进程中的后续每次切换都会被恢复。
5. 过期的已记住级别会保留在域中(无害):如果某个模型的 effort 表之后重新获得该级别,它将被再次恢复。
6. 仅限单进程可见性;domain/changed 不会跨进程。
许可证
MIT © 2026 Jason Li预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
cup113/dsh-effort-memory
记住每个模型上次用的推理强度,切回时自动恢复
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1