dsh-all-search: A single API key for DeepSeek Harness to aggregate multi-backend search

前言

给智能体接联网搜索,常见的麻烦是逐后端配置凭据:exa 一把 key,tavily 一把,firecrawl 再一把,每个都要单独申请、单独填写。DeepSeek Harness(DSH)原生已带 Exa / Perplexity / DeepSeek 搜索,但如果想把查询交给更多后端处理,就需要在 provider 层做点工作。

dsh-all-search 解决的就是这件事:它向 DSH 添加一个名为 anysearch 的联网搜索 provider,背后是单一 MCP 网关 AnySearch,一把 API key 聚合 exa / tavily / firecrawl / context7,并且在完全没有 key 时也不会失效。下面介绍它的定位、功能与配置方式。

这是什么

dsh-all-search 由 RealAlexandreAI 维护,MIT 许可证,当前版本 0.2.1,是 pi-all-search 的移植(Port of pi-all-search)。

它做的事情是把 AnySearch 这个联网搜索 provider 注册进 DSH 的 ctx.web,provider 名为 anysearch,DSH 内建的 web_search 工具会把它与内置 provider 一并拾取。

AnySearch 是单一 MCP 网关:设置 api_key 后,一把 key 聚合 exa / tavily / firecrawl / context7,无需逐后端配置凭据。

核心功能

一把 key 聚合四个后端

设置 api_key 后,查询走 AnySearch 网关,由它聚合 exa / tavily / firecrawl / context7。你不需要分别为这些后端准备凭据。

没有 key 也不会变成空操作

未设置 api_key 时,同一个 anysearch provider 仍报告 available() = true,改为通过 Firecrawl 的 POST /v1/search 搜索,请求不带 Authorization 头(keyless 方式)。也就是说,provider 不会成为 no-op。

需要注意:keyless 模式下,NAT、CI 等共享出口 IP 的主机会共享同一份无密钥每日额度池。

可选的 Firecrawl 私有配额与 Developer Index

可选设置 firecrawl_api_key,插件会发送 Authorization: Bearer 使用你自己的 Firecrawl 配额。

同时配置 firecrawl_api_key 与 AnySearch key 时,开发者意图查询(repo / issue / PR / commit / skill)会优先命中 Firecrawl Developer Index——一个覆盖 README、issue、PR、OpenAPI spec 与 skills 的语义 artifact 索引——失败或无结果时回退 AnySearch。

安装与启用

官方安装命令:

dsh plugin --profile web add dsh-all-search

插件要求 Node >= 20.0.0。安装后,provider 注册为 ctx.web 上的 anysearch,内建的 web_search 工具会把它与内置 provider 一并拾取。

配置示例

配置中 id 为 all-search、name 为 dsh-all-search:

- id: all-search
  name: dsh-all-search
  config:
    api_key: <your anysearch key>   # optional

config 下可用的配置键:

  • api_key:AnySearch key。设置后查询走 AnySearch 网关。
  • base_url:MCP endpoint 覆盖。
  • firecrawl_api_key:可选 Firecrawl key(Bearer 配额)。在配置了 AnySearch key 时,它同时启用 Developer Index 分支。

api_key 是可选的。不填时走上面说的 Firecrawl keyless 搜索;如果主机在 NAT 或 CI 环境下与其他人共享出口 IP,建议设置 firecrawl_api_key 拿到私有配额。

隐私

  • 密钥只保存在配置文件中,从不写入日志。
  • 设置 api_key 时,仅向 AnySearch 网关发送查询本身与结果数量。
  • 未设置 api_key 时,查询发往 Firecrawl 的 /v1/search

开发自检

如果需要从源码构建或验证:

npm install
npm run typecheck
npm test
npm run build

其中 npm test 覆盖结果解析、maxResults、HTTP 错误与 keyless Firecrawl 路由。联网实测:

node --import tsx tests/real/real-search.mjs

适用场景与注意

适合谁:

  • 想用一把 key 在 DSH 里使用 exa / tavily / firecrawl / context7 的开发者;
  • 已经持有 AnySearch 或 Firecrawl key、希望接入现有配额的团队;
  • 无凭据环境下仍需要搜索兜底的场景(keyless Firecrawl)。

注意:

  • 插件以当前 dsh 进程的权限运行,安装前应检查源码与许可证(本项目为 MIT)。
  • dsh 原生已带 Exa / Perplexity / DeepSeek 搜索,本插件是在其上补充 AnySearch,不是替换。
  • keyless 模式在共享出口 IP 的主机上会共享每日额度。
  • Node 版本需 >= 20.0.0。

结尾

dsh 的理念是一切皆插件,dsh-all-search 是这条思路下的一个实用补充:一个 provider,一把 key,多个搜索后端,且在无凭据时仍有可用的降级路径。

  • GitHub:https://github.com/RealAlexandreAI/dsh-all-search
  • 社区目录页:https://www.skillhub.cn/plugins/RealAlexandreAI/dsh-all-search (独立社区站点,与 DeepSeek / 幻方无官方从属关系)
羽毛球分组比赛记分
小程序二维码

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

Xiaoye