dsh-tavily-provider: Tavily 後端搜索與抓取

前言

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
羽毛球分组比赛记分
小程序二维码

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

小夜