DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

@clinkai/dsh-web-search-searxng

Web Search Searxng

由 SearXNG 支持的 DeepSeek Harness Web 接口(ctx.web)网络搜索提供程序;当 SearXNG 无法访问时,自动回退到内置的 DeepSeek 搜索。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:w384/clinkai-dsh-web-search-searxng#7a290c3c692d8c8b846572677dd23a3c32a687b3
README兼容性版本

兼容性与来源证明

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

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/1

版本

0.2.0stable
2026/10/1

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/10/1
查看源码 ↗
README Badge

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

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

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

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

相关插件

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

Ab Wechat Scrapedsh-ab-wechat-scrape--- description: "树外 wechat_scrape 工具:获取微信公众号文章,过滤推广区块,并将每篇文章保存为 Markdown 文件,供此机器的 dsh 配置文件维护者使用。" kind: "package-reference" ---Ab Market Researchdsh-ab-market-research一个树外 DeepSeek Harness 插件:将 trade_search 工具(多轮扩展方面的查询规划、出版商级别排序、来源多样性、JSON 快照)及其浏览器卡片集成在一个包中。Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:24 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel 无需密钥;通过 MCP 使用 Zhihu 全局/站内搜索,以及 Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao,需密钥;OpenAI/Gemini/Claude

README

@clinkai/dsh-web-search-searxng

A SearXNG-backed web_search provider for the DeepSeek Harness web capability seam (ctx.web) — with automatic fallback to another provider (by default the built-in DeepSeek search) when SearXNG is unreachable.

One package, two providers on the public seam:

provider idbehaviour
searxngpure SearXNG: GET {baseUrl}/search?q=<query>&format=json
search-fallbackSearXNG first; retries through fallbackProvider when the backend is down, hangs, answers 5xx, or (opt-in) returns nothing

Pin the seam to whichever one you want with web.searchProvider. Nothing here patches DSH source or imports a DSH-internal export, so a DSH upgrade overwrites nothing.

  • No API key, no billing — SearXNG aggregates many engines for free.
  • Never leaves search broken — if Docker/SearXNG is down, search-fallback transparently uses the built-in DeepSeek search.

Run SearXNG

SearXNG has no native Windows support, so run it with Docker (docker compose up -d):

services:
  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    ports:
      - "127.0.0.1:18081:8080"   # 8080 is usually taken by the DSH Web GUI
    volumes:
      - ./config:/etc/searxng:rw
    restart: unless-stopped

Make sure format=json is enabled in config/settings.yml:

search:
  formats:
    - html
    - json

Engine notes (measured, not guessed)

  • Domestic engines are off by default. sogou and 360search answer fine without any proxy, but SearXNG ships them disabled; enable them explicitly or a default search returns nothing while the reachable engines are all blocked ones.
  • google works whenever the host tunnel is up (or when you point the engine at a local proxy, see below); it periodically gets CAPTCHA-suspended on a shared VPN exit and recovers by itself.
  • brave (HTTP 429), duckduckgo and quark (CAPTCHA) are bot-blocked — a proxy does not fix that.
  • An engine that failed while DNS/tunnel was not ready is marked Suspended by SearXNG for a while; restart the container before concluding "it cannot connect".

Per-engine proxy (keep domestic engines direct, send only the blocked ones through a local proxy client):

engines:
  - name: sogou
    disabled: false
  - name: google
    disabled: false
    proxies:
      all://:
        - http://host.docker.internal:12000
    timeout: 8.0

Install

The package ships a dsh.bundle.patch, so installing it is enough: DSH mounts the providers as a bundle layer and there is nothing to hand-wire.

# from npm (once published)
dsh plugin --profile web add @clinkai/dsh-web-search-searxng

# straight from GitHub — no registry needed, the built entry is committed
dsh plugin --profile web add github:w384/clinkai-dsh-web-search-searxng

# from a local checkout, or from a packed tarball
dsh plugin --profile web add link:/path/to/clinkai-dsh-web-search-searxng
dsh plugin --profile web add ./clinkai-dsh-web-search-searxng-0.2.0.tgz

Override the row by id to pin this instance's SearXNG origin, and point the seam at one of the two providers. In $DSH_HOME/profiles/<profile>/cordis.patch.yml:

- id: web-search-searxng
  config:
    baseUrl: http://127.0.0.1:18081
    fallbackOnEmpty: true
- id: web
  config:
    searchProvider: search-fallback   # or: searxng

Config

keydefaultmeaning
baseUrlhttp://127.0.0.1:8080SearXNG origin
timeoutMs15000per-request timeout for the SearXNG call
fallbackEnabledtrueregister the search-fallback provider
fallbackProviderdeepseek-officialprovider id the dispatcher retries through
fallbackOnEmptyfalsetreat an empty SearXNG result as a failure and retry the fallback

When it falls back

  • Connection-level failure — Docker / SearXNG is down (ECONNREFUSED / ETIMEDOUT / ENOTFOUND …; walks the full cause chain).
  • Timeout — SearXNG hung and the caller did not cancel.
  • HTTP 5xx — SearXNG is up but failing.
  • Empty result — only when fallbackOnEmpty: true.

Anything else (a caller cancellation, a 4xx like a bad request) is passed through unchanged. The searxng and deepseek-official providers must both stay registered — their own plugins — because the dispatcher reads them from the seam registry at call time.

Troubleshooting

  • Port 8080 conflict — the DSH Web GUI itself binds 127.0.0.1:8080 by default, so a SearXNG port mapping on 8080 silently fails (the container runs but is unreachable). Use a different host port (e.g. 18081) and set baseUrl accordingly.
  • Windows reserved port ranges — Hyper-V/WSL NAT reserves ranges (e.g. 8804-8903), and binding inside one fails with bind: An attempt was made to access a socket in a way forbidden by its access permissions even though nothing listens. Check with netsh interface ipv4 show excludedportrange protocol=tcp.

License

MIT