前言¶
在 DeepSeek Harness(DSH)裏做需要實時信息的智能體時,模型側通常只有 web_search 和 web_fetch 這類工具;具體搜哪家、密鑰怎麼進進程,取決於你在 @deepseek-ai/dsh-web 這條 seam 上掛的 search provider。默認或自建方案往往要自己接 HTTP、對齊返回格式。下面介紹社區插件 dsh-web-search-exa(維護者 jakehemmerle):把 Exa 註冊爲 provider exa,讓 web_search 走 Exa 的 /search API,並把結果以 sources 形式返回;web_fetch 行爲不變。插件本身沒有獨立 UI,在 dsh web、dsh-TUI 與 headless 下用法一致。
這是什麼¶
dsh-web-search-exa 是一個 DSH bundle 插件,在 @deepseek-ai/dsh-web 上註冊 Exa 搜索後端。安裝後 bundle 內的 cordis.patch.yml 會把 web seam 的 searchProvider 固定爲 exa,並加入 web-search-exa 配置行。分類上屬於聯網工具;社區目錄見 SkillHub 插件頁,源碼與說明在 GitHub:jakehemmerle/dsh-web-search-exa。
核心功能¶
- 統一 search provider:在 Cordis patch 裏聲明 provider 名
exa,DSH 的web_search工具把查詢發給 Exa API,結果作爲 sources 供模型引用。 - 多運行面一致:同一套 provider 在 dsh web、dsh-TUI、headless 中生效,無需爲每種入口單獨寫集成。
- 可配置密鑰與請求參數:支持從環境變量、密鑰文件或(不推薦)字面量讀取 API Key,並可調整 Exa 的
baseURL、type、高亮長度與超時等(見下文配置表)。 - 版本與 DSH 對齊:當前發佈
0.3.0-rc.1在 DSH0.2.1-rc.2上做過 qualification;peer 依賴爲精確版本,其他 DSH 版本需dsh plugin allow-version或等待適配的新 release。
安裝與啓用¶
按你實際使用的 profile(例如 web、headless)安裝 bundle,並在啓動 dsh 的環境中提供 Exa API Key:
dsh plugin --profile web add github:jakehemmerle/dsh-web-search-exa#v0.3.0-rc.1
export EXA_API_KEY=… # in the environment that launches dsh
上面第二條是在啓動 dsh 的同一環境裏導出密鑰變量;變量名默認對應配置項 apiKeyEnv(見下表)。安裝完成後,因 patch 會改寫 web seam 的 searchProvider,需要重啓 dsh web 後新 provider 纔會生效。
若本地 DSH 版本不是 0.2.1-rc.2,安裝前請查閱 README 中的版本說明,必要時使用 dsh plugin allow-version 或選用匹配的插件版本。
配置說明¶
可在你自己 profile 的 cordis.patch.yml 裏覆蓋 web-search-exa 這一行。patch 會替換整行 config,因此保留的字段也要重新寫全。
| 字段 | 默認值 | 含義 |
|---|---|---|
apiKeyEnv |
EXA_API_KEY |
密鑰環境變量名:先在 dsh credential store 查找,再在(若設置了 apiKeyFile 之後)環境中查找 |
apiKeyFile |
(未設置) | 存放密鑰的文件(原始內容或 dotenv);每次搜索都會讀,輪換密鑰無需重啓;優先級高於環境變量 |
apiKey |
(未設置) | 字面量密鑰,優先於其他來源(不推薦) |
baseURL |
https://api.exa.ai |
Exa API 根地址 |
type |
auto |
Exa 搜索類型 |
highlightChars |
600 |
每條結果的高亮字符長度 |
timeoutMs |
30000 |
請求超時(毫秒) |
示例:用密鑰文件而不是環境變量:
- id: web-search-exa
config:
apiKeyFile: /run/secrets/exa
典型用法¶
安裝、配置密鑰並重啓 dsh web 之後,無需額外調用插件 API:在對話或 agent 流程裏照常使用 Harness 暴露的 web_search 工具即可,查詢會經 Exa /search 返回。web_fetch 仍按 DSH 原有邏輯工作,本插件不修改 fetch 路徑。
開發側若改插件本身,倉庫 README 提到可用 nix flake check 跑快速測試套件,用 nix run .#e2e 在 mock Exa 上對 dsh web(Playwright)、dsh-TUI 與 headless 做端到端驗證;細節見倉庫內 SPEC.md、TESTING.md、RELEASING.md。
適用場景與注意¶
適合:已在用或計劃用 Exa 作聯網檢索、希望在 DSH 全入口統一 web_search 行爲的開發者。
注意:
- 插件以當前 dsh 進程的權限與網絡環境運行;安裝前請自行審閱 源碼與 MIT 許可證。
- API Key 會用於對外請求 Exa;生產環境更推薦
apiKeyFile或 credential store,避免在 patch 裏寫死apiKey。 - SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;插件星標與版本以 GitHub 發佈爲準。
結尾¶
dsh-web-search-exa 把 Exa 接進 DSH 的 web seam,用一條官方安裝命令和可選的 cordis.patch.yml 覆蓋即可完成聯網搜索後端切換。需要概覽與分類信息時可打開 SkillHub 目錄頁;安裝命令、配置字段與開發說明以 GitHub 倉庫 README 爲準。