一、引言:为什么你需要这个组合?

你是否希望你的 AI 不仅聪明,还能“上网查资料”?今天我们就来教你如何将 SearXNG 和 OpenClaw 结合起来,让你的本地 AI 拥有实时联网搜索的能力。

那它们分别是什么?

• SearXNG(读作 “search-next”)是一个保护隐私的开源元搜索引擎。它不会记录你的信息,也不会根据你的喜好“投喂”内容,真正做到中立、透明地聚合多个搜索引擎的结果。

• OpenClaw是一个轻量级 AI 应用平台,可以运行在个人服务器或云主机上,适合用来搭建属于自己的智能助手。

把它们结合起来,就像给你的 AI 装上了“眼睛”和“大脑”——它不仅能理解问题,还能主动去网上查找最新信息并告诉你答案。比如问“今天北京天气怎么样”,它就能通过 SearXNG 实时获取结果,而不是依赖过时的知识库。

接下来,我们将一步步带你完成整个过程,即使你是第一次使用 Linux 命令行,也能顺利完成!

二、前置准备:搭建基础环境

在这一步,我们要为安装 SearXNG 准备好必要的工具和系统环境。别担心,每一步都有详细说明。

1. 系统要求

我们推荐你在以下环境中操作:

• 操作系统:Ubuntu 20.04 或 22.04 LTS(长期支持版)

• 最低配置建议:

• CPU:1 核

• 内存:2GB

• 硬盘:10GB 可用空间

这些配置在大多数云服务商(如阿里云轻量应用服务器)都能轻松满足。

💡 小贴士:LTS 表示“Long Term Support”,即长期支持版本,稳定性更高,更适合部署服务。

2. 安装必要工具

打开终端(你可以通过 SSH 登录你的服务器),依次输入以下命令:

sudo apt update

sudo apt install -y git docker.io curl

✅ 成功标志:终端显示 Setting up ... 并最终出现 Processing triggers for ...,表示安装成功。

📌 解释一下这几个工具的作用:

3. 启动 Docker 并添加权限

Docker 安装完成后需要手动启动,并把你当前的用户加入 docker 用户组,这样你就不用每次敲命令都加 sudo。

执行以下两条命令:

sudo systemctl enable docker --now

sudo usermod -aG docker $USER

⚠️ 重要提醒:执行完第二条命令后,必须重新登录终端(关闭终端再重新连接),否则 Docker 权限不会生效!

✅ 成功标志:重新登录后,输入 docker --version 能看到类似 Docker version 24.0.7 的输出。

4. 安装 Docker Compose

Docker Compose 是用来管理多个容器的工具,SearXNG 就是用它来一键启动的。

