본문으로 건너뛰기
Z

dsh-web-search-tavily

zh1rv/dsh-web-search-tavily

DeepSeek Harness 的 Tavily 搜索插件

설치

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

README

English | 中文

dsh-web-search-tavily

[!TIP] 想让 AI 帮你装好? 把下面这句话复制发给你的 DeepSeek Harness 智能体(或任何 AI 助手)即可:

请帮我把 dsh-web-search-tavily 插件安装并启用到我当前的 DeepSeek Harness(仓库:https://github.com/Zh1rV/dsh-web-search-tavily),执行 dsh plugin --profile web add github:Zh1rV/dsh-web-search-tavily,重启 Harness 后指导我配置 TAVILY_API_KEY。

一个可直接安装到 DeepSeek Harness 的 Tavily 联网搜索插件。安装后,它会把 Harness 的 web_search 请求路由到 Tavily Search API,并在设置页提供完整配置界面。

一键安装

在安装了 Harness CLI 的 PowerShell 或终端中执行:

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

然后完全退出并重新启动 Harness。插件会自动加入 web profile,不需要手工修改 cordis.patch.yml、复制 node_modules 或重新编译源码。

卸载:

dsh plugin --profile web remove dsh-web-search-tavily

卸载不会删除 web-search-tavily 设置或 Harness 凭据中的 API Key。重新启动后,当前版本自带的 Tavily 实现会恢复(如果运行时原本包含它)。

使用方式

安装并重启后有两个入口:

  • 设置 → 插件 → Tavily 搜索:配置启用状态、API Key 凭据名、Base URL、搜索深度、主题、最大结果数和 answer 模式。
  • 会话标题栏 → Tavily:查看当前状态、快速启用/停用和保存 API Key。

API Key 通过 Harness 凭据服务保存。输入框不会回显已保存的密钥,密钥不会写入普通设置文件、日志或模型消息。

默认凭据名是 TAVILY_API_KEY。也可以在设置里改为其他凭据名,或在启动环境中提供同名变量。

与 Harness 内置 Tavily 的关系

较新的 Harness 已经在基础 bundle 中包含 Tavily。本插件的自动 patch 会:

  1. 禁用基础 bundle 中的同名 Host entry;
  2. 插入独立插件的 Host 和 Client entry;
  3. 继续使用原来的 web-search-tavily 设置命名空间和 tavily provider ID。

这样安装独立版本不会产生两个 Tavily provider,也不会删除已有配置。设置页检测到内置 Tavily 卡片时会隐藏独立卡片,确保用户只看到一张 Tavily 配置卡。

旧版 Harness

插件会检测当前 Harness 的 Web 能力:

  • 动态切换:可以在设置里立即启用或停用 Tavily。
  • 仅启动时选择:旧版缺少运行时 provider 切换接口,插件仍能加载,但界面会提示需要在启动配置中选择 Tavily。
  • 不可用:旧版没有可用的 Web provider 接口,界面会显示升级提示,而不是让整个 Harness 启动失败。

如果旧版没有 settings.plugin.item,会话顶部的 Tavily 面板仍提供配置入口;普通网页模式不会额外暴露任何 Electron 专用功能。

配置项

配置项默认值说明
apiKey字面量密钥,仅建议用于受控配置;优先使用凭据服务
apiKeyEnvTAVILY_API_KEY凭据服务或启动环境中的引用名
baseURLhttps://api.tavily.comAPI 基础地址,末尾自动追加 /search
enabledfalse是否让 web_search 使用 Tavily
searchDepthbasicbasicadvancedfastultra-fast
topicgeneralgeneralnewsfinance
maxResults5结果数量,范围 1-20
includeAnswerfalse是否请求 Tavily 额外生成 answer

默认关闭 Tavily answer、原始网页内容和图片,避免不必要的 token 消耗。

工作方式

模型调用 web_search
        ↓
Harness ctx.web
        ↓
Tavily Search API(启用时)
        ↓
统一的 WebSearchResult
        ↓
模型上下文

provider ID 为 tavily,设置命名空间为 web-search-tavily

高级手工配置

普通用户不需要使用 cordis.example.yml。需要手工管理 profile 层时,可以参考该文件中的 entry:

- insert:
    - id: web-search-tavily-standalone
      name: dsh-web-search-tavily
      inject: [web]
      config:
        enabled: false

手工安装必须确保 profile 能解析 dsh-web-search-tavily 及其 Harness peer dependencies。标准 dsh plugin 命令会自动完成依赖安装和 bundle 注册。

安装自检

从 Harness runtime 目录执行:

node node_modules/dsh-web-search-tavily/tests/verify.mjs

自检会检查 package bundle 声明、patch 内容、Host provider、设置切换、凭据错误映射和客户端 bundle。最后再确认:

  1. 设置 → 插件中出现 Tavily 搜索卡片;
  2. 会话标题栏出现 Tavily 按钮;
  3. 执行一次联网问题后,日志和结果确认请求经过 Tavily。

构建和发布

维护者需要在拥有 Harness peer dependencies 的环境中运行:

npm run build
npm run verify
npm run verify:client
npm run verify:pack

仓库提交 lib 构建产物,GitHub 安装用户不需要本地 TypeScript 或 Harness 源码路径。

许可证

MIT。部分代码源自 DeepSeek Harness 的 MIT 许可实现,详见 LICENSE

관련 플러그인