站长自营 API 中转

正在配置代理或 API 中转?可以把模型接口统一到一个网关里

系统代理负责让客户端连得上,API 中转负责统一 Base URL、Key、余额和多模型路由。ZZSwitch 是我自己运营的统一 API 网关,适合 OpenCode / Claude Code / Codex 等工具接入。

本页介绍如何将 OpenClaw 的 web_search 接入自托管的 SearXNG 元搜索引擎,实现零 API Key、无地区限制的私有搜索。SearXNG 聚合 Google、Bing、DuckDuckGo 等多个来源,一条 Docker 命令即可部署。适合有隐私需求或在隔离网络中运行 OpenClaw 的场景。

SearXNG 网页搜索

OpenClaw 支持 SearXNG 作为自托管、无需 API Keyweb_search Provider。SearXNG 是一个开源元搜索引擎,聚合 Google、Bing、DuckDuckGo 等多个来源的搜索结果。

优势:

  • 免费无限额:无需 API Key 或商业订阅
  • 隐私保护 / 内网隔离:搜索请求不出网络边界
  • 无地区限制:不受商业搜索 API 的地区封锁影响

快速开始

1. 运行 SearXNG 实例:

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

或使用任何已有的 SearXNG 部署。生产环境配置请参考 SearXNG 官方文档

2. 配置 OpenClaw:

openclaw configure --section web
# 选择 "searxng"

或设置环境变量让自动检测发现:

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

配置

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

插件级别的详细配置:

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

baseUrl 字段也支持 SecretRef 对象。

传输规则:

  • 私有/内网/本地 SearXNG:支持 http://
  • 公网 SearXNG:必须使用 https://

环境变量

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

设置 SEARXNG_BASE_URL 且未配置其他 Provider 时,自动检测会选择 SearXNG(优先级最低,API Key 认证的 Provider 优先)。

配置参数

字段 说明
baseUrl SearXNG 实例的 Base URL(必填)
categories 逗号分隔的搜索分类,如 generalnewsscience
language 结果语言代码,如 enzhde

注意事项

  • 使用 SearXNG 原生 format=json 端点,不是 HTML 抓取
  • 无需 API Key,任何 SearXNG 实例均可开箱即用
  • Base URL 必须是合法的 http://https:// URL;公网主机须用 HTTPS
  • 自动检测优先级为 200(最低),API Key 认证 Provider、DuckDuckGo(100)、Ollama(110) 均优先于 SearXNG
  • 确保 SearXNG 实例的 settings.ymlsearch.formats 已启用 json 格式

延伸阅读

常见问题

Q: SearXNG 实例需要做哪些配置才能兼容 OpenClaw?

A: 关键是在 SearXNG 的 settings.yml 中启用 JSON 输出格式,在 search.formats 下加入 json。默认安装通常未启用,启用后 OpenClaw 才能解析搜索结果。

Q: 公网 SearXNG 实例(别人搭的)可以用吗?

A: 可以,但必须使用 https:// URL。HTTP 公网地址会被 OpenClaw 拒绝。另外,公网实例可能限制搜索频率或关闭 JSON API,建议自行托管以获得稳定性保证。

Q: SEARXNG_BASE_URL 和配置文件里的 baseUrl 哪个优先?

A: 配置文件(plugins.entries.searxng.config.webSearch.baseUrl)优先于环境变量。环境变量 SEARXNG_BASE_URL 主要用于让自动检测发现 SearXNG,在没有显式配置 Provider 时生效。

站长自营 API 中转

ZZSwitch API 中转

统一 Base URL、Key 和余额。

打开 ZZSwitch