dsh-web-search-firecrawl:把 DSH 的 web_search 接到 Firecrawl

前言

DeepSeek Harness(DSH)的 web 能力通過 ctx.web 這個 seam 暴露給插件。如果希望 DSH 內置的 web_search 不走原有的 DeepSeek route,而是調用 Firecrawl 的搜索 API,可以用 @elves-ai/dsh-web-search-firecrawl。

下面介紹它的定位、核心能力、安裝命令、配置方式,以及安裝前需要確認的事項。

這是什麼

@elves-ai/dsh-web-search-firecrawl 是一個 Firecrawl-backed search provider,面向 DeepSeek Harness 的 web capability seam(ctx.web)。

它把 DSH 內置的 web_search tool 接到 Firecrawl 的 search API,而不是 shipped DeepSeek route。它向 seam 註冊一個 WebSearchProvider,id 爲 firecrawl,但不註冊 model-facing tool。

倉庫 owner 爲 elves-ai,許可證爲 MIT。GitHub 倉庫是:

https://github.com/elves-ai/dsh-web-search-firecrawl

核心能力

這個插件主要做以下幾件事:

  • 爲 DSH 的 ctx.web seam 註冊一個 WebSearchProvider,id 是 firecrawl。
  • 調用 Firecrawl 的 POST /v1/search。
  • 把 Firecrawl 返回的 data[] 映射成 seam 使用的 normalized WebSearchResult。
  • 支持從 DSH Settings 的 Firecrawl 頁面配置 API key。
  • 當 settings 頁面裏的 key 爲空時,回退到環境變量 $FIRECRAWL_API_KEY。
  • 支持通過 useFirecrawl 在不重啓的情況下切換 provider。

可配置字段包括:

useFirecrawl
apiKey
baseURL
limit
maxSnippetChars

其中 apiKey 會被寫爲 secret,settings 頁面不會把保存的 key 回顯出來。

安裝前確認

資料中要求以下兩項:

  1. 一個 DeepSeek Harness 安裝,且處於官方包的 0.1.0-rc.6 線。
  2. 一個 Firecrawl API key。

如果沒有 API key,搜索會失敗,錯誤標識爲:

WEB_PROVIDER_CONFIGURED_UNAVAILABLE

另外,插件會以當前 dsh 進程的權限運行。安裝前建議檢查源碼和許可證,確認你信任它將要執行的行爲。

安裝

資料給出兩種安裝入口。請根據你當前的環境選擇其中一種。

如果你使用 global dsh CLI:

dsh plugin --profile web add @elves-ai/dsh-web-search-firecrawl@latest

如果你在 deepseek-harness source checkout 中,dsh 是 pnpm workspace script,從 workspace root 執行:

pnpm dsh plugin --profile web add @elves-ai/dsh-web-search-firecrawl@latest

安裝完成後,需要重啓 dsh web,然後強制刷新頁面,讓瀏覽器端和 settings page 重新加載:

dsh web

強制刷新快捷鍵是 Cmd/Ctrl+Shift+R。

啓用 Firecrawl

安裝插件後,web seam 的 searchProvider 默認會切到 firecrawl。

接下來打開 DSH Settings → Firecrawl:

  1. 在 API Key 字段粘貼 fc-... 形式的 key。
  2. 保存。

保存後,API key 會按 secret 處理。頁面只表示是否已配置 key,不會回顯保存的明文。

如果 settings 頁面裏的 key 留空,provider 會嘗試回退到環境變量:

export FIRECRAWL_API_KEY=fc-...
dsh --profile web

如果 settings key 和環境變量都不存在,provider 不可用。

切換 provider

useFirecrawl 用於在 Firecrawl 和原有 DeepSeek web search 之間切換。

  • useFirecrawl 爲 true 時,使用 Firecrawl。
  • useFirecrawl 爲 false 時,切回原有 DeepSeek web search。

這個切換不需要重啓 DSH 進程。

更新

使用 global dsh CLI 更新:

dsh plugin --profile web update --latest @elves-ai/dsh-web-search-firecrawl

如果插件安裝在 deepseek-harness source checkout 的 profile 中,可以從 workspace root 使用 pnpm 入口:

pnpm dsh plugin --profile web update --latest @elves-ai/dsh-web-search-firecrawl

更新後同樣需要重啓 dsh web,然後強制刷新頁面。

卸載

使用 global dsh CLI 卸載:

dsh plugin --profile web remove @elves-ai/dsh-web-search-firecrawl

在 deepseek-harness source checkout 中:

pnpm dsh plugin --profile web remove @elves-ai/dsh-web-search-firecrawl

卸載會移除插件包和對應 mount,但不會刪除 settings 頁面裏保存的值。如果你希望刪除已保存的 API key,需要先到 DSH Settings → Firecrawl 頁面清除 key。

配置字段說明

以下是資料中列出的字段和約束。

useFirecrawl

用於選擇是否使用 Firecrawl。

  • true:使用 Firecrawl。
  • false:切回原有 DeepSeek web search。

apiKey

Firecrawl API key。

  • 可以從 DSH Settings → Firecrawl 頁面保存。
  • 保存後按 secret 處理,不會回顯。
  • 如果 settings 頁面裏的 key 爲空,回退到 $FIRECRAWL_API_KEY。
  • 如果兩者都不存在,provider 不可用。

baseURL

Firecrawl endpoint 的 base URL。

  • POST /v1/search 會追加到這個 base URL 後面。
  • 如果 baseURL 無法解析,provider 不可用。

limit

默認結果數。

  • 當請求沒有攜帶 maxResults 時,可以使用這個默認值。
  • 如果設置,必須是正整數。

maxSnippetChars

用於限制單條 snippet 的最大字符數。

  • 如果設置,必須是正整數。

錯誤與邊界行爲

資料中列出以下行爲:

  • 無可用 API key 時,搜索失敗,錯誤標識爲 WEB_PROVIDER_CONFIGURED_UNAVAILABLE。
  • provider 失敗會表現爲 WebError,錯誤標識爲 WEB_PROVIDER_ERROR。
  • 請求被 abort 時,錯誤標識爲 WEB_ABORTED。
  • HTTP redirect 會在訪問 Location target 之前被拒絕。

適用場景

這個插件適合以下情況:

  • 你已經有 DSH 的 web capability seam。
  • 你希望 web_search 使用 Firecrawl 的搜索 API。
  • 你需要通過 settings 頁面快速切換 Firecrawl 和原有 DeepSeek route。
  • 你接受 DSH 插件運行方式,並會先檢查插件源碼和許可證。

它不是一個新的模型工具,而是把 DSH 已有 web_search 的後端搜索來源切到 Firecrawl。

結尾

dsh-web-search-firecrawl 的價值在於:它不改變 DSH 的 web_search 接口體驗,而是把底層搜索 provider 切到 Firecrawl,並允許通過 settings 頁面在線切換。

目錄頁鏈接未在當前資料中確認。可直接查看 GitHub 倉庫:

https://github.com/elves-ai/dsh-web-search-firecrawl
羽毛球分组比赛记分
小程序二维码

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

小夜