DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

@jpa957/dsh-web-search-anysearch

Web Search Anysearch

基于 AnySearch 的 DeepSeek Harness 搜索提供商插件(ctx.web),支持 API 密钥轮询、按密钥冷却时间故障转移,以及设置页面卡片

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

npx -y @deepseek-ai/dsh plugin --profile web add github:JPA957/dsh-web-search-anysearch#0f6e443a1cbf40810f319f710c2953b0c6fe6963
README兼容性版本

兼容性与来源证明

Web Search Anysearch 以 @jpa957/dsh-web-search-anysearch 发布,当前版本为 0.3.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/3

版本

0.3.0stable
2026/9/3
0.1.0stable
2026/9/2

相关插件

正在加载相关插件…

最新版
0.3.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/3
查看源码 ↗
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

@jpa957/dsh-web-search-anysearch

[English] | 中文

An AnySearch-backed search provider plugin for DeepSeek Harness, registered on the ctx.web seam (web-search-anysearch).

The plugin ships two halves, like the built-in providers:

  • Host half: registers the anysearch search provider with round-robin key rotation and per-key cooldown failover, and installs a settings section so the configuration is editable in the web app.
  • Browser half: its own tab in the Settings navigation (Settings → AnySearch) where the API key, endpoint, and result count are filled in the UI — no patch-file editing.

Install

dsh plugin --profile web add @jpa957/dsh-web-search-anysearch

(or from a local checkout: dsh plugin --profile web add /path/to/dsh-web-search-anysearch)

The bundle's patch layer registers the provider automatically. To make it the web seam's default search backend, add the pin to your own patch layer, applied after the bundle's layer:

- id: web
  config:
    searchProvider: anysearch
    fetchProvider: http

Migrating from a hand-mounted copy? Remove the old - insert: row that pointed at the plugin file from your profile patch first — the bundle now supplies its own registration, and a duplicate id would fail the composition. Keep the searchProvider: anysearch pin.

Configuration in the Settings tab

Open the web app's Settings → AnySearch tab: the page lets you set

  • API key — stored in the Host's credentials store under the key reference below; the literal is never sent back to the browser (the card only reports configured / unset).
  • Key reference — the credential/environment name the provider resolves per search; defaults to ANYSEARCH_API_KEY. A comma-separated value forms a key pool.
  • Endpoint base — defaults to https://api.anysearch.com when blank.
  • Max results — result count requested per search (1-10).

Edits are staged and written on Save; Discard reverts. The settings namespace is web-search-anysearch (the section the card edits), so the same configuration can also be managed through the settings document.

Key-pool behavior

Keys are gathered from the credentials reference (comma-split), plus any composition-layer apiKey/apiKeys literals, deduplicated. Searches rotate round-robin; a key-scoped failure — rate limiting (HTTP 429 / "retry after N seconds", honoring the API's retry-after header), quota exhaustion, or auth rejection (401/403) — puts that key on cooldown (60s default, 10min for auth/quota) and retries the next key within the same search, up to six attempts. An exhausted pool aggregates one WEB_PROVIDER_ERROR naming the pool size, masked key, and the API's request_id. An empty pool searches anonymously.

Key safety

Keys enter only through the credentials domain (Settings page or $ANYSEARCH_API_KEY), or through the composition config if you explicitly put them there. This repository contains no secrets; tests use obviously fake as_sk_unit-* keys. Diagnostics mask keys to their first ten characters.

How it behaves

  • Rotation: round-robin cursor advances on every successful search.
  • Failover: key-scoped failures cool the key down and retry the next key inside the same search; non-key-scoped failures (network, 5xx, unprocessable bodies) surface immediately.
  • Self-correction: if every key is cooling down, the earliest-deadline key is retried anyway.
  • Aborts surface as WEB_ABORTED from the fetch, body-parse, and signal phases.
  • Mapping: entries without a URL are dropped, duplicate URLs collapse, content is preferred over snippet; truncated is always false because the web service owns the final maxResults bound (clamped to the API's documented 1-10).

Development

node tests/unit.mjs           # offline unit tests (plain node, no framework)
node tests/client-bundle.mjs  # client-bundle contract smoke test
node tests/live.mjs           # live anonymous smoke test against the real endpoint

The browser half (lib/client.js) is a prebuilt, hand-maintained bundle in the client-module factory format — no build step is required. When installing from a git URL or npm, the committed lib/client.js is what the web app serves.

License

MIT