DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Web Search Anysearch — DeepSeek Harness 插件(DSH Plugin)
← Plugins

@aiwayds/dsh-web-search-anysearch

Web Search Anysearch

适用于 DeepSeek Harness (dsh) 的 AnySearch 网页搜索提供商插件

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

npx -y @deepseek-ai/dsh plugin --profile web add @aiwayds/dsh-web-search-anysearch@0.4.0
README兼容性版本

兼容性与来源证明

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

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

版本

0.4.0stable
2026/9/11
0.3.1stable
2026/9/5
0.3.0
stable
2026/9/3
查看其余 3 个版本收起版本
0.2.0stable
2026/9/1
0.1.2stable
2026/8/29
0.1.1stable
2026/8/29

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 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-web-search-anysearch

A DeepSeek Harness (dsh) plugin that provides web search through AnySearch — "AI Search Infrastructure for Agents".

Requires dsh >= 0.1.5-rc.2 — this plugin targets the dsh RC/stable line only (CI and releases resolve the newest of the latest/next dist-tags at runtime). The alpha line is no longer supported.

The plugin registers a WebSearchProvider (id: "anysearch") with the official ctx.web capability seam, so the model keeps calling the same web_search tool with the same citation formatting and bounds. No third-party SDK is used: the transport follows AnySearch's own reference CLI (anysearch-ai/anysearch-skill).

How it talks to AnySearch

Per the official interface spec (scripts/shared/doc_spec.md in the skill repo):

  • POST https://api.anysearch.com/mcp — JSON-RPC 2.0 tools/call, stateless (no initialize, no session, one connection per request).
  • Authorization: Bearer <API_KEY> is optional — anonymous access works with lower rate limits. A free key is available at anysearch.com/console/api-keys.
  • max_results is capped at 10 by the API.
  • Responses are structured Markdown for agents; the provider parses result blocks into citeable sources, and degrades to passing the whole payload through as content if the format ever drifts — a search never fails just because the parser did.
  • Raw node:https per request (not fetch/undici), matching the official CLI and avoiding a known undici connection-pool hang on this endpoint.

Vertical routing (domain/sub_domain via get_sub_domains), batch_search, and extract remain richer MCP/skill-layer features; this provider deliberately exposes the general search tool to dsh's model-facing web_search (a domain can be pinned in config). Point an MCP client at AnySearch for the full toolset.

Install

One command:

dsh plugin --profile <name> add @aiwayds/dsh-web-search-anysearch

dsh plugin installs the package into the profile (via pnpm) and registers it in dsh.profile.bundles automatically — the package declares dsh.bundle, so the official CLI reconciles the layer stack by itself. Restart dsh. That is the whole install: the plugin mounts itself AND claims the web_search default at the bundle layer, so with zero configuration the model's web_search tool runs on AnySearch (anonymous access needs no key).

Local development: dsh plugin --profile <name> add link:/path/to/dsh-web-search-anysearch (relative path specs anchor to your invoking directory). The manual route — adding the dependency and the bundle entry to ~/.dsh/profiles/<name>/package.json yourself and running pnpm install there — works identically.

@deepseek-ai/* packages are peer dependencies by design: they must resolve to the profile's single shared dsh closure. Putting them in dependencies installs a second cordis instance and crashes the loader.

Uninstall

dsh plugin --profile <name> remove @aiwayds/dsh-web-search-anysearch

The host auto-cleans the whole install: the bundles entry is spliced out of the profile's package.json, the dependency is removed, and the plugin's patch layer drops with the package — including the searchProvider: anysearch claim the patch placed on the host web row, so web_search reverts to the host default (deepseek-official). Restart dsh and it is as if the plugin was never installed.

There is no on-disk state to clean up: the plugin is stateless (no cache, no config writes). The optional API key, if you ever stored one, lives in the host-owned credentials document — remove it there if unwanted.

One caveat: if you hand-copied the selection into your own patch layer (searchProvider: anysearch in the profile or home cordis.patch.yml), that line outlives the plugin — searches then fail gracefully with WEB_PROVIDER_UNAVAILABLE (no provider with that id is registered) until you delete the line.

Configure (all optional)

API key — only needed for higher rate limits. Anonymous access is valid AnySearch usage; when the anonymous quota runs out, the search error names the credential to configure. Store the key in dsh's managed credentials document (~/.dsh/.credentials.yaml):

version: 1
refs:
  ANYSEARCH_API_KEY: <your_key>

Keep another engine as the default? Your own patch layer always outranks the plugin's bundle patch — one entry, no need to touch the plugin:

# profile cordis.patch.yml or ~/.dsh/cordis.patch.yml
- id: web
  config:
    searchProvider: tavily   # or deepseek-official, exa, ...

Verify which engine owns web_search:

dsh --profile <name> --dump-config | grep -A3 'id: web$'

Plugin config (all optional; via a patch layer, read at startup):

FieldDefaultNotes
apiKeyEnvANYSEARCH_API_KEYCredential reference resolved per search
apiKey—Literal key; wins over the reference
endpointhttps://api.anysearch.com/mcpEnv override: ANYSEARCH_ENDPOINT
timeoutMs30000Per-request budget
domain— (general)Pin a vertical: finance, academic, code, … (17 total)
maxResults8Default when the tool sends no bound; API caps at 10

Behavior

  • Markdown result blocks map to sources: title, url, snippet text; relative date:/sitelinks: annotations stay inside the snippet (no ISO dates → publishedAt is never set); duplicate URLs dedupe.
  • Seam error contract: cancellation as WEB_ABORTED; transport failures, non-2xx statuses, JSON-RPC errors, and isError tool results as WEB_PROVIDER_ERROR with the provider's message surfaced.
  • available() is a local check only (parseable endpoint) — anonymous access means no key is required to be usable.

Develop

npm install
npm run check   # tsc --noEmit
npm test        # build + node --test (transport runs against a local HTTP server;
                #  markdown fixtures come from real API payloads)

After editing src/, run npm run build and restart dsh.

License

MIT