dsh-web-search-tavily:DSH 的 Tavily 联网搜索 Provider

DeepSeek Harness (DSH) 通过 ctx.web 将联网能力注入到模型中。DSH 自带的 deepseek-official 搜索 provider 会消耗模型 API 的计费额度。Tavily 是一个独立的搜索 API,拥有独立的配额体系。dsh-web-search-tavily 插件向 ctx.web 注册 Tavily 后端,让模型调用 web_search 工具时使用 Tavily 进行检索。

核心功能

该插件向 DSH 的 web 能力缝注册 tavily provider,主要能力包括:

  • 搜索深度与配置:支持 basic 和 advanced 两种搜索深度配置,支持通过 maxResults 和 timeoutMs 控制返回结果数量和请求超时。
  • API Key 管理:支持从环境变量或凭据文件(~/.dsh/.credentials.yaml)解析 TAVILY_API_KEY,也支持直接在配置中填入字面量(字面量优先级高于凭据解析)。
  • 结果标准化:返回结构化结果 {url, title?, snippet?, publishedAt?},支持 URL 去重,与 DSH 其他 web provider 保持一致。
  • 错误处理与取消:抛出标准 WebError(包含 WEB_PROVIDER_CREDENTIAL_MISSING、WEB_PROVIDER_ERROR、WEB_ABORTED 等代码)。支持 AbortSignal 取消,取消信号会合并插件自身的 timeoutMs,能真正终止在途请求。

安装与启用

安装前需满足以下条件:

  • DSH 版本 >= 0.1.2-alpha.2
  • 系统中 git 和 pnpm 在 PATH 上
  • 存在一个 web surface profile(DSH 默认名为 web)

使用官方安装命令:

dsh plugin --profile web add github:my-dsh/dsh-web-search-tavily

安装后需要重启 DSH 使配置生效。

配置方法

凭据配置

通过以下两种方式之一提供 TAVILY_API_KEY:

  1. 环境变量:
    export TAVILY_API_KEY=tvly-...
  1. 凭据文件:
    编辑 ~/.dsh/.credentials.yaml,在 refs: 下添加:
    TAVILY_API_KEY: tvly-...

参数配置

通过用户 patch 层(~/.dsh/profiles/<name>/cordis.patch.yml)覆盖默认配置:

- id: web-search-tavily
  name: '@my-dsh/dsh-web-search-tavily'
  config:
    # 搜索深度:basic(1 credit)或 advanced(2 credits)
    searchDepth: advanced
    # 单次请求返回的最大结果数(默认 8)
    maxResults: 5
    # 单次请求超时时间(毫秒,默认 30000)
    timeoutMs: 20000
    # 字面量 API Key(留空则走凭据/环境变量解析)
    # apiKey: tvly-...

适用场景

该插件适合需要将“模型计费”与“搜索服务计费”分开的场景,或者需要使用 Tavily 独立配额进行精确控制的情况。

生态背景

DSH 采用“一切皆插件”的架构,社区目录与 DeepSeek / 幻方无官方从属关系。该插件由 my-dsh 维护,遵循 MIT 协议。

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

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

小夜