🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Tavily 搜索源 VviLliAm-qwq/dsh-web-tavily

DeepSeek Harnessv0.4.2
VviLliAm-qwq52 天前有提交已提供中文文档扫描:含敏感能力

把默认搜索后端换成 Tavily,保留原工具与卡片

29.7/100
综合分
0
GitHub 星标
33
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-web-tavily
npm 源 · dsh-web-tavily 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
数据截至 2026/10/23·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 52 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-web-tavily @ 0.4.2
✓Node 引擎要求 ^22.19 || >=24 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/21 23:54:43

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 发起网络请求
    lib/index.js:278
    response = await fetch(endpoint, {
  • 读取本地文件
    lib/diag.js:27
    if (statSync(path).size > MAX_LOG_BYTES) {
  • 读取本地文件
    lib/diag.js:28
    writeFileSync(path, readFileSync(path, 'utf8').slice(-Math.floor(MAX_LOG_BYTES / 2)));
  • 写入本地文件
    lib/diag.js:28
    writeFileSync(path, readFileSync(path, 'utf8').slice(-Math.floor(MAX_LOG_BYTES / 2)));
  • 写入本地文件
    lib/diag.js:37
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    lib/diag.js:38
    appendFileSync(path, line);
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-web@deepseek-ai/dsh-web-fetch-http@deepseek-ai/dsh-credentials@deepseek-ai/dsh-launch-environment@deepseek-ai/dsh-settings
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 注册Tavily服务商

为 dsh 提供 Tavily 搜索服务商:在 ctx.web 接缝上注册 tavily 服务商,让 web_search 工具走 Tavily Search API

README

由 DeepSeek 最新模型翻译生成
dsh-web-tavily ci 中文 · English 为 dsh-TUI 构建。 dsh host 平面 cordis 插件:为 dsh 的 web 能力 seam(ctx.web)注册搜索提供商 tavily,让 web_search 工具默认走 Tavily Search API(POST https://api.tavily.com/search)。 - 不替换 web_search 工具本身:工具、系统提示、展示卡片均保持原样,只有搜索后端换成 Tavily。 - 保留 DeepSeek 原生搜索(web-search-deepseek)为可切换备选;想切回只需把 web.searchProvider 改为 deepseek-official 或删掉该键。 - key 一律按引用解析(默认 TAVILY_API_KEY):优先凭证服务(~/.dsh/.credentials.yaml 的 refs:),其次启动环境变量,最后才是配置里的字面 apiKey。provider 不保留 key。 工作原理 1. 注册 provider(id = tavily)到 ctx.web;web.searchProvider: tavily 使其成为默认选择。
展开完整文档(README 剩余 1 节)
dsh-web-tavily

ci

中文 · English

为 dsh-TUI 构建。

dsh host 平面 cordis 插件:为 dsh 的 web 能力 seam(ctx.web)注册搜索提供商 tavily,让 web_search 工具默认走 Tavily Search API(POST https://api.tavily.com/search)。

- 不替换 web_search 工具本身:工具、系统提示、展示卡片均保持原样,只有搜索后端换成 Tavily。
- 保留 DeepSeek 原生搜索(web-search-deepseek)为可切换备选;想切回只需把 web.searchProvider 改为 deepseek-official 或删掉该键。
- key 一律按引用解析(默认 TAVILY_API_KEY):优先凭证服务(~/.dsh/.credentials.yaml 的 refs:),其次启动环境变量,最后才是配置里的字面 apiKey。provider 不保留 key。

工作原理

1. 注册 provider(id = tavily)到 ctx.web;web.searchProvider: tavily 使其成为默认选择。
2. web_search 被调用时,seam 把 { query, maxResults } 交给本 provider。
3. provider 解析 key(每次操作时快照,一次搜索不会混用两个配置版本)→ 请求 {baseURL}/search。
4. 响应映射:results[] → sources[](title / url / content→snippet,若有 published_date → publishedAt),顶层 answer(Tavily 的 AI 总结)→ 工具的可选 content 摘要。
5. 取消(信号)→ WEB_ABORTED;HTTP 失败 / 不可解析 → WEB_PROVIDER_ERROR;缺 key → WEB_PROVIDER_CREDENTIAL_MISSING(错误信息带配置指引)。

默认配置

| 字段 | 默认值 | 说明 |
| apiKeyEnv | TAVILY_API_KEY | 凭证引用(环境变量名) |
| apiKey | (无) | 字面 key,仅当不想走引用时使用 |
| baseURL | https://api.tavily.com | 可用环境变量 TAVILY_BASE_URL 覆盖 |
| searchDepth | basic | basic / advanced(advanced 更深度、额度消耗更高) |
| topic | general | general / news |
| includeAnswer | true | 是否请求 Tavily 的 AI 总结(映射为 content) |
| maxResults | 10 | 兜底结果数上限(web_search 每次实际传 8,Tavily 上限 20) |

安装

1. 装进 profile —— 它以 dsh-web-tavily 发布在 npm 上:

dsh plugin --profile dsh-tui add dsh-web-tavily
从本仓库本地安装(开发):
dsh plugin --profile dsh-tui add file:

2. 把 web 服务默认搜索改为 tavily(必须写在 profile 用户补丁层,settings.yaml 的 web: 段对服务配置无效)——编辑 ~/.dsh/profiles/dsh-tui/cordis.patch.yml 追加:

- id: web
name: '@deepseek-ai/dsh-web'
config:
searchProvider: tavily
fetchProvider: http-trusted

web 行由基座 dsh-base 提供,不要用 insert: 新增同 id 行——那会撞 id 直接崩 duplicate loader entry id: web;这里要按 id 覆盖既有行,且覆盖是*整行重写,需写全 fetchProvider。
3. 重启 dsh-tui(/restart)生效。

配置

插件自身的设置段放 ~/.dsh/settings.yaml(设置页「Plugin configuration」里也会出现「Web search Tavily」类):

dsh-web-tavily:
apiKeyEnv: TAVILY_API_KEY
searchDepth: basic
topic: general
includeAnswer: true
maxResults: 10

可用环境变量覆盖:TAVILY_BASE_URL(API 源),凭证引用键默认 TAVILY_API_KEY。

设置页把这个命名空间渲染成一张中英双语卡片(「联网搜索(Tavily)」/ Web search (Tavily)),每个字段都有说明;日常只需要改「凭证引用」那一项。密钥本身永远不进设置文档。

key 存放(本机,不进代码库)

在 ~/.dsh/.credentials.yaml 的 refs: 下添加(该文件属于本机凭证,不要提交/外发):

refs:
TAVILY_API_KEY: 'tvly-...'

切回 DeepSeek 原生搜索

把 web.searchProvider 改为 deepseek-official(或删除该键、让 seam 用唯一可用 provider)。注意 seam 不支持自动回退:Tavily 配置失效时搜索会明确报错,而不会悄悄走 DeepSeek。

代理兼容 fetch(http-trusted)

本插件同时注册 http-trusted fetch provider,解决 fake-IP 代理环境(Clash 等把域名解析为 198.18.0.0/15 假地址)下 web_fetch 被官方 http provider 的安全预检拒绝的问题(WEB_BLOCKED_URL: resolves to a non-public IP address)。

- 复用官方 @deepseek-ai/dsh-web-fetch-http 传输层:仅放宽「解析结果必须是公网 IP」这一预检——额外放行 198.18.0.0/15(代理 fake-IP 段),其余全部照旧:内网/环回/保留段照常拒绝(WEB_BLOCKED_URL)、IPv6 答案一律丢弃、地址 pinning、同源重定向、内容类型白名单、字节/字符上限、无凭证 cookie 等防护原封未动。
- ⚠️ 安全边界:SSRF 防护从「宿主内强校验」退化为「信任本机代理的 DNS 决策」,网络的最终裁决权移交代理分流规则。仅适用于单用户本机 + 自制可信代理;多人共用/公网服务请回退官方 http(见下)。
- IP 来源特殊(http://192.168.x.x/ 之类)仍会被拒绝。

~/.dsh/profiles/dsh-tui/cordis.patch.yml 的 web 行 config: searchProvider: tavily fetchProvider: http-trusted

回退官方 http:把 fetchProvider 改回 http(代价:fake-IP 代理环境下 web_fetch 将再次被拒,但安全预检完整)。

加载失败排查

- 插件启动报 duplicate loader entry id: web:profile cordis.patch.yml 误用 insert: 新增同 id 行,按上文改写为直接行。
- web_search 报 WEB_PROVIDER_CONFIGURED_MISSING:插件未加载(检查 bundles 列表与上述补丁)。
- web_fetch 报 WEB_BLOCKED_URL ... non-public IP:代理假 IP 预检拒绝,改用 http-trusted 或关闭代理 fake-IP 模式。

限制说明

- Tavily key 缺失或失效 → web_search 报错(WEB_PROVIDER_CREDENTIAL_MISSING / WEB_PROVIDER_ERROR),按错误信息指引配置即可。
- max_results 会被钳制到 Tavily 上限 20。
- searchDepth / topic 非法值会直接报错,不会悄悄回退默认。

发布

- 仓库:(公开)
- 发布方式:v tag 驱动 .github/workflows/release.yml,经 npm 可信发布(OIDC)上传——仓库内不存放任何令牌。

使用

装好并配置 key 后,照常让模型调用 web_search 即可;工具返回的 Sources: 列表与可选总结即来自 Tavily。

许可

MIT — 见 LICENSE。
预览分享卡片长什么样 ↓VviLliAm-qwq/dsh-web-tavily
分享 · DeepSeek Harness Hub
VviLliAm-qwq/dsh-web-tavily

把默认搜索后端换成 Tavily,保留原工具与卡片

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部