前言¶
給智能體接聯網搜索,常見的麻煩是逐後端配置憑據: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 / 幻方無官方從屬關係)