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

技能调用门禁 windwhiterain/dsh-skill-gate

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

隐藏模型技能加载器,仅允许用户手动调用技能

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

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

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add windwhiterain/dsh-skill-gate
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · security
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 32 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-skill-gate(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/15 09:45:32

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

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

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

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

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

功能亮点

  • 隐藏模型侧技能加载器
  • 仅限用户显式调用加载

把挂载它的预设智能体所面对的模型侧技能加载器藏起来,这样只有用户用 /name 显式调用时,会话才能加载技能。

README

由 DeepSeek 最新模型翻译生成
dsh-skill-gate 对挂载它的预设所对应的 agent 隐藏面向模型的 skill 加载器,使会话只有在用户显式调用时才能加载技能。 功能说明 当挂载在一个同时挂载了 @deepseek-ai/dsh-tool-skill 的 agent 预设中时,本行会从该预设所组合的每个 agent 中移除一项能力: | 移除 | 保留 | | skill 工具 schema,因此模型无法自行调用技能 | 用户的显式 /name 手势,它会将技能正文注入该步骤 | | 会话提醒及其“调用 skill 工具”的指引 | Web 的 / 技能菜单,它通过 skills/list Remote 读取会话技能目录 | 这两项移除都源于每个已创建 agent 上的一次 agent.ctx.tools.restrict({ deny: ['skill'] }): - restrict() 过滤的是某个作用域继承的内容,而从不影响其自身层注册的内容。tool-skill 是同一预设中的一行,因此 skill 定义位于预设的常驻作用域——即本行自身所在的层——从该作用域发出的拒绝无法触及它。agent 作用域是常驻作用域的子级,因此 skill 在那里被继承,拒绝得以生效。
展开完整文档(README 剩余 1 节)
dsh-skill-gate

对挂载它的预设所对应的 agent 隐藏面向模型的 skill 加载器,使会话只有在用户显式调用时才能加载技能。

功能说明

当挂载在一个同时挂载了 @deepseek-ai/dsh-tool-skill 的 agent 预设中时,本行会从该预设所组合的每个 agent 中移除一项能力:

| 移除 | 保留 |
| skill 工具 schema,因此模型无法自行调用技能 | 用户的显式 /name 手势,它会将技能正文注入该步骤 |
| 会话提醒及其“调用 skill 工具”的指引 | Web 的 / 技能菜单,它通过 skills/list Remote 读取会话技能目录 |

这两项移除都源于每个已创建 agent 上的一次 agent.ctx.tools.restrict({ deny: ['skill'] }):

- restrict() 过滤的是某个作用域继承的内容,而从不影响其自身层注册的内容。tool-skill 是同一预设中的一行,因此 skill 定义位于预设的常驻作用域——即本行自身所在的层——从该作用域发出的拒绝无法触及它。agent 作用域是常驻作用域的子级,因此 skill 在那里被继承,拒绝得以生效。
- dsh-tool-skill 仅当它所注册的确切定义对调用 agent 可解析时才发布其目录提醒,因此隐藏该工具也会一并抑制该提醒。

用户显式手势位于另一个 dsh-tool-skill 监听器中,它读取的是技能注册表而非工具注册表,这就是 /name 仍然有效的原因。

挂载

- id: skill-filesystem
name: '@deepseek-ai/dsh-skill-filesystem'
- id: tool-skill
name: '@deepseek-ai/dsh-tool-skill'
- id: skill-gate
name: 'dsh-skill-gate'

本行不携带任何配置。在未挂载任何技能加载器的预设中,它是一个空操作。

为什么这不是一个 bundle

本行属于预设声明内部,而承载该声明的 profile 补丁是在所有 bundle 层之后应用的。bundle 补丁无法贡献本行,而一个不贡献任何其他内容的层只会是噪音。因此该包不声明 dsh.bundle.patch,而是作为普通的 profile 依赖安装:

在包含本仓库检出副本的目录中:

dsh plugin --profile web add ./dsh-skill-gate

已知限制

- 它只隐藏一个确切的工具名。 只有 skill 被拒绝,因此以不同名称挂载技能加载器的预设不受影响。
- 它改变的是模型能调用的内容,而非用户能调用的内容。 /name 手势和 Web 的 / 技能菜单按设计仍然有效,因此该门控缩小的是发现范围,而非禁用技能。
- 它依赖于尚未稳定的 harness 行为。 有三点:ctx.tools.restrict 过滤某个作用域继承的内容、agent/created 事件,以及 dsh-tool-skill 仅当其所注册的定义对调用方可解析时才发布其目录提醒。对这三者中任何一项的 harness 变更都可能改变此插件的效果。
- 不挂载任何技能加载器的预设不需要门控。 当 skill 不存在时,该行读取代理的继承视图并且不执行任何操作。

验证

node probe.mjs 针对伪造对象驱动 apply(),并在没有 Harness 的情况下检查两个分支。

卸载

dsh plugin --profile web remove dsh-skill-gate

许可证

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

隐藏模型技能加载器,仅允许用户手动调用技能

回到顶部