前言¶
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