Exa 搜索與抓取插件 for DeepSeek Harness

前言

DeepSeek Harness(DSH)的插件生態以「一切皆插件」爲理念,開發者可以通過插件爲模型注入聯網檢索、內容抓取、研究流程等能力。在已有的本地檢索能力之外,需要與外部搜索服務的集成時,通常需要自行封裝 HTTP 請求、處理 API 限流、維護多接入方式的憑據管理,開發成本較高。本插件通過封裝 Exa 的搜索與抓取接口,在 DSH 中提供統一的調用方式,同時支持免登錄、API Key 與 Exa 賬號三種接入模式,減少重複開發。

插件定位

本插件爲 DSH 提供 Exa 服務的代理層,將 Exa 的搜索、抓取、問答、研究、監控等能力註冊爲模型可調用的工具。插件負責接入方式的切換、憑據的解析與存儲、功能開通探測、限流識別與錯誤轉換等底層邏輯,模型側無需關心 Exa 的接口細節。插件由 kiranasuka 維護,開源協議爲 MIT。

核心功能

工具註冊

安裝後,插件註冊 10 個 exa_* 工具,並複用 Harness 原生的 web_search 與 web_fetch,由 Exa 實際處理請求。工具按功能分組,具體如下:

檢索
- web_search:基礎搜索,按接入方式決定是否可用
- exa_search:支持域名、分類、日期、文本、子頁過濾
- exa_deep_search:多步檢索與帶引用的綜合答案(需 API Key)

內容
- web_fetch:抓取網頁內容,由 Exa 提供
- exa_fetch:最多抓取 5 個網頁,支持 highlights / summary / 子頁(後三者需 API Key),3 路併發
- exa_find_similar:由已知網址擴展相似頁面(需 API Key)

問答
- exa_answer:直接問答,返回帶引用的結果(需 API Key)

研究
- exa_research:Exa Agent,支持研究、名單構建、結構化輸出,支持續等與取消(需 API Key 或 Exa 賬號)

監控
- exa_monitor:創建定時或手動搜索監控,支持列表 / 新建 / 修改 / 觸發 / 刪除(需 API Key)

數據集
- exa_webset:構建與讀取經過驗證的數據集(需 API Key,Pro 計劃)

批量
- exa_batch:批量提交 /search 或 /agent/runs(需 API Key,團隊單獨開通)

狀態
- exa_status:報告當前接入方式、可用工具與上游工具表

其中 Websets 與 Batch 需要特定計劃或團隊權限,插件會在啓動或切換接入方式時探測功能是否開通,未開通則不註冊對應工具,並在設置頁標註「當前團隊未開通」。

接入方式

插件支持三種接入方式:

  • 免登錄:不需要憑據,通過 https://mcp.exa.ai/mcp?tools=... 連接。提供基礎搜索與抓取,但部分高級功能不可用(如 agent_run)。
  • API Key:在設置頁填入 API Key,或使用環境變量 EXA_API_KEY,通過 https://api.exa.ai 調用。支持全部接口。
  • Exa 賬號:通過瀏覽器授權登錄,MCP 工具隨賬號開放。agent_run 需登錄後探測,探測成功纔會註冊 exa_research。

設置頁提供「測試連接」按鈕,使用當前接入方式執行一次最小搜索,返回耗時與示例結果。

安裝與啓用

通過 Harness 插件管理安裝本目錄,或從 npm 安裝:

dsh plugin add dsh-exa-search

安裝後,web 行會被固定到 exa provider(通過 cordis.patch.yml)。這是必要配置:當存在兩個可用搜索 provider 時,DSH 會拒絕選擇,避免自動猜測。

配置

插件通過 cordis.patch.yml 配置以下參數:

鍵 默認值 說明
mode keyless 默認接入方式,可在設置頁切換
apiKeyEnv EXA_API_KEY 未保存 Key 時讀取的環境變量
numResults 8 默認返回來源數
searchType auto 檢索強度:auto / lite / fast
maxCharacters 12000 單頁抓取字符上限
locale auto 消息語言:auto / en / zh
mcpTools null 覆蓋 MCP 的 tools 列表(數組或逗號分隔字符串)
toolGroups null 分組開關的初始值,例如 { "answer": false, "webset": false }
updateCheck true 啓動後自動查詢 npm 最新版本

設置頁爲每個分組提供開關,關閉後該分組下的 exa_* 工具會立即從工具表中移除,web_search / web_fetch 的 Exa 改道不受影響。

典型用法

基礎搜索

// 模型調用
web_search({ query: "最近 AI 研究進展" })

高級搜索(帶過濾)

exa_search({
  query: "Exa 文檔",
  category: "publication",
  numResults: 5
})

內容抓取

exa_fetch({
  urls: ["https://example.com/page"],
  format: "summary"
})

研究流程

// 啓動研究
const { runId } = await exa_research({
  query: "分析 DeepSeek 與 GPT-4 的性能差異",
  maxSteps: 10
})

// 續等
const result = await exa_research({ runId, action: "wait" })

// 取消
await exa_research({ runId, action: "cancel" })

適用場景與注意

本插件適合需要與 Exa 服務集成、希望統一接入方式與工具註冊的 DSH 用戶。模型側只需按原有方式調用 web_search、web_fetch 或新增的 exa_* 工具,無需關注 Exa 的具體實現。

插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。Websets 與 Batch 功能需要 Pro 計劃或團隊單獨開通,未開通時不會註冊爲工具。

維護與生態

插件在啓動約 5 秒後查詢 npm 上的最新版本,結果緩存 6 小時。發現新版本時設置頁會提示更新,支持忽略當前版本。維護者通過推送版本標籤觸發自動測試、打包與 GitHub Release。

DeepSeek Harness 的插件目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件可在 SkillHub 插件目錄 查看,源碼託管於 GitHub。

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

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

小夜