dsh-tavily
Tavily search and extract providers for the DSH web capability seam (ctx.web): runs DSH's built-in web_search and web_fetch through Tavily instead of the shipped providers. 适合拥有Tavily API密钥,希望提升网页搜索和内容抓取质量的用户。
同名パッケージの別リポジトリ
インストール
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:mimoxh/dsh-tavilyドキュメント
README 全文を読む ↗3. 配置项
配置在 cordis.patch.yml 中 web-tavily 行的 config 里;标 是 的字段也可以在 Settings → Tavily 页面里编辑(保存后立即生效,不需要重启)。
| 字段 | 默认 | 设置页 | 说明 |
|---|---|---|---|
apiKey | 无 | 否 | 字面 key(tvly- 开头),优先级最高;页面检测到它会禁用凭据输入 |
apiKeyEnv | TAVILY_API_KEY | 否(高级) | 凭据库引用名;页面按它读写密钥 |
baseURL | https://api.tavily.com | 是 | Tavily 地址;可指向网关/代理,末尾不要斜杠 |
searchPath | /search | 否 | 搜索端点路径,仅当网关改写了路径才改 |
extractPath | /extract | 否 | 抓取端点路径,同上 |
timeoutMs | 15000 | 是 | 单次搜索超时 |
fetchTimeoutMs | 30000 | 是 | 单次抓取超时 |
maxResults | 8 | 是 | 本提供方上限(≤ 20);调用方只能往下压,不能往上抬 |
searchDepth | basic | 是 | basic / advanced / fast / ultra-fast |
topic | general | 是 | general / news / finance |
timeRange | 不发送 | 是 | day / week / month / year |
days | 不发送 | 是 | 仅 topic: news 有意义,最近 N 天 |
country | 不发送 | 是 | 两位国家代码,例如 us / cn |
includeAnswer | false | 是 | false / true / basic / advanced;开启后模型会直接拿到一段答案(消耗额外额度) |
includeDomains | [] | 是 | 只搜这些域名;页面用逗号/空格分隔,patch 里可写数组 |
excludeDomains | [] | 是 | 排除这些域名;同上 |
extractDepth | basic | 是 | basic / advanced |
extractFormat | markdown | 是 | markdown / text |
maxBodyChars | 100000 | 是 | 抓取正文字符上限,超出截断并标记 truncated |
userAgent | dsh-tavily/ | 否 | 请求 UA,默认值跟随 package.json 的 version |
headers | {} | 否 | 额外请求头(网关鉴权用);同名时覆盖默认的 authorization |
页面保存的 volatile 字段写入当前 profile 的 cordis.patch.yml,Host 的下一次请求就会读到,不需要重启。直接改 patch 文件里的非 volatile 字段(searchPath / extractPath / userAgent / headers)仍需让组合包重新加载:桌面端完全重启 DSH;dsh web / dsh tui / dsh headless 下次启动生效。
配置 schema 与设置页
Host 半边现在声明 Config(@deepseek-ai/schemastery),换来:
- 加载时校验:字段类型/枚举/范围写错会在组合时被拒绝,而不是第一次请求才报错;
- 原生设置页:
web-tavilynamespace 被dsh-settings提供给浏览器半边,Settings → Tavily里出现表单; - volatile 立即生效:页面保存后
apply()里的 options thunk 下次请求就重读,不需要重启; - 密钥不进 patch:页面通过 DSH 凭据库写
TAVILY_API_KEY。
代价与注意事项:
- 多了一个包依赖
@deepseek-ai/schemastery ~3.18.5(DSH 自身同款版本)。本地link:安装需要在插件目录npm install;发布包由包管理器安装。 - 缺少该依赖时
index.js会动态 import 失败并降级:搜索/抓取照常,设置页不出现,控制台给出警告。这样不会因为漏装依赖导致整行加载失败。 - DSH 升级 schemastery 时 schema 可能被判定不兼容,需要回归
npm run test:schema;DSH 升级客户端 primitives 时设置页可能需要跟着调整。 searchPath/extractPath/userAgent/headers仍是 patch-only(高级字段,页面不渲染)。
配置 schema 与设置页
Host 半边现在声明 Config(@deepseek-ai/schemastery),换来:
- 加载时校验:字段类型/枚举/范围写错会在组合时被拒绝,而不是第一次请求才报错;
- 原生设置页:
web-tavilynamespace 被dsh-settings提供给浏览器半边,Settings → Tavily里出现表单; - volatile 立即生效:页面保存后
apply()里的 options thunk 下次请求就重读,不需要重启; - 密钥不进 patch:页面通过 DSH 凭据库写
TAVILY_API_KEY。
代价与注意事项:
- 多了一个包依赖
@deepseek-ai/schemastery ~3.18.5(DSH 自身同款版本)。本地link:安装需要在插件目录npm install;发布包由包管理器安装。 - 缺少该依赖时
index.js会动态 import 失败并降级:搜索/抓取照常,设置页不出现,控制台给出警告。这样不会因为漏装依赖导致整行加载失败。 - DSH 升级 schemastery 时 schema 可能被判定不兼容,需要回归
npm run test:schema;DSH 升级客户端 primitives 时设置页可能需要跟着调整。 searchPath/extractPath/userAgent/headers仍是 patch-only(高级字段,页面不渲染)。