dsh-web-search-tavily
将 Tavily 配置为 DeepSeek Harness(DSH)网页搜索提供方的持久化插件。注册搜索提供方 tavily(接管 web_search 路由)、tavily_search 模型工具,并在「设置 → 插件 → 插件配置」提供配置卡片,可随时开关 Tavily、切换回 DeepSeek 默认搜索通道。
特性
- 搜索提供方:注册
tavily provider,web_search 工具整体走 Tavily(answer + 来源 + 可选图片)。
- 模型工具:
tavily_search 工具,模型可显式调用。
- 设置卡片:设置 → 插件 → 插件配置 →「Tavily 搜索」卡片,可视化配置全部选项。
- 一键开关:关闭后
web_search 自动回退 DeepSeek 默认搜索通道,无需改动组合配置。
- 凭据安全:API Key 走 DSH 凭据服务(环境变量 /
~/.dsh/.credentials.yaml),配置端不落盘密钥。
- 重启持久:配置存于
~/.dsh/settings.yaml,随 profile 持久化。
安装
-
将本包加入 profile 依赖(~/.dsh/profiles/web/package.json):
{
"dependencies": {
"dsh-web-search-tavily": "github:faettt/dsh-web-search-tavily"
}
}
然后 pnpm install。
-
在 cordis.patch.yml 追加两段(接管搜索路由 + 加载插件):
- insert:
- id: web-search-tavily
name: 'dsh-web-search-tavily'
config:
apiKeyEnv: TAVILY_API_KEY
- id: web
config:
searchProvider: tavily
-
配置 API Key(二选一):
- 环境变量:
export TAVILY_API_KEY=tvly-xxxx(加到 ~/.zshrc)
- 或直接在设置卡片「API Key」字段填写保存
-
重启 DSH。
配置项
| 字段 |
默认 |
说明 |
enabled |
true |
开关;关闭后搜索走默认通道 |
apiKeyEnv |
TAVILY_API_KEY |
凭据引用名(环境变量/凭据服务) |
apiKey |
— |
字面 API Key(secret,不走设置文档) |
searchDepth |
basic |
basic / advanced |
maxResults |
5 |
每次搜索最多来源条数(1-20) |
includeAnswer |
true |
是否生成总结 answer |
includeImages |
false |
是否附带图片结果 |
topic |
general |
general / news / finance |
days |
— |
仅搜索最近 N 天内容 |
registerTool |
true |
是否注册 tavily_search 模型工具 |
架构说明
- Host 半部(
lib/index.js):Tavily provider(ctx.web.registerSearchProvider)、tavily_search 工具、设置命名空间 web-search-tavily(installSettingsSection)、配置端点 GET/POST /api/tavily-settings(webServer 路由,host 直读写 settings,避开 wire 层命名空间暴露白名单)。
- Client 半部(
lib/client.js):设置卡片(settings.plugin.item 槽位),通过同源 fetch 读写配置端点。
- 开关原理:
enabled=false 时 provider available() 返回 false,并将 web.searchProviderId 置为 undefined——dsh-web 的选择逻辑自动落到唯一可用通道(DeepSeek 默认搜索)。
开发
# 本地验证 host 半部
node --input-type=module -e 'import("dsh-web-search-tavily").then(m => console.log(Object.keys(m)))'
# client bundle 为手写 ModuleLoader 格式,修改后同步两份:
cp lib/client.js ../../node_modules/dsh-web-search-tavily/lib/client.js
修改 host 半部后需重启 DSH;修改 client bundle 后由 HMR 自动生效(刷新浏览器即可)。
License
MIT