DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Web Search Tavily — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-plugin-web-search-tavily

Plugin Web Search Tavily

用于 DeepSeek Harness (dsh) 的 Tavily 搜索提供商包:在 ctx.web 中注册 WebSearchProvider

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-plugin-web-search-tavily@0.1.2
README兼容性版本

兼容性与来源证明

Plugin Web Search Tavily 以 dsh-plugin-web-search-tavily 发布,当前版本为 0.1.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.1.2stable
2026/8/15
0.1.1stable
2026/8/14
0.1.0stable
2026/8/14

相关插件

正在加载相关插件…

最新版
0.1.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
47.5 kB
文件数
20
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 2
周下载
135
安全扫描
✓ v0.1.2 扫描通过
最近提交
2026/8/15
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 search-research 分类下经过校验的插件。

Browser Skill Dsh Plugin@wxg-prc-cpg/browser-skill-dsh-plugin向模型提供 BrowserSkill 浏览器自动化(browser_* 工具)的 DeepSeek Harness 工具插件Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:13 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl 无需密钥;Parallel/Perplexity/SerpBase/DeepSeek 需要密钥),支持时间筛选、平台搜索和 web_fetch,并提供网页设置界面。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。

README

dsh-plugin-web-search-tavily — Tavily backend for dsh's built-in web_search

Install · Config · Behavior · Model Experience · 中文文档

A community Tavily search provider for DeepSeek Harness (dsh). It registers a WebSearchProvider into the ctx.web capability seam, so the shipped web_search tool can be served by Tavily without touching any model-facing schema.

Ships as a dsh bundle: installing it into a profile inserts its plugin row automatically.

Install

dsh plugin --profile web add dsh-plugin-web-search-tavily

Provide the API key through the environment (TAVILY_API_KEY, e.g. in $DSH_HOME/.env) or through plugin config. When more than one search provider is usable in your composition, pin the selection with $DSH_WEB_SEARCH_PROVIDER=tavily or by patching the web row's searchProvider in your profile's cordis.patch.yml; with Tavily as the only usable provider, selection is automatic.

Verify without booting, then boot:

dsh --profile web --dump-config   # shows a "# == dsh-plugin-web-search-tavily" layer
dsh --profile web

Config

Override any field by patching the web-search-tavily row in your profile's cordis.patch.yml (a patch replaces the whole config value — restate the fields you keep):

KeyDefaultMeaning
apiKey$TAVILY_API_KEYTavily API key. Empty makes the provider registered-but-unavailable.
baseURLhttps://api.tavily.comEndpoint base; /search is appended.
searchDepthbasicTavily search_depth. advanced returns richer snippets at extra credit cost.
topicgeneralTavily topic vertical (general or news; news populates publishedAt).
includeAnswertrueRequest Tavily's generated answer; it surfaces as the search result's content.
numResults(omitted)Default result count when a request carries no maxResults. The seam still enforces the tool-layer bound either way.
- id: web-search-tavily
  config:
    searchDepth: advanced
    includeAnswer: false

Behavior

  • POST {baseURL}/search with Authorization: Bearer <key>, honoring the request AbortSignal; redirects are refused.
  • results[].content maps to snippet, published_date to publishedAt; entries without a non-blank snippet are dropped rather than padded with invented text.
  • A non-blank answer maps to the result's content; nothing is fabricated when Tavily returns none.
  • Cancellation surfaces as WebError code WEB_ABORTED; every other failure (transport, non-2xx, unprocessable body) is WEB_PROVIDER_ERROR with the richest provider detail available and a preserved cause chain. A non-2xx JSON error body's detail.error / detail / error / message fields are tried in that order.
  • available() is a cheap local check (key present, base URL parseable, bounds valid) and never touches the network.

Model Experience

What the model sees

Nothing from this package directly. The model-facing web_search schema and rendering belong to @deepseek-ai/dsh-tool-web; this provider only changes which backend serves the call. Result content (Tavily's generated answer, when enabled) and per-source title/snippet/publishedAt flow through the tool's ordinary rendering.

Token effect

includeAnswer: true adds one provider-generated answer paragraph to each search result the model reads. searchDepth: advanced tends to return longer snippets. Both are provider-output effects; the tool-layer maxResults bound is enforced by the seam regardless of provider.

KV Cache effect

None. Search results enter the conversation as ordinary tool results; this package contributes no prompt sections and changes no request prefix.

Development

npm install
npm run build
npm test                      # keyless: loopback double asserts wire shape and error taxonomy
TAVILY_API_KEY=tvly-... npm test   # adds the live smoke (self-skips without the key)

Keyless tests drive the real provider against a loopback HTTP double and assert the exact request shape (method, path, bearer header, user-agent, body fields), response mapping, the error taxonomy, and cancellation. The live smoke verifies the wire contract against the real API and self-skips without a key; it last passed against the live Tavily API at v0.1.1 (2026-08).

Known Limitations and Deferred Work

  • The Tavily wire contract is pinned to its 2026-08 public documentation. Field names (search_depth, include_answer, max_results) are this package's responsibility to track; the live smoke is the drift detector, last green against the live API at v0.1.1.
  • include_domains / exclude_domains / days are not exposed. The seam's request carries only query and maxResults today; domain filtering would be provider config rather than a per-call control, and no consumer has asked for it yet.
  • No retry policy. A transient Tavily failure surfaces as one WEB_PROVIDER_ERROR; retrying is left to the caller or a future seam-level policy, matching the in-tree providers.
  • dsh is in developer preview. This package pins @deepseek-ai/dsh-web to the currently published pre-release; expect lockstep bumps while upstream iterates.

License

MIT