dsh-search-router:DeepSeek Harness 的原生 Web 搜索路由插件

前言

DeepSeek Harness (DSH) 的原生 web_search 工具通常绑定到特定的搜索后端。当需要更换提供商,或者希望为一次调用配置多个提供商并实现顺序回退时,直接修改配置可能较为繁琐。dsh-search-router 插件解决了这个问题,它向 ctx.web 注册了一个原生的 WebSearchProvider,将每次 web_search 调用转发到用户选择的搜索后端,并支持顺序回退机制。

插件介绍

这是一个极小的 DeepSeek Harness (DSH) 插件。它向 ctx.web 注册了一个原生的 WebSearchProvider,将每次 web_search 调用转发到用户选择的搜索后端,并支持顺序回退(当一个失败时尝试下一个)。模型看到的仍然是同一个 web_search 工具,不会引入新的工具、MCP、重排序或缓存。

维护者: XGrin
许可证: MIT
Stars: 1
分类: 模型推理

核心功能

  1. 多后端支持:支持 Exa, Tavily, Brave, Perplexity, DeepSeek, SearXNG, DuckDuckGo 等搜索后端。
  2. 顺序回退:支持配置顺序回退机制,当主提供商失败时,自动尝试下一个。
  3. 零依赖工具:不引入新的工具、MCP、重排序或缓存。
  4. 可视化配置:提供 GUI 支持拖拽排序与配置。

安装与启用

通过官方 CLI 安装插件:

dsh plugin --profile web add github:XGrin/dsh-search-router

安装完成后,启动 Web 界面:

dsh web

若需卸载,可执行:

dsh plugin --profile web remove dsh-search-router

配置方式

插件提供两种配置方式,两者作用于同一组配置项。GUI 中的设置会覆盖环境变量,而 GUI 中的重置操作将继承 Composition 配置的值。

1. 在 GUI 中配置

进入 设置 -> 插件 -> 插件配置,找到“Search router”卡片。

  • 每一行代表一个活跃的提供商,按回退优先级编号。
  • 支持拖拽行来重新排序(也支持键盘操作)。
  • 每个提供商提供内联编辑器,可添加或修改配置。
  • API 密钥在此输入后会持久化存储并覆盖环境变量。
  • 每一项修改都会实时应用,无需重启。

2. 在 Composition 中配置

编辑 profiles/web/cordis.patch.yml 文件。插件会自动检测每个拥有密钥或端点的提供商,默认顺序为:exa → tavily → brave → perplexity → deepseek → searxng → duckduckgo。

示例 1:Tavily 为主,回退到自建 SearXNG

- id: search-router
  config:
    order: [tavily, searxng]
    providers:
      tavily: { apiKeyEnv: TAVILY_API_KEY }
      searxng: { baseUrl: https://search.example.com }

示例 2:仅使用 SearXNG,无需任何商业密钥

- id: search-router
  config:
    provider: searxng
    providers:
      searxng: { baseUrl: http://127.0.0.1:8888 }

注意事项

  1. SearXNG 格式要求:如果使用自托管的 SearXNG,必须在 SearXNG 的 settings.yml 中启用 json 输出格式(search.formats)。
  2. DuckDuckGo 无需密钥:使用 DuckDuckGo 时无需任何 API 密钥,开箱即用。
  3. 密钥优先级:GUI 中设置的 API Key 会覆盖环境变量。若在 GUI 中清除密钥,将回退读取环境变量。
  4. 优先级继承:在 GUI 中点击重置,将恢复为 Composition 配置中定义的值。

总结

dsh-search-router 为 DSH 提供了一种灵活切换和组合搜索后端的能力。通过顺序回退机制,它提高了搜索调用的可用性。插件设计克制,不引入额外工具,适合需要精细控制搜索链路的开发者。

  • GitHub 仓库:https://github.com/XGrin/dsh-search-router
  • 插件目录:https://www.skillhub.cn/plugins/XGrin/dsh-search-router
羽毛球分组比赛记分
小程序二维码

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

小夜