dsh-skill-gated-tools: Unlock Agent Tools on Demand with Skills

前言

在 DeepSeek Harness(DSH)里给 Agent 挂很多第三方插件工具和 MCP 工具时,会话开头的工具列表会变长。不常动用的专用工具往往还配套操作说明、约束和示例;若全部塞进初始上下文,既占名额,也容易让模型在通用对话里误触。

常规做法是「先搜能力 → 发现工具 → 再调用」。本插件走另一条工作流设计:「先加载任务 Skill → 同时拿到指引与被分配的工具 → 再调用」。README 明确说明这是工作流层面的取舍,并未与工具搜索做过准确率、延迟或成本的对比基准测试。

下面介绍维护者 NyxJae 发布的 dsh-skill-gated-tools(分类:工作流)。它面向 DSH 的智能体与插件使用者,把专用工具默认藏起来,在成功加载指定 Skill 后于同一会话、同一轮对话中立即可用。

这是什么

Skill-gated tool discovery for DeepSeek Harness:按需通过 Skill 暴露工具。支持第三方插件工具与 MCP 工具;可为单个工具设置可见性规则。新 Agent 会话开始时,被设为「Skill-gated」的工具不可见;对应 Skill 加载成功后,工具在同轮即可调用,无需新开会话。

Claude Skill 发现依赖 DSH 自带的文件系统 Skill 提供方;README 要求 DSH 0.2.2-rc.1 或兼容版本(peerDependencies 中 @deepseek-ai/dsh-skill-filesystem 为 ^0.2.2-rc.1)。

三类可见性策略

在 Settings → Skill-gated tools 中搜索或筛选工具,选中一条或多条,选择策略并保存。

策略 当前 Agent 看到的效果
Available 会话开始就可见。
Skill-gated 任意一个已绑定的 Skill 加载成功后出现。
Always blocked 即使加载了 Skill 也保持隐藏。

要点如下:

  1. 每个 Agent 独立解锁;恢复会话时会还原已成功加载 Skill 的历史。
  2. 同一工具可绑定多个 Skill,加载其中任意一个即可解锁。
  3. Always blocked 优先级最高。
  4. 保存时只更新已选工具,其余规则保留;保存失败会保留草稿。改完规则后建议重新打开会话以应用配置。

可用 Available 筛选预览「新会话初始工具列表」;用 Skill-gated 筛选并在 Access rule 列查看 Skill 绑定关系。

安装与启用

插件装在需要规则生效的 DSH profile 上。Desktop 与 Web/CLI 可使用不同 profile,安装前先确认正在配置哪一侧 Host。

Desktop(已发布 npm 包时)

  1. 侧边栏打开 Plugins。
  2. 点击 Add plugin。
  3. 输入包名 dsh-skill-gated-tools。
  4. 点击 Install,按提示启用。

若 registry 尚未发布,在同一对话框中使用提供的本地插件压缩包的绝对路径安装。

Web / CLI

将 <web-profile> 换成启动 Web Host 时使用的 profile 名。npm 发布后执行:

dsh plugin --profile <web-profile> add dsh-skill-gated-tools

例如 profile 名为 web:

dsh plugin --profile web add dsh-skill-gated-tools

配置示例

将 MCP 工具绑定到全局 Skill

例如选中表格中的 MCP 相关工具,策略选 Skill-gated,再选中全局 mcp Skill,Save rules。MCP 工具可逐条选择或批量绑定,与其他插件工具相同。README 中的示例把图像生成、视频生成与结果查询类 MCP 工具绑到 ai-image-generation Skill。

彻底屏蔽某个工具

在工具行点击 Edit,选 Always blocked,Save rules。

配置后的行为核对

在新会话中查看实际工具列表:等待 Skill 的工具与 Always blocked 的工具不应出现在初始列表中。当用户提出需要某类任务(README 以 meme 为例)时,Agent 加载 meme Skill,工具列表更新,并可在同一轮调用例如 send_meme。

用 Agent 维护规则

插件注册了内置配置 Skill skill-gated-tools。可向 Agent 下达类似指令:

Load the skill-gated-tools skill. Bind send_meme to the meme skill and preserve all other rules.

该 Skill 引导 Agent 查看真实目录、更新规则并回读结果。

为解锁类 Skill 写清 description 很重要:写明相关任务、代表性工具名,并说明使用前须先加载该 Skill,便于在工具仍隐藏时从 Skill 目录找到入口。例如 meme 可写:

Find and send memes. Before using send_meme or related meme tools, load this skill to unlock them.

可改本地 Skill 的 description,或改插件注册时的描述;本插件不会自动改写其他 Skill。

与 KV cache、工具定义的说明

README 专节说明:是否影响 KV cache 取决于模型协议与 DSH 适配器。本插件只调整工具可见性;工具定义如何进入模型请求由 DSH 决定。支持会话内追加的路由可在保持前缀不变的情况下追加新工具;其他路由可能重写靠前的工具定义并打断前缀复用。插件未宣称「更少初始工具定义」已带来可测量的成本或延迟收益;具体可参考仓库内 docs/tool-loading-and-cache.md 与 README 中的官方文档链接。

适用场景与注意

适合谁

  • 想把 MCP、低频插件工具与任务 Skill 绑在一起、减少通用对话初始工具噪音的 DSH 用户。
  • 已习惯「先 load skill 再干活」、且专用工具需要配套说明的团队工作流。

使用前请注意

  • 插件在当前 dsh 进程的权限下运行;安装前应阅读 GitHub 仓库 源码与 LICENSE、THIRD_PARTY_NOTICES.md。
  • DSH 社区目录(如 skillhub.cn)为独立生态站点,与 DeepSeek / 幻方无官方从属关系;本文不构成官方商店说明。
  • Web 与 Desktop 的 profile、插件集合可能不同,规则不会自动跨 Host 同步。

结尾

dsh-skill-gated-tools 把「加载 Skill」当作工具发现的入口:默认隐藏专用能力,任务到位再解锁,并支持 MCP 与逐工具策略。若你在 DSH 里工具越挂越多,又希望指令与能力成对出现,可按上文步骤安装并在 Skill-gated tools 中绑定规则。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye