OpenClaw 集成 SearXNG 实现本地搜索(再也不用因Brave API发愁)
本文介绍了如何将隐私保护元搜索引擎SearXNG与轻量级AI平台OpenClaw结合,为本地AI添加实时联网搜索功能。通过详细步骤指导,包括环境准备(Ubuntu系统、Docker安装)、SearXNG部署(密钥配置、JSON格式支持)、端口开放设置,以及最终在OpenClaw中调用SearXNG接口的方法。该方案使AI能主动获取最新网络信息(如天气查询),突破传统知识库的时效限制,同时确保搜索过
一、引言:为什么你需要这个组合?
你是否希望你的 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 助手拥有了实时联网搜索的能力,真正成为一个“活”的智能体。
更多推荐

所有评论(0)