前言¶
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.webseam 註冊一個WebSearchProvider,id是firecrawl。 - 調用 Firecrawl 的
POST /v1/search。 - 把 Firecrawl 返回的
data[]映射成 seam 使用的 normalizedWebSearchResult。 - 支持從 DSH Settings 的 Firecrawl 頁面配置 API key。
- 當 settings 頁面裏的 key 爲空時,回退到環境變量
$FIRECRAWL_API_KEY。 - 支持通過
useFirecrawl在不重啓的情況下切換 provider。
可配置字段包括:
useFirecrawl
apiKey
baseURL
limit
maxSnippetChars
其中 apiKey 會被寫爲 secret,settings 頁面不會把保存的 key 回顯出來。
安裝前確認¶
資料中要求以下兩項:
- 一個 DeepSeek Harness 安裝,且處於官方包的
0.1.0-rc.6線。 - 一個 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:
- 在 API Key 字段粘貼
fc-...形式的 key。 - 保存。
保存後,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 會在訪問
Locationtarget 之前被拒絕。
適用場景¶
這個插件適合以下情況:
- 你已經有 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