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

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

小夜