dsh-all-search:一把 API key 給 DeepSeek Harness 聚合多後端搜索

前言

給智能體接聯網搜索,常見的麻煩是逐後端配置憑據: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 / 幻方無官方從屬關係)
羽毛球分组比赛记分
小程序二维码

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

小夜