返回目录

dsh-tool-search

精选清单收录维护状态: 活跃

letter2025/dsh-tool-search

为 DeepSeek Harness 提供工具搜索与精简,支持按需搜索、描述和调用长尾工具。

前往 GitHub
$ dsh plugin --profile web add dsh-tool-search

15

星标

5

Fork

TypeScript

语言

MIT

许可证

2026-08-14

创建于

2026-11-05

最近推送

MIT 开源的 DSH 插件:用 `tool_search` / `tool_describe` / `tool_call` 三个桥接工具把庞大的工具目录收进上下文之外,配分级披露、重排匹配与关键词兜底,一条 `dsh plugin` 命令安装,配置从 `~/.dsh/dsh-tool-search.json` 热加载。

DSH 适配

原生运行时

作者声明

安全审计

未审计

最后核验

2026-11-13

许可证

MIT

01它能帮你完成什么?

  • 把庞大的工具目录(大量 MCP 服务器或插件工具)挡在上下文窗口之外,直到任务真正需要时才引入

    上下文里只留 eager 核心与三个桥接工具;被延后的 schema 按需注入,并按 `maxWarmTools` 做 LRU 上限

    工具目录已膨胀到每轮都背着任务用不到的 schema 的 DSH 用户

  • 在 DeepSeek Harness 的一轮对话里查找、查看并调用被延后的工具

    排序后的 `{name, description, group}` 匹配、单个工具的完整 schema,或按名称执行的真实工具——审批、守卫与会话事件因此仍挂在底层工具上

    把大量 MCP 服务器或插件工具接入 DSH、又需要它们仍可被调用的开发者

  • 不用手写 JSON 就能配好工具分组与重排匹配器

    `tool-slimmer-setup` 技能读取工具目录、提出分组建议、询问要全局还是按项目,再带着走完匹配器配置;生成的文件会热加载

    宁愿跟 agent 对话、也不想手改配置文件的人

02如何接入 DeepSeek Harness?

前置条件

  • 已安装 DSH,并有一个可以添加插件的 profile——README 用的是 `--profile web`
  • `tool_search` 与 preload 需要一个 OpenAI 兼容的 `/v1/rerank` 端点加 API Key;没有它关键词兜底也能用

安装步骤

  1. 01

    运行下面的命令:`dsh plugin --profile web add dsh-tool-search`

    $ dsh plugin --profile web add dsh-tool-search

  2. 02

    让 agent 帮你给工具分组——自带的 `tool-slimmer-setup` 技能会提出分组方案、与你确认、询问配置放全局还是按项目,并引导配置重排匹配器

  3. 03

    静态调参(预算、`core`、`maxWarmTools`)改 profile 的 `cordis.patch.yml`;分组、匹配器与 preload 写在运行时 JSON 文件里,下一轮生效

验证接入成功

作者未说明

03DSH 适配与能力边界

DSH 适配原生运行时

DSH 插件:一个 `system-prompt/assemble` 监听器在每一轮重写模型可见的工具列表,把长尾工具替换为 `tool_search` / `tool_describe` / `tool_call` 桥接。

  • 桥接工具(`tool_search` / `tool_describe` / `tool_call`)

    一句自然语言查询、一个被延后的工具名,或工具名加参数→排序后的匹配结果、一份完整的工具 schema,或真实工具的返回结果

    命中的工具与被 describe 过的工具会被预热进会话的可见集合审批、守卫与会话事件指向真实工具,绝不会是桥接工具
  • 分级披露

    每一轮的工具目录与 token 预算→0–3 级列表——无桥接、分组清单、仅名称,或每组一行并附数量

  • 对话式配置技能(`tool-slimmer-setup`)

    你的工具目录→写入插件 JSON 的工具分组、配置作用域与重排匹配器设置

    用户级写入 `~/.dsh/dsh-tool-search.json`,项目级写入 `<workspace>/.dsh/dsh-tool-search.json`
  • 重排匹配器 + 关键词兜底

    一条搜索查询,以及带 model 与 key 的 OpenAI 兼容 `/v1/rerank` 端点→按语义排序的匹配;未配置匹配器或重排调用失败时改用关键词排序(精确名称 > 名称词元 > 描述词元)

    查询与工具元数据会被发送到配置好的重排端点
  • 动态注入(预热集合)

    某一轮中被用到的被延后工具→它的完整 schema 会留在模型上下文中供后续轮次使用,并按 `maxWarmTools` 做 LRU 上限

    模型可见的工具列表会增长,直到达到预热上限

04适合谁?何时不该用?

适合

  • 工具目录已膨胀到每轮都背着任务用不到的 schema 的 DSH 用户
  • 把大量 MCP 服务器或插件工具接入 DSH、又需要它们仍可被调用的开发者
  • 宁愿跟 agent 对话、也不想手改配置文件的人

