🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

SearXNG 搜索源 rogerdigital/dsh-searxng

DeepSeek Harnessv0.4.0
rogerdigital43 天前有提交已提供中文文档扫描:含敏感能力

为智能体接入免费自托管的无密钥网页搜索

34.9/100
综合分
7
GitHub 星标
372
npm 周下载
—/5
用户评分

数据截至 2026/9/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-searxng
npm 源 · dsh-searxng 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · search
暂无时间戳·判据 →
装得上吗[实装验证]✓
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
数据截至 2026/10/24·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 43 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-searxng @ 0.4.0
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 02:40:19

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 61 处,展示前 21 条)
  • 发起网络请求
    lib/index.mjs:118
    const response = await options.fetch(options.url, {
  • 读取密钥环境变量
    lib/cli.mjs:5888
    if (node_process.env.LOG_TOKENS) console.log("|", cst.prettyToken(source));
  • 写入本地文件
    lib/cli.mjs:7074
    await fs.rename(path, failedPath);
  • 删除本地文件
    lib/cli.mjs:7092
    await fs.rm(failedPath, { force: true });
  • 删除本地文件
    lib/cli.mjs:7097
    await fs.rm(backupPath, { force: true });
  • 写入本地文件
    lib/cli.mjs:7104
    await fs.rename(path, failedPath);
  • 删除本地文件
    lib/cli.mjs:7107
    await fs.rm(path);
  • 删除本地文件
    lib/cli.mjs:7120
    await fs.rm(failedPath, { force: true });
  • 写入本地文件
    lib/cli.mjs:7131
    await fs.mkdir(root, {
  • 写入本地文件
    lib/cli.mjs:7154
    await fs.chmod(temporaryPath, 384);
  • 写入本地文件
    lib/cli.mjs:7155
    await fs.rename(temporaryPath, path);
  • 删除本地文件
    lib/cli.mjs:7158
    if (originalExists) await fs.rm(backupPath);
  • 删除本地文件
    lib/cli.mjs:7167
    await fs.rm(temporaryPath, { force: true });
  • 读取本地文件
    lib/cli.mjs:7200
    source = await this.fs.readFile(this.statePath, "utf8");
  • 写入本地文件
    lib/cli.mjs:7230
    await this.fs.mkdir(this.root, {
  • 读取本地文件
    lib/cli.mjs:7420
    if (statSync(new URL(CATALOG_ASSET, candidate)).isFile()) return candidate;
  • 读取本地文件
    lib/cli.mjs:7442
    present = statSync(new URL(assetPath, assetRoot)).isFile();
  • 读取本地文件
    lib/cli.mjs:7483
    source = readFileSync(new URL(CATALOG_ASSET, root), "utf8");
  • 读取本地文件
    lib/cli.mjs:7658
    return await Promise.all([this.fs.readFile(new URL(composePath, root), "utf8"), this.fs.readFile(new URL(settingsPath, root), "utf8")]);
  • 读取本地文件
    lib/cli.mjs:7772
    bundleStats = await this.fs.lstat(bundleDir);
  • 发起网络请求
    lib/cli.mjs:11509
    const response = await options.fetch(options.url, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-launch-environment@deepseek-ai/dsh-web
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 接入自托管搜索
  • 无需密钥
  • 替代收费搜索API
v0.3.02026-09-04
· 托管 SearXNG 生命周期 在 0.2.1 的托管部署之上补齐完整生命周期: · repair——所有权安全的修复,动作计划封闭且会展示;用保留的密钥重建损坏的配置包;TLS 失败分类(E_TLS_FAILED)。 · update——事务式镜像更新,带回滚校验:目标通过就绪、真实搜索和服务商校验前,当前部署始终为准;任何变更后失败都会恢复并重新校验上一版部署。 · 崩溃恢复——持久操作日志(journal.json);doctor 报告中断的操作;repair 从磁盘重新计算恢复决策(绝不只看日志),并清除被隔离的过期锁。 · 版本化部署目录(assets/deployments/v1.json)——按摘要锁定,npm 包是唯一更新通道。 · 认证基础设施——pnpm certify:platform 打包 tarball 运行器、发布证据模板,README 中如实区分已认证与兼容的支持声明。 · 安全 外部 SearXNG 端点保持只读。破坏性 Docker 操作仍需匹配所有权标签。操作中断期间 setup 会拒绝执行;部署消失后 remove --service 清除日志。 · 已认证环境 macOS + Docker Desktop(Docker 29.7.2,Compose 5.5.0):全部八项生命周期检查加上所有权校验的清理,均针对 tarball SHA-256 2ed8860dd79b913f682e9a2efe13b35795a0472ee8c4f7965407316f980dfe8d 通过——报告已附。Windows 和 Linux 认证报告是后续工作;README 只声明有通过报告的环境。
v0.2.12026-08-31
· 亮点 · 把独立命令行从 DSH 服务商、Cordis 和 Schemastery 运行时依赖链中隔离出来 · 命令行校验与运行时服务商共用同一个无依赖的 SearXNG 请求核心 · 把递归删除托管数据限制在解析出的 DSH home 下的 dsh-searxng 子目录 · 新增打包产物检查,拒绝动态求值和意外打包 DSH 运行时 · 验证 · 在 Ubuntu、macOS 和 Windows 上跑完整跨平台 CI · 在真实 Docker 环境里跑打包版托管安装流程 · Docker 适配器集成测试与带标签资源清理 · npm tarball 安装与独立命令行验证
v0.1.12026-08-18
· 亮点 · 规范化 SearXNG 基础 URL,同时保留部署子路径 · 拒绝含查询字符串或片段的基础 URL · 说明已安装插件的配置步骤与实测依赖兼容性 · 新增统一的包校验,CI 覆盖 Node.js 20/24 · 兼容性 · @deepseek-ai/dsh-web:>=0.1.0-rc.6 =0.0.1-rc.3 <0.2.0 · 安装 dsh plugin add dsh-searxng@0.1.1
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-searxng dsh-vet 一个 DeepSeek Harness(dsh)插件,它将一个由 SearXNG 支持的搜索提供程序注册到 web 能力接缝(ctx.web)中,通过一个免费、自托管、无需密钥的元搜索实例为你的 agent 提供 web_search —— 而不是付费的 Exa/Perplexity API。 快速开始 要求:Node.js 20 或更高版本、dsh、Docker Engine 或 Docker Desktop,以及 Docker Compose v2。 setup 命令会安装 dsh-searxng 并将其附加到所选 profile,因此无需单独的插件安装步骤。 npx dsh-searxng setup dsh --profile web setup 会创建一个仅限回环、版本固定的 SearXNG Docker 部署,等待 JSON API 就绪,通过 SearXNG 和最终的 DSH 提供程序配置运行一次真实搜索,然后才会激活该 profile。重复执行该命令会复用同一个自有容器、端口、配置和密钥。
展开完整文档(README 剩余 1 节)
dsh-searxng

dsh-vet

一个 DeepSeek Harness(dsh)插件,它将一个由 SearXNG 支持的搜索提供程序注册到 web 能力接缝(ctx.web)中,通过一个免费、自托管、无需密钥的元搜索实例为你的 agent 提供 web_search —— 而不是付费的 Exa/Perplexity API。

快速开始

要求:Node.js 20 或更高版本、dsh、Docker Engine 或 Docker Desktop,以及 Docker Compose v2。

setup 命令会安装 dsh-searxng 并将其附加到所选 profile,因此无需单独的插件安装步骤。

npx dsh-searxng setup
dsh --profile web

setup 会创建一个仅限回环、版本固定的 SearXNG Docker 部署,等待 JSON API 就绪,通过 SearXNG 和最终的 DSH 提供程序配置运行一次真实搜索,然后才会激活该 profile。重复执行该命令会复用同一个自有容器、端口、配置和密钥。

在需要时使用其他 DSH profile 或端口:

npx dsh-searxng setup --profile research --port 9080
dsh --profile research

包安装和 DSH 插件激活绝不会启动 Docker。只有显式的 dsh-searxng setup 或 dsh-searxng remove --service 命令才会更改 Docker。

现有 SearXNG

现有的本地、远程、需认证或独立管理的 SearXNG 实例是一等路径:

npx dsh-searxng setup --profile web --url https://search.example.com

该端点必须是 HTTP(S),不包含凭据、查询或片段,并启用 JSON 搜索。
DSH profile 中现有的提供程序选项(如 authHeader、language、engines 和 categories)会被保留并用于验证。外部模式绝不会调用 Docker。

手动安装插件

如果你自行管理 DSH profile 补丁,并且不希望 setup 命令附加它,可以只安装插件包:

dsh plugin add dsh-searxng

使用具名 profile 时,请使用 dsh plugin --profile add dsh-searxng。

运维

快速健康检查结果;在第一个失败处停止。
npx dsh-searxng status --profile web

有序的环境、Docker、所有权、HTTP、JSON、搜索、profile 和提供程序检查,以及本地隐私态势及其明确的超出范围限制。
npx dsh-searxng doctor --profile web

只读的引擎健康探测组合:每个引擎报告的失败及原因、结果贡献和证据限制。不写入任何内容。
npx dsh-searxng tune --profile web

为受管部署规划并执行所有权安全的修复。
npx dsh-searxng repair --profile web

将受管部署迁移到打包版本,并带有经验证的回滚。
npx dsh-searxng update --profile web
分离配置文件并从该配置文件中移除插件包。
npx dsh-searxng remove --profile web

同时停止并移除所拥有的服务;保留其数据和本地状态。
npx dsh-searxng remove --profile web --service

永久删除确切拥有的数据卷和受管目录。
npx dsh-searxng remove --profile web --service --purge-data

永久删除会在交互式终端上提示确认。自动化必须添加 --yes。--json 在 setup、status、doctor、repair、update 和 remove 上可用。破坏性 Docker 操作仅在容器、网络和卷标签与此 DSH home 匹配后才运行;同名的外部资源会被拒绝。

恢复语义

repair 和 update 在第一次变更与验证完成之间,将其进度记录在 $DSH_HOME/dsh-searxng/journal.json 下;setup 和 remove 会读取该日志,以便在中断期间拒绝执行或在中断后进行清理。

- 当记录到中断的操作时,setup 会拒绝运行并指向 repair。当记录到匹配的部署但不健康时,它会重启卡住的运行时,或者——如果容器已消失而记录的 bundle 仍然存在(未使用 --purge-data 的 remove --service 的残留,或手动
docker compose down)——则从该 bundle 重新创建运行时。
- 当日志存在时,repair 会接管:它在任何普通修复之前从磁盘重新计算恢复决策(清除日志、验证目标或恢复回滚),并且还会移除死进程留下的隔离的过期锁。doctor 会报告中断操作的 id、kind、phase 和 age。
- update 是事务性的:当前部署保持权威,直到目标通过就绪、真实搜索和提供方验证。第一次 Docker 变更之后的任何失败都会回滚到先前的镜像和配置并重新验证它们;同版本更新会以 E_DEPLOYMENT_UNSUPPORTED 被拒绝。
- 一旦部署消失,remove --service 会清除日志,因此后续的 setup 不会被拒绝。它还会通过从状态中记录的 bundle 推导出 compose 文件,来移除无容器部署的带标签残留。

提供方配置

setup 命令管理 $DSH_HOME/profiles//cordis.patch.yml 中的 web-search-searxng 行。可以将这些可选值添加到该行:

| 键 | 默认值 | 含义 |
| baseURL | 受管或 --url 端点 | SearXNG 基础 URL。 |
| baseURLs | 无 | SearXNG 基础 URL 的故障转移池;第一项为主项,非空列表优先于 baseURL。 |
| language | 无 | SearXNG 语言,例如 zh-CN 或 en-US。 |
| engines | 无 | 逗号分隔的引擎允许列表。 |
| categories | 无 | 逗号分隔的类别过滤器。 |
| authHeader | 无 | 用于受保护外部实例的 Authorization 头。 |
| cacheTtlMs | 600000 | 缓存查询结果的存活时间(毫秒);0 禁用缓存。 |
| minIntervalMs | 1500 | 网络请求之间的最小间隔;0 禁用节流。 |
| queueCapacity | 8 | 在提供方以背压拒绝之前,可等待节流槽位的请求数。 |
| totalBudgetMs | 15000 | 单次搜索调用的挂钟时间预算,涵盖节流等待、退避和网络尝试。 |

重复查询由作用域限定在提供方实例的进程内缓存提供服务(不会写入磁盘);缓存命中不会发起网络请求。
并发搜索通过令牌桶(突发 2,之后每 minIntervalMs 一个请求),队列满时立即以可重试错误拒绝,而不是阻塞调用方。失败的响应和空结果页永远不会被缓存——缓存的空页面会在整个 TTL 内掩盖上游恢复——并且空结果页会按原样返回:engines/categories 允许列表绝不会为了追逐结果而被静默放宽。当实例返回 HTTP 429 时,提供方会遵循 Retry-After,并在剩余预算内最多重试一次。

多实例故障转移

在 baseURLs 中列出两个或更多端点(最多 8 个,重复项会合并),以将搜索路由到它们之间——例如先本地托管实例,再远程实例: yaml web-search-searxng: baseURLs:
- http://127.0.0.1:8080
- https://searxng.example.net

第一个条目是主端点。当某次尝试因网络错误、超时或 HTTP 502/503/504/429 失败时,该端点的健康惩罚会上升,下一次尝试(以及后续搜索的首次尝试)会转到最健康的端点;惩罚以 30 秒半衰期衰减,因此主端点会在最后一次失败约一分钟后恢复第一个槽位,或在成功搜索后立即恢复。格式错误的响应(contract 失败)和其他 4xx 状态码永远不会触发故障转移——这些是该端点上的配置问题,切换会静默掩盖它们。缓存以整个池为键,节流桶按端点划分,并且 totalBudgetMs 截止时间跨越每个端点的尝试;空结果页是有效答案,永远不会触发故障转移。setup --url 仍会为每个配置文件记录单个外部端点——在 CLI 后续功能发布之前,配置池需要手动编辑配置文件。

按查询控制

SearXNG 支持在查询字符串本身中进行按查询路由;提供方会原样传递查询语法:

- :zh-CN / :en — 为此查询选择结果语言(: 前缀)。
- !bing / !news — 为此查询选择一个引擎或类别(! 前缀)。
- site:example.com — 将结果限制到一个域(支持情况取决于引擎)。

例如,查询 :zh-CN 大模型 排行榜 会以中文搜索,无论配置文件的 language 是什么,而 !github compose network mapping 仅使用 GitHub 引擎。请根据你的实例的引擎列表验证引擎名称。
如果有多个 DSH 搜索提供程序可用,请使用
DSH_WEB_SEARCH_PROVIDER=searxng 或相应的 searchProvider DSH Web 配置选择此提供程序。

故障排除

- E_DOCKER_MISSING / E_DOCKER_OFFLINE:安装或启动 Docker。
- E_COMPOSE_UNSUPPORTED:启用 Docker Compose v2。
- E_JSON_DISABLED:将 json 添加到 SearXNG 的 search.formats。
- E_AUTH_FAILED:检查外部实例的 authHeader 配置。
- E_TLS_FAILED:端点的 TLS 证书验证失败;检查证书链并重试。
- E_RATE_LIMITED:调整实例限流器或上游引擎选择。
- E_RESOURCE_FOREIGN:同名 Docker 资源不带有此安装的所有权标签;它绝不会被自动修改。
- E_BUNDLE_DAMAGED:生成的配置包不完整或不匹配;repair 会从打包的资产中重建它,同时保留现有密钥。
- E_DEPLOYMENT_UNSUPPORTED:打包的部署目录无法满足请求(请求了未知或相同版本,或某个条目与当前状态不兼容);请升级 dsh-searxng 或选择一个可用版本。
- E_PROFILE_CONCURRENT_MODIFICATION:DSH 配置文件在操作期间发生了更改;请检查它并重试。

doctor --json 返回完整的已脱敏检查列表和可操作的错误代码。

运行时支持

- Node.js:20 及更高版本。
- CLI、测试、构建和打包产物:已在 CI 中的 Linux、macOS 和 Windows 上验证。
- 托管 Docker 流程(包括修复和更新回滚)以及 Docker 适配器集成:已在选择启用的 Linux CI 中使用 Docker Engine 和 Compose v2 验证。发布认证运行器也在那里进行了演练;CI 不提供 Docker Desktop 并使用桩 dsh,因此它不是正式认证。
- 每个版本的已认证 Docker 环境:仅限那些在 docs/release-certification.md 中具有来自发布 tarball 的完整通过报告的环境——分别来自 macOS + Docker Desktop、Windows + Docker Desktop + WSL2 和 Linux + Docker Engine + Compose v2 各一个。
- macOS 上的 Docker Desktop 已针对 0.4.0 认证(docs/certification/v0.4.0-darwin-arm64.json);Windows 上的 Docker Desktop 兼容(相同引擎、相同 Compose v2 插件),但在给定版本存在其报告之前未认证。
- 外部 SearXNG 模式不需要 Docker,可在任何使用 Node.js 20+ 的平台上运行。
- 托管路径不支持 Podman 和 Podman Compose。

setup 从打包的部署目录中选择要安装的部署(与当前状态 schema 兼容的最新条目),并复用仍列在目录中的健康现有部署;使用 update 在部署版本之间切换。

dsh 处于开发者预览阶段,预计会有破坏性变更。版本 0.4.0 支持
@deepseek-ai/dsh-web >=0.1.0-rc.6 =0.0.1-rc.3 .tgz

许可证

MIT
预览分享卡片长什么样 ↓rogerdigital/dsh-searxng
分享 · DeepSeek Harness Hub
rogerdigital/dsh-searxng

为智能体接入免费自托管的无密钥网页搜索

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部