把默认搜索后端换成 Tavily,保留原工具与卡片
29.7/100
综合分
0
GitHub 星标
33
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-web-tavilynpm 源 · dsh-web-tavily 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 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。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
VviLliAm-qwq/dsh-web-tavily
把默认搜索后端换成 Tavily,保留原工具与卡片
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,362已汉化DSH
71.4
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,076已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,814已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。