不适合

  • `tool_search` 与 preload 需要一个 OpenAI 兼容的 `/v1/rerank` 端点,以及存放在插件 JSON 里的 API Key(README 示例是 DashScope 的 rerank 地址配 `sk-...` 形式的 key)。在配置好之前,`tool_search` 只返回配置指引。
  • 本插件所挂接的切入点会随 dsh 变化:从 0.2.1-rc.3 起 PTC 生成器位于 `@deepseek-ai/dsh-tool-executor-ptc`,两个包都没有的宿主会以「关闭段落重写」的方式加载,这类宿主上表格精简只对更早的版本生效。

05兼容性、维护与安全提示

  • `tool_search` 与 preload 需要一个 OpenAI 兼容的 `/v1/rerank` 端点,以及存放在插件 JSON 里的 API Key(README 示例是 DashScope 的 rerank 地址配 `sk-...` 形式的 key)。在配置好之前,`tool_search` 只返回配置指引。
  • 本插件所挂接的切入点会随 dsh 变化:从 0.2.1-rc.3 起 PTC 生成器位于 `@deepseek-ai/dsh-tool-executor-ptc`,两个包都没有的宿主会以「关闭段落重写」的方式加载,这类宿主上表格精简只对更早的版本生效。
  • 静态调参(`thresholdPct`、`listingMaxTokens`、`configScope`、`core`、`maxWarmTools`)写在 profile 的 `cordis.patch.yml` 里,改完要重启;分组 / 匹配器 / preload 写在运行时 JSON 文件里,该文件按 mtime 监听,下一轮热加载。
  • 重排是主排序;没有匹配器或重排调用失败时,搜索退化为关键词匹配(精确名称 > 名称词元 > 描述词元),并且从不报错——结果比重排弱,但这一轮照样能跑通。
2026-08-142026-11-05作者未说明

MIT · 仅 README 证据(经 npm 分发,facts 包中无 GitHub release),未做安全审计

06常见问题

怎么把 dsh-tool-search 装进 DeepSeek Harness?

运行 `dsh plugin --profile web add dsh-tool-search`。静态调参(`thresholdPct`、`listingMaxTokens`、`configScope`、`core`、`maxWarmTools`)写在 profile 的 `cordis.patch.yml` 里,改完要重启;工具分组、匹配器与 preload 写在 `~/.dsh/dsh-tool-search.json`(或 `<workspace>/.dsh/dsh-tool-search.json`),下一轮自动生效。

它会把我的工具从 DSH 里删掉吗?

不会。精简只重写 `system-prompt/assemble` 里的模型可见表面,注册表保持完整,被延后的工具照样可执行。模型调用 `tool_call` 时,插件通过 `ctx.tools.execute` 按真实工具名执行,审批、守卫和会话事件都指向底层工具,而不是桥接工具。

一定要配 API Key 吗?

要用 `tool_search` 与 preload 就得配:匹配器是 OpenAI 兼容的 `/v1/rerank` 端点,`apiKey` 与 `model` 写在插件 JSON 里(README 示例用的是 DashScope 的 rerank 地址与 `qwen3-reranker`)。没配之前 `tool_search` 只返回配置指引;没有匹配器或重排失败时,搜索退化为关键词匹配且不会报错。

插件把配置写在哪?

工具分组、匹配器和 preload 写在运行时 JSON:用户级是 `~/.dsh/dsh-tool-search.json`,项目级是 `<workspace>/.dsh/dsh-tool-search.json`,`configScope: auto` 时项目文件优先。该文件按 mtime 监听并热加载,改动下一轮就生效,不必重启 DSH。

DSH 升级后工具列表会怎样?

插件按宿主适配。dsh 0.2.1-rc.3 起 PTC 生成器搬到 `@deepseek-ai/dsh-tool-executor-ptc`,改用运行时动态 import 解析;两个包都没有的宿主会以「关闭段落重写」的方式加载插件而不是报错,这类宿主仍然得到声明重写与注入的目录,表格精简只对更早的版本生效。

08数据与来源

  • 作者声明github.combb79135c5fcc…

    This plugin collapses the long tail behind three bridge tools and lets the model discover and load them on demand throug…

  • 作者声明github.combb79135c5fcc…

    On every turn, the plugin's `system-prompt/assemble` listener computes the tier and replaces the model-visible tools:

  • 作者声明github.combb79135c5fcc…

    - **Bridge tools** — `tool_search`, `tool_describe`, `tool_call` replace the deferred schemas.

页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-13。发现错误?提交更正。

🏆

最佳 DeepSeek Harness 插件

从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。