运行以下命令安装:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-⟦LATEXINLINE0⟧(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

✅ 成功标志:输入 docker-compose --version 显示版本号,例如 docker-compose version 2.20.2。

三、SearXNG 安装步骤

现在我们正式开始安装 SearXNG。我们将使用官方推荐的 Docker Compose 方式,这是最简单、最稳定的部署方法 。

1. 创建工作目录

先创建一个专门存放 SearXNG 文件的文件夹:

mkdir ~/searxng&&cd ~/searxng

这会在你的家目录下新建一个叫 searxng 的文件夹,并进入其中。

2. 克隆官方部署仓库

接下来,从 GitHub 下载官方提供的部署模板:

git clone https://github.com/searxng/searxng-docker.git .

✅ 成功标志:你会看到一堆文件被下载下来,包括 docker-compose.yaml 和 searxng/settings.yml。

💡 提示:末尾的 . 表示克隆到当前目录,而不是新建一个子目录。

3. 修改安全密钥(关键!)

SearXNG 默认使用一个公开的密钥,为了安全起见,我们必须替换成随机生成的新密钥。

运行这条命令:

sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml

⚠️ 注意:如果不改这个密钥,SearXNG 会拒绝启动,因为它认为你不重视安全 。

✅ 成功标志:打开 searxng/settings.yml 文件,找到 secret_key 这一行,它的值应该是一串 64 位的随机字符,不再是 ultrasecretkey。

4. 启用 JSON 格式输出(供 OpenClaw 调用)

为了让 OpenClaw 能读取搜索结果,我们需要让 SearXNG 支持返回 JSON 数据格式。

编辑 searxng/settings.yml 文件,在 search: 下的 formats: 列表中添加 - json:

search:

  formats:

    - html

    - json

✅ 成功标志:保存文件后,确保没有语法错误(注意缩进是两个空格)。

💡 为什么需要 JSON?因为程序之间通信最喜欢用这种结构化的数据格式,方便解析和处理 。

5. 允许外部访问(修改端口映射)

默认情况下,SearXNG 只允许本机访问。为了让 OpenClaw 或其他设备能调用它,我们需要开放对外访问。

编辑 docker-compose.yaml 文件,找到 ports: 部分:

ports:

  - "127.0.0.1:8080:8080"

把它改成:

ports:

  - "8080:8080"

✅ 成功标志:修改后保存文件。这意味着现在任何能访问你服务器 IP 的人都可以通过 http://你的IP:8080 访问 SearXNG。

⚠️ 安全提醒:如果你担心安全性,可以在防火墙层面限制只允许特定 IP 访问 8080 端口。

6. 启动服务

一切就绪,我们来启动服务!

docker compose up -d

✅ 成功标志:终端输出包含 Creating network... Starting searxng ... done,并且没有报错。

💡 如果提示 command not found,请尝试使用旧命令 docker-compose up -d。

四、本地运行与测试方法

服务已经启动,现在我们来验证它是否正常工作。

1. 查看服务状态

运行以下命令查看容器运行情况:

docker compose ps

✅ 成果标志:你应该看到 searxng 的状态是 running,并且端口 0.0.0.0:8080->8080/tcp 已映射。

2. 浏览器访问测试

打开你的电脑浏览器,在地址栏输入:

http://<你的服务器IP>:8080

把 <你的服务器IP> 换成你实际的公网 IP 地址。

✅ 成功标志:页面加载出 SearXNG 的搜索界面,标题写着“尊重隐私的开源元搜索引擎”。

如果打不开,请检查:

- 是否放行了 8080 端口(见第五节常见问题)

- 是否已重新登录终端以获得 Docker 权限

3. 设置中文与启用搜索引擎

首次使用建议做两件事:

(1)设置语言为中文

点击右上角的【首选项】→【常规】→ 在“搜索语言”中选择 中文, 中国 (zh-CN) → 点击【保存】。

(2)启用至少一个搜索引擎

进入【首选项】→【搜索引擎】,滚动列表,找到以下引擎并勾选启用:

- Bing

- DuckDuckGo

- Wikipedia

然后点击【保存】。

✅ 成功标志:回到首页,输入“你好世界”进行搜索,能看到真实结果返回。

五、如何在 OpenClaw 中调用 SearXNG

终于到了最关键的一步——让 OpenClaw 使用 SearXNG 来搜索信息。

1. 获取 SearXNG 地址

你的 SearXNG 实例地址格式如下:

http://<你的服务器IP>:8080

记住这个地址,后面要用。

2. 使用 web_fetch 工具发起搜索

在 OpenClaw 的对话框中,直接输入以下 Python 风格代码:

url = 'http://<你的服务器IP>:8080/search?q=人工智能&format=json'

print(web_fetch(url=url))

记得把 <你的服务器IP> 替换成你的真实 IP!

✅ 成功标志:你会看到一大段 JSON 数据返回,里面包含了“人工智能”相关的搜索结果,比如标题、链接、摘要等。

💡 这就是 OpenClaw 调用 SearXNG 的方式:发送一个带关键词的请求,接收结构化数据,然后 AI 自己组织语言回答你。

3. (可选)配置为自定义工具(高级)

如果你想把这个功能变成一个专用指令(比如以后只需说“搜索 XXX”就能触发),就需要修改 OpenClaw 的配置文件。

编辑工具配置文件,添加如下内容:

{

  "tools": {

    "custom_search": {

      "type": "function",

      "function": {

        "name": "custom_search",

        "description": "Search the web using a custom SearXNG instance(通过自定义 SearXNG 实例搜索网络)",

        "parameters": {

          "type": "object",

          "properties": {

            "query": {

              "type": "string",

              "description": "The search query(搜索关键词)"

            }

          },

          "required": ["query"]

        }

      }

    }

  }

}

然后编写 custom_search 函数逻辑,构造 URL 并调用 API。这部分适合有一定开发经验的用户。

六、常见问题与解决建议

以下是新手常遇到的问题及解决方案,帮你快速排障:

问题 原因 解决方案

1、页面打不开,连接超时 防火墙未放行 8080 端口 执行 sudo ufw allow 8080 或检查云服务商的安全组规则

2、搜索无结果返回 所有搜索引擎都处于禁用状态 登录网页 →【首选项】→【搜索引擎】→ 启用 Bing 或 DuckDuckGo

3、提示“Invalid secret key” 未修改 secret_key 或格式错误 重新运行 sed 命令生成新密钥

4、docker compose 命令找不到 用户未加入 docker 组或未重新登录 执行 newgrp docker 或退出终端重新登录

5、容器反复重启失败 目录权限错误或 cap_drop 冲突 检查挂载目录权限;首次运行时可临时注释 docker-compose.yaml 中的 cap_drop 行

💡 温馨提示:遇到问题不要慌,先看日志!运行 docker compose logs searxng 可查看详细错误信息。

七、结语

恭喜你!你已经成功完成了 SearXNG 与 OpenClaw 的集成,现在你的 AI 助手拥有了实时联网搜索的能力,真正成为一个“活”的智能体。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