给你的OpenClaw装个「本地搜索引擎」:不用再交搜索api费用、无广告、响应快,完美替代国外收费搜索工具。
刚装好OpenClaw的朋友大概率都踩过这个坑:想让AI搜个最新资讯、查个最新软件版本、获取最新的十五五规划,结果直接报错。
这是因为OpenClaw默认自带的搜索工具web_search,只对接了Tavily、Perplexity等,而且大多是国外服务,不仅要收费,国内访问速度还不稳定,有时候根本用不了。今天给大家分享一个完全免费、可以一键本地部署的私有搜索引擎 SearXNG,既可以当无广告的纯净版搜索工具用,还能直接对接OpenClaw,让你的AI瞬间拥有稳定的联网能力。
🤔 为什么选SearXNG?
对比OpenClaw自带的国外搜索工具,SearXNG的优势对国内用户太友好了:
✅ 完全免费:开源项目,无任何使用成本,没有调用次数限制
✅ 本地部署:所有服务跑在自己机器上,隐私数据不会泄露给第三方
✅ 国内可用:不需要科学上网,搜索结果聚合百度、Bing、谷歌等多个源,响应速度快
✅ 无广告:搜索结果干净,没有乱七八糟的推广和竞价排名
🛠️ 第一步:安装Docker(以macOS为例)
本文所介绍的SearXNG是基于Docker部署的,所以首先要装好Docker环境,Windows/Linux步骤也类似:
- 下载Docker Desktop:
brew install --cask docker
-
安装并启动Docker:按照向导完成安装后,启动Docker Desktop
-
配置国内镜像源(非常重要,否则拉镜像会非常慢):
- 打开Docker Desktop设置 → 找到「Docker Engine」选项
- 在配置文件里加入国内镜像地址,示例配置:
{ "registry-mirrors": [ "https://docker.1ms.run", "https://docker.mirrors.ustc.edu.cn", "https://docker.fnnas.com", "https://registry.hub.docker.com" ] }- 点击「Apply」重启Docker生效
-
验证安装成功:打开终端输入以下命令
docker pull searxng/searxng:latest
如果出现如下信息,说明配置成功。
注意,windows和linux用户安装docker的方法有所不同,本文附上我自用的ubuntu安装设置脚本(需要安装docker compose,仅作参考。Windows用户和其它linux发行版用户请自行搜索方法):
#!/bin/bash
# for tencent-cloud
sudo apt-get update
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
# Remove old key if exists
sudo rm -f /etc/apt/keyrings/docker.gpg
# Try multiple times with retry logic and use alternative method
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg || \
(sleep 2 && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg) || \
(echo "Trying alternative GPG key method..." && \
wget -qO- https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg)
# Set proper permissions
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker
docker --version
# 配置 docker 用户组权限
if ! getent group docker > /dev/null; then
sudo groupadd docker
fi
if [ -n "$SUDO_USER" ]; then
user="$SUDO_USER"
else
user="$(whoami)"
fi
sudo usermod -aG docker "$user"
# 安装完成后修改/etc/docker/daemon.json,加入如下配置
sudo cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.fnnas.com",
"https://registry.hub.docker.com"
]
}
EOF
sudo systemctl restart docker
🚀 第二步:本地部署SearXNG
部署过程非常简单:
- 随便建一个英文名称的文件夹,比如 my-search-engine
- 创建docker-compose.yml配置文件:
services:
searxng:
image: searxng/searxng:latest
restart: unless-stopped
user: "1000:1000"
ports:
- "${SEARXNG_PORT:-28080}:8080"
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=http://${SEARXNG_HOSTNAME:-localhost}/
- UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4}
- UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4}
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
- 在my-search-engine下建一个searxng文件夹,然后新建settings.yml并贴入如下内容:
[附件]
最终文件结构如下:
├── docker-compose.yml
├── searxng
└── settings.yml
- 在my-search-engine目录下,执行以下命令,启动服务:
docker compose up -d
- 验证部署成功:打开浏览器访问
http://localhost:28080,能看到SearXNG的搜索页面,随便搜个关键词能返回结果就算部署成功了。
⚙️ 第三步:配置OpenClaw接入SearXNG
无需安装插件,现在只需要简单配置一下,就能让OpenClaw用你本地部署的SearXNG搜索了:
- 在你的系统变量中,添加一个变量
SEARXNG_URL值设置为http://localhost:28080。 - 修改~/.openclaw/openclaw.json,找到tools这一层,禁用web_search,配置web_fetch
"tools": {
"profile": "full",
"web": {
"search": {
"enabled": false
},
"fetch": {
"enabled": true,
"maxChars": 50000,
"maxCharsCap": 50000,
"cacheTtlMinutes": 15,
"maxRedirects": 3
}
}
},
- 执行以下命令,让OpenClaw学会如何使用searXNG
mkdir -p ~/.openclaw/searxng/
touch ~/.openclaw/searxng/SKILL.md
cat ~/.openclaw/searxng/SKILL.md <<EOF
---
name: searxng
description: 调用本地SearXNG实例进行隐私化网页搜索,返回结构化结果(支持中文/英文)。
---
## 核心配置
- API地址: $SEARXNG_URL
- 返回格式: JSON
## 使用步骤
1. 构造查询URL: `$SEARXNG_URL/search?q={urlencoded_query}&format=json`
2. 用 exec 工具通过 curl 调用: `curl -s "$SEARXNG_URL/search?q=<query>&format=json"`
3. 解析JSON结果,提取 results 数组,每条包含 title/url/content 字段
## 错误处理
- 若API超时/无响应:提示"SearXNG服务不可用,请检查实例状态"
- 若结果为空:提示"未找到相关结果,请更换关键词重试"
## 示例
查询: "2026年3月19日实时金价"
命令: curl -s "$SEARXNG_URL/search?q=2026年实时金价&format=json"
EOF
- 重启OpenClaw后,如果能够在技能中看到searxng,并且在聊天中询问让它执行搜索功能成功,则配置完成。
我建了个AI交流群,把自己的AI经验教给了群内的小蜜蜂助手,大家有需要可以加群交流。