dsh-web-search-exa:爲 DSH 接入 Exa 聯網搜索

前言

在 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。

核心功能

  1. 統一 search provider:在 Cordis patch 裏聲明 provider 名 exa,DSH 的 web_search 工具把查詢發給 Exa API,結果作爲 sources 供模型引用。
  2. 多運行面一致:同一套 provider 在 dsh web、dsh-TUI、headless 中生效,無需爲每種入口單獨寫集成。
  3. 可配置密鑰與請求參數:支持從環境變量、密鑰文件或(不推薦)字面量讀取 API Key,並可調整 Exa 的 baseURL、type、高亮長度與超時等(見下文配置表)。
  4. 版本與 DSH 對齊:當前發佈 0.3.0-rc.1 在 DSH 0.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 爲準。

羽毛球分组比赛记分
小程序二维码

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

小夜