跳转至

SearXNG 搜索

OpenClaw 支持将 SearXNG 作为自托管、无需密钥的 web_search 提供商。SearXNG 是一款开源元搜索引擎,聚合来自 Google、Bing、 DuckDuckGo 及其他来源的搜索结果。

优势:

  • 免费且无限制 —— 无需 API 密钥或商业订阅
  • 隐私 / 隔离 —— 查询永远不会离开你的网络
  • 随处可用 —— 商业搜索 API 没有地区限制

设置

1. 安装插件

openclaw plugins install @openclaw/searxng-plugin

安装会自动应用于正在运行的 Gateway;否则将在下次启动时生效。参见 应用更改并检查。

2. 运行 SearXNG 实例

docker run -d -p 8888:8080 searxng/searxng

或者使用你可访问的任何现有 SearXNG 部署。有关生产环境设置,请参阅 SearXNG 文档。

3. 配置

openclaw configure --section web
# Select "searxng" as the provider

或者设置环境变量,让自动检测找到它:

export SEARXNG_BASE_URL="http://localhost:8888"

配置

{
  tools: {
    web: {
      search: {
        provider: "searxng",
      },
    },
  },
}

针对 SearXNG 实例的插件级设置:

{
  plugins: {
    entries: {
      searxng: {
        config: {
          webSearch: {
            baseUrl: "http://localhost:8888",
            categories: "general,news", // optional
            language: "en", // optional
          },
        },
      },
    },
  },
}

baseUrl 也接受 SecretRef 对象(例如 { source: "env", id: "SEARXNG_BASE_URL" })。

环境变量

设置 SEARXNG_BASE_URL 作为配置的替代方案:

export SEARXNG_BASE_URL="http://localhost:8888"

解析顺序:已配置的 baseUrl(字符串或允许的 env SecretRef)优先,仅当 baseUrl 缺失时才使用 SEARXNG_BASE_URL。如果显式指定的 SecretRef 被只读 配置检查阻止,则不会回退到环境变量;请改为修复其 provider、default-provider 或 env 允许列表策略。当所有配置路径均未设置,且存在 SEARXNG_BASE_URL 且 未显式选择 provider 时,自动检测会选择 SearXNG。

插件配置参考

字段 描述
baseUrl 你的 SearXNG 实例的基础 URL(必填)
categories 以逗号分隔的分类,例如 general、news 或 science
language 结果的语言代码,例如 en、de 或 fr

web_search 工具调用还接受 count(1-10 条结果)、categories 和 language 作为每次调用的覆盖参数。

注意事项

  • JSON API —— 使用 SearXNG 原生的 format=json 端点,而非 HTML 抓取
  • 图片结果 URL —— 当 SearXNG 返回直接图片 URL 时,图片分类结果包含 img_src
  • 无需 API 密钥 —— 任何 SearXNG 实例均可开箱即用
  • Base URL 验证 —— baseUrl 必须是有效的 http:// 或 https:// URL
  • 网络防护 —— http:// 基础 URL 必须指向受信任的私有或回环主机 (公共主机必须使用 https://);解析到私有/内部地址的 https:// 基础 URL 享有相同的自托管许可,而解析到公共地址的 https:// 基础 URL 则 保持严格的 SSRF 保护
  • 自动检测顺序 —— SearXNG 需要已配置的 baseUrl(在已具备所需凭据的 提供商中顺序为 200)。诸如 DuckDuckGo 或 Ollama Web Search 之类的无密钥 提供商永远不会隐式赢得自动检测;它们仅在显式选择 provider 时才会激活
  • 自托管 —— 你控制实例、查询和上游搜索引擎
  • 分类 —— 未配置时默认为 general
  • 分类回退 —— 如果非 general 分类的请求成功但返回零条结果, OpenClaw 会先用 general 重试同一查询一次,然后再返回空结果集
  • 结果缓存 —— 相同的查询(相同的查询词、count、categories、language 和 base URL)会在进程内以较短的 TTL 进行缓存
  • 版本要求 —— 插件声明 minHostVersion: >=2026.6.9

Tip

要让 SearXNG JSON API 正常工作,请确保你的 SearXNG 实例在其 settings.yml 的 search.formats 下启用了 json 格式。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw