Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心

dsh-tool-router

DSH Tool Router — deterministically shrink model-visible tool schemas per step with a safe fallback

nzl153 @nzl153 ⬇ 1 ★ 0 main

安装

dsh plugin --profile web add github:nzl153/dsh-tool-router
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

DSH Tool Router — deterministically shrink model-visible tool schemas per step with a safe fallback

该插件未提供要点说明,请参考仓库 README。

  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/nzl153/dsh-tool-router
许可证MIT
主要语言main
下载量1
GitHub 星标0
最近推送2026-08-20
收录日期2026-09-19
分类工具与能力

事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-tool-router

DSH Tool Router — 每个 Agent step 动态缩小模型可见的工具 schema,同时保留安全 fallback。

自带 benchmark 里 33 条 prompt 跑下来,工具 schema 从 15609 token 降到 4006,省了 74.3%。
数字可以自己复现:`npm run benchmark`。

它不是权限系统,不删除工具,也不让任何工具“永久不可用”。它只做一件事:

> 这一轮只向模型展示大概率相关的工具集合;如果猜错,模型可以用 `request_tools` 把需要的类别加回来。

## 现状

- 默认 `observe`:不改任何工具,只记录“如果路由会保留什么”。
- 本地统计写入 `~/.dsh/dsh-tool-router/stats.json`。
- 无外部依赖、无 LLM 二次调用、无网络。

## 官方 seam

DSH 本身提供了 per-step tool assembly 的官方扩展点:

- `system-prompt/assemble` waterfall:每个 step 的 `assembly.tools` 可以在这里被过滤。
- `agent/inbox/claimed`:在组装前捕获当前用户 prompt。
- `agent/pre-step` / `agent/request`:后续 dsh-model-router 会用到的官方模型路由 seam。

实现没有 monkey patch,也不改 DSH 源码。

一个已知缺口:`ToolSchema` 没有 tool 的注册来源(source)字段,因此分类使用 `name / description / parameters` + 内置已知工具名映射来推断。

## 安装

```bash
dsh plugin add dsh-tool-router
```

装完默认是 `observe`,不改任何工具,只记录“如果真的路由会省下多少”。
看几天统计觉得靠谱,再把 `mode` 调成 `adaptive`。

## 配置

插件配置使用 schemastery schema,字段:

```yaml
mode: observe            # off | observe | suggest | adaptive
alwaysVisible: []        # 用户额外配置的始终可见工具名
minimumSafeTools:        # 最小安全集,缺省如下
  - bash
  - read
  - search
fallbackToolName: request_tools
fallbackTtlSteps: 3
storePromptPreview: true
suggestPromptSection: true
```

### Modes

| mode | 行为 |
| --- | --- |
| off | 完全不路由 |
| observe | 不改变任何工具,只记录统计 |
| suggest | 不过滤,但向 system prompt 加一行轻量建议 |
| adaptive | 真正过滤工具可见集,并启用 `request_tools` fallback |

### Fallback

`adaptive` 模式下模型看到 `request_tools` 工具,可以请求:

```json
{ "enable": ["web", "database"] }
```

下一步会在 `system-prompt/assemble` 里把对应类别加回。TTL 默认 3 步,防呆。

## 分类

内置 13 类:

`filesystem / search / shell / git / lsp / web / browser / database / mcp / image / workflow / subagent / misc`

## 安全边界

- 只缩小 `assembly.tools`。
- 不碰 permissions / sandbox / guards / approval。
- `run_code`(Code Mode 保留 transport)永远不会被隐藏。
- 无路由信号时 fail-open,保留全部工具,避免猜错直接无解。

## 统计

`~/.dsh/dsh-tool-router/stats.json` 记录:

- prompt category
- selected / requested / enabled categories
- actual tools used
- unused visible tools
- before / after / saved schema bytes(token 为估算)

## 开发

```bash
pnpm install
pnpm typecheck
pnpm build
pnpm test
pnpm benchmark
```

Core benchmark 使用 33 条 synthetic + real prompts,结果见 `pnpm benchmark` 输出。

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。