acdcgz/dsh-web-search-searxng

面向 DeepSeek Harness(ctx.web)的基于 SearXNG 的 WebSearchProvider——自托管,零单次搜索模型成本,多引擎聚合

Project Overview项目介绍

This is a native plugin built exclusively for DeepSeek Harness (DSH), that implements a SearXNG-backed WebSearchProvider for DSH's built-in web capability seam. It connects to a user-provided SearXNG instance via its JSON API, maps the aggregated multi-engine search results into DSH's standardized WebSearchResult format, and registers the provider to ctx.web to make search available to DSH agents. It ships with a DSH bundle patch manifest that allows one-command installation via the dsh plugin add CLI command, and requires no manual YAML configuration editing for most standard setups. All core configuration values can be pulled directly from process environment variables, so no additional config file edits are needed after installation.

This plugin is designed for DSH users who want a private, self-hosted web search solution that avoids sending search queries to third-party commercial search vendors. It is also a cost-effective alternative to search implementations that require full LLM inference calls for each search, because each search only requires a single HTTP GET request to your SearXNG instance. SearXNG aggregates results from dozens of popular public search engines including Google, Bing, DuckDuckGo, Baidu, and Brave, all behind a single unified endpoint for DSH to use. You can point this plugin at any accessible SearXNG instance, whether it runs locally on Docker, on your local area network, or as a public hosted instance.

To use this plugin, you need a running SearXNG instance that is reachable from your DSH host, with the default base URL set to http://localhost:8080. If you run SearXNG locally via Docker Desktop, the default rate limiter in SearXNG will block API requests because Docker routes host traffic through a gateway IP. This plugin adds an X-Forwarded-For: 127.0.0.1 header to all requests, so you just need to adjust your SearXNG limiter.toml to trust the local IP range to bypass rate limits. The plugin is released under the permissive open source MIT license, includes 17 unit tests to validate core functionality, and is free to use and modify.

这是一款为DeepSeek Harness开发的原生插件,为DSH的web能力接口提供基于SearXNG的网页搜索能力实现。它调用SearXNG实例的JSON搜索接口,将聚合后的多引擎搜索结果映射为DSH要求的标准化Web搜索结果格式,通过ctx.web注册提供搜索服务,还支持从环境变量或DSH凭证系统读取API密钥等配置。该插件支持一键安装,自带DSH补丁声明,无需手动编辑YAML配置文件就能完成部署。

该插件适合希望自建搜索服务、避免第三方搜索厂商获取查询数据,同时控制搜索成本的DSH用户使用。和依赖大模型调用的搜索方案不同,一次搜索仅发送一次HTTP GET请求,成本低速度快,还支持聚合多个主流搜索引擎的结果。用户只需指定可访问的SearXNG实例地址,就能让DSH获得私密可控的网页搜索能力,适配本地Docker、局域网实例或公开公共实例。

使用该插件需要预先部署一个可被DSH主机访问的SearXNG实例,默认地址为http://localhost:8080,用户需要通过环境变量配置实例地址、最大结果数、搜索语言等参数。如果SearXNG运行在Docker Desktop中,需要调整SearXNG的限流配置配合插件的请求头绕过默认API配额限制。该插件采用MIT许可证开源,不向用户收取任何使用费用,附带17项单元测试保障功能可用性。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • Only 6 stars - very few users, little community feedback星标只有 6,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:acdcgz/dsh-web-search-searxng

把 acdcgz/dsh-web-search-searxng 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

@deepseek-ai/dsh-web-search-searxng

English | 中文

A SearXNG-backed WebSearchProvider for the DeepSeek Harness web capability seam (ctx.web). It calls a SearXNG instance's JSON API (/search?format=json) and maps the aggregated results into the seam's normalized WebSearchResult.

This is an implementation package: it registers a provider into ctx.web, resolves an optional API key through ctx.credentials or the process environment, records the auxiliary request in the initiating Agent session when one exists, and does not register a model-facing tool. It is a function/namespace plugin (inject: ['web']).

Why SearXNG

  • Self-hosted & private: your queries go to your own instance, not a third-party search vendor.
  • Zero per-search model cost: unlike provider-backed search that issues a full model call, one search is a single HTTP GET — cheap and fast.
  • Multi-engine aggregation: SearXNG merges Bing, Brave, Baidu, Google, DuckDuckGo, … behind one endpoint.
  • Portable: point baseURL at any SearXNG — local Docker, a LAN instance, or a public one.

Requirements

  • A running SearXNG instance reachable from the DSH host (default http://localhost:8080).
  • DeepSeek Harness profile with the web seam mounted (every standard profile ships it).

Install

One-command install (bundle)

The package ships a dsh.bundle.patch declaration (cordis.patch.yml), so a single dsh plugin add registers the plugin and switches the web seam to it — no YAML editing:

dsh plugin --profile web add /path/to/dsh-web-search-searxng

Configuration is environment-first — set these before launching dsh and no config editing is required at all:

export SEARXNG_BASE_URL=http://localhost:8080   # optional; default http://localhost:8080
export SEARXNG_MAX_RESULTS=10                    # optional; default 10
export SEARXNG_LANGUAGE=en                       # optional; 'all' (no param) by default

Manual install (local development)

# 1. Make the package resolvable from the profile's node_modules
ln -sfn /path/to/dsh-web-search-searxng \
        "$DSH_HOME/profiles/node_modules/@deepseek-ai/dsh-web-search-searxng"

# 2. Register the plugin and switch the search provider in cordis.patch.yml:

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev dsh-landscape 下一个 Next context-assembler-DSH →