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

工具闸门 7gzgn/dsh-tool-gate

DeepSeek 客户端
7gzgn7 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

按组收起闲置工具定义,随时一条命令挂回

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

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/7gzgn/dsh-tool-gate.git

状态速览

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

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

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

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

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

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

把整组工具包从会话工具面板中移出,再用一条命令挂回。工具表从 99,789 字符降到 48,082 字符(51.8%),无需卸载插件或重启。可按组、按智能体分别还原。

README

由 DeepSeek 最新模型翻译生成
dsh-tool-gate 把整包工具从会话的工具面上摘下来,要用时一条命令挂回去。 不是卸载插件——插件还在跑、能力还在,只是模型此刻看不见那些工具。省的是每轮都会重发一遍的工具定义。 为什么 工具表是每一轮请求都要重发的固定开销。装了几个大件之后,它可能占掉几万字符: 122 个工具 = 99,337 字符其中 browser 20,644 + wincu 18,470 + ig5 12,465 = 51,579(51.9%)而这三包在那一整天里被调用了 0 次 装 三步。少一步都不会生效,而且不会报错。 // 1. ~/.dsh/profiles/<你的 profile>/package.json 的 dependencies "dsh-tool-gate": "link:<本地工程绝对路径>", // 2. 同一个文件的 dsh.profile.bundles 数组里加一行 "dsh-tool-gate" 3. 建 junction(或 pnpm install),然后重启宿主 New-Item -ItemType Junction -Path "$HOME\.dsh\profiles\<profile>\node_modules\dsh-tool-gate" -Target "<本地工程绝对路径>" 装了不生效的排查顺序(血泪):
展开完整文档(README 剩余 1 节)
dsh-tool-gate

把整包工具从会话的工具面上摘下来,要用时一条命令挂回去。

不是卸载插件——插件还在跑、能力还在,只是模型此刻看不见那些工具。省的是每轮都会重发一遍的工具定义。

为什么

工具表是每一轮请求都要重发的固定开销。装了几个大件之后,它可能占掉几万字符:

122 个工具 = 99,337 字符其中 browser 20,644 + wincu 18,470 + ig5 12,465 = 51,579(51.9%)而这三包在那一整天里被调用了 0 次

装

三步。少一步都不会生效,而且不会报错。

// 1. ~/.dsh/profiles/<你的 profile>/package.json 的 dependencies "dsh-tool-gate": "link:<本地工程绝对路径>",

// 2. 同一个文件的 dsh.profile.bundles 数组里加一行 "dsh-tool-gate"

3. 建 junction(或 pnpm install),然后重启宿主 New-Item -ItemType Junction -Path "$HOME\.dsh\profiles\<profile>\node_modules\dsh-tool-gate" -Target "<本地工程绝对路径>"

装了不生效的排查顺序(血泪):

1. 先看工具表里有没有 tool_gate。没有就往下。
2. 设 DSH_TOOL_GATE_DEBUG=1 再重启,会在工作目录生成 dsh-tool-gate-debug.log。
- 没有这个文件 → profile 根本没加载这个包,回去查上面三步。
- 有 constructed 没有 inject callback → ctx.inject 没触发,tools 服务没就绪。
- 有 register ok 但工具不在 → 查 agent 作用域。
3. package.json 别带 UTF-8 BOM(首字节应是 7B),带了整份 profile 都不加载。

用

tool_gate(action: "status") # 现在收着哪些
tool_gate(action: "park") # 全部收起来(默认状态)
tool_gate(action: "mount") # 全部挂回来
tool_gate(action: "mount", groups: ["browser"]) # 只挂浏览器

改完下一个 step 的工具表就变,不用重启、不用改文件。

配置

- id: plugin-tool-gate
name: 'dsh-tool-gate'
config:
默认收着哪些组;清空 = 默认全挂出来
parked: [browser, wincu, ig5]
加自己的包:模式以 * 结尾按前缀匹配,否则精确匹配 groups:
mine: ['my_tool_']
one: ['exactly_this_tool']

实测

同一套对话、同一个会话,只切开关:

| | 工具数 | 工具表字符 |
| 全挂 | 123 | 99,789 |
| 收起三包 | 57 | 48,144 |
| | -66 | -51,645(51.8%) |

(差的那 452 字符是 tool_gate 自己的定义。)

按 0.054 元/百万 input token 算,每请求省约 0.0014 元。一百个请求一毛四。

收益就这么点。 它值得存在的理由是:工具表不该由「我可能要用」来决定,而该由「我现在要用」来决定。

实现要点(给改这份代码的人)

- 用 ctx.inject(['tools'], cb) 等工具服务就绪再注册。模块级 export const inject = ['tools'] 不够——它只声明依赖,不保证构造那一刻 ctx.tools 这个访问器可读,实测会在 typeof ctx.tools.register 那一行静默抛错,插件就那么没了。
- ctx.tools.restrict() 只在 agent 作用域里可用(agent.ctx)。全局调会抛「a context-global restriction would mask every agent」。
- 每个 agent 各存一份状态(WeakMap),重复 apply 前先 dispose() 掉上一次的 restriction。
- 摘掉的是全局工具;agent 自己 scoped 注册的工具摘不掉。

已知限制

- 摘工具摘不掉说明书。 有些工具包会同时往 system prompt 塞一段使用说明(dsh-builtin-browser 就塞了 1,336 字符的 "Use the dsh_browser_ tools…")。
那些 section 是插件在自己作用域里注册的,tool_gate 拿不到它们的 disposer,所以工具摘了、说明书还在。表现是:模型被告知有某组工具,实际调不到。
要彻底收干净,得那个插件支持关掉自己的注入——本插件做不到。
- 只摘得掉全局注册的工具。agent 自己 scoped 注册的工具不属于可摘范围。
- restrict 是 agent 级的:新起的 subagent 会各自被 gate 一次,互不影响。

回滚

- 让工具回来:tool_gate(action: "mount"),立刻。
- 停用插件:把 dsh-tool-gate 从 dsh.profile.bundles 里删掉,重启。
- 什么都不改也不影响:默认行为只是把工具表变小,插件没改任何数据。

License

MIT
预览分享卡片长什么样 ↓7gzgn/dsh-tool-gate
分享 · DeepSeek Harness Hub
7gzgn/dsh-tool-gate

按组收起闲置工具定义,随时一条命令挂回

回到顶部