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:
- 环境变量:
export TAVILY_API_KEY=tvly-...
- 凭据文件:
编辑~/.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 协议。