前言¶
DeepSeek Harness(DSH)默認的搜索後端在特定場景下可能無法滿足需求。dsh-tavily-provider 是一個社區插件,它爲 DSH 提供了基於 Tavily 的 web_search 和 web_fetch 能力,從而替換掉內置的搜索後端。該插件由 MirrMeur 維護,遵循 MIT 許可證。
核心功能¶
插件主要提供以下兩個 Provider ID:
web_search(provider id:tavily)web_fetch(provider id:tavily-extract)
安裝與啓用¶
通過 DSH 的插件管理命令安裝到 web profile:
# 從 GitHub 直接安裝
dsh plugin --profile web add github:MirrMeur/dsh-tavily-provider
# 釘住版本安裝(推薦用於生產環境)
dsh plugin --profile web add github:MirrMeur/dsh-tavily-provider#v0.1.0
安裝完成後,需重啓該 profile 的 Harness 進程,並在 cordis.patch.yml 中引用相應的 Provider ID。
配置方法¶
該插件沒有設置卡片(UI),所有配置需手動寫入 profile 的 cordis.patch.yml。基礎配置示例如下:
- id: tavily-provider
config:
maxResults: 5 # 1..20,默認值
searchDepth: basic # basic | advanced
topic: general # general | news
apiKeyEnv: TAVILY_API_KEY # 憑證名
baseURL: https://api.tavily.com
API Key 的解析順序優先級如下:
1. 配置文件中的 apiKey 字面量。
2. 憑證服務(~/.dsh/.credentials.yaml 中的 TAVILY_API_KEY)。
3. 進程環境變量 TAVILY_API_KEY。
4. 走 Tavily 的 keyless 匿名模式(無 key 時)。
行爲說明¶
- web_search: 調用
POST /search,將返回結果映射爲{url, title, snippet, publishedAt}格式。 - web_fetch: 調用
POST /extract,返回 Markdown 格式的文本,映射爲{url, statusCode, body:{kind:"text",content}}。
錯誤處理遵循 DSH 宿主規範:網絡或超時錯誤返回 WEB_PROVIDER_ERROR(包含 HTTP 狀態碼提示),調用方取消時返回 WEB_ABORTED。
侷限性¶
- 無 UI 卡片: 需手動編寫配置文件。
- web_fetch 限制: 僅支持文本和 Markdown,不支持圖片或 PDF 解析。
- 未實現 firecrawl: 該功能未在插件中實現。
- 版本兼容: 適用於 DSH 0.1.1-rc.x 和 0.1.5 線,但不依賴任何
@deepseek-ai/*內部包。
結語¶
dsh-tavily-provider 是一個輕量級的搜索後端替代方案,適合需要更可控的搜索深度或抓取邏輯的場景。安裝前請檢查源碼與許可證。
- GitHub: https://github.com/MirrMeur/dsh-tavily-provider
- Catalog: https://www.skillhub.cn/plugins/MirrMeur/dsh-tavily-provider