如果你在用 AI(ChatGPT / 本地大模型 / Agent),一定会遇到一个问题:
AI 不会主动上网搜索,信息可能过时。
解决方案通常有三种:
今天介绍一个 完全免费、隐私友好、可本地部署的方案:
SearXNG + OpenClaw
实现效果:
- AI 可以实时搜索互联网
- 完全本地部署
- 不依赖任何付费 API
- 支持 Google / Bing / DuckDuckGo 等搜索源
- Docker 一键部署
本教程基于:
- MacOS
- Docker
- SearXNG
- OpenClaw
整体结构非常简单:
AI / Agent
│ │
OpenClaw
│ │
SearXNG (本地搜索引擎)
│ │
Google / Bing / DuckDuckGo
流程:
优势:
- 免费
- 可控
- 隐私友好
- 支持自定义搜索源
第一步:安装 SearXNG(2分钟)
# SearXNG Docker 部署过程记录
1. 目录结构准备
bash
mkdir searxng-standalone && cd searxng-standalone
2. 创建 docker-compose.yml
yaml
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: unless-stopped
ports:
- "7777:8080"
volumes:
- ./settings.${SEARXNG_ENV:-default}.yml:/etc/searxng/settings.yml:ro
environment:
- SEARXNG_BASE_URL=http://localhost:7777/
- GRANIAN_LOG_ACCESS_ENABLED=true
- GRANIAN_LOG_ACCESS_FMT=%(addr)s "%(method)s %(path)s?%(query_string)s" %(status)s %(dt_ms)sms
说明:
- 端口映射:宿主机 7777 → 容器内 8080
- SEARXNG_ENV 控制使用哪套配置文件,默认 default
- 开启访问日志,可以看到搜索请求内容
GRANIAN_LOG_ACCESS_ENABLED
- GRANIAN_LOG_ACCESS_FMT 自定义日志格式,包含完整 query string
3. 创建配置文件
国内环境 settings.cn.yml
yaml
use_default_settings:
engines:
keep_only:
- bing
- bing images
- bing news
- bing videos
- sogou
- sogou images
- sogou videos
- sogou wechat
- wikipedia
server:
port: 8080
bind_address: "0.0.0.0"
secret_key: "your-secret-key"
search:
formats:
- html
- json
engines:
- name: bing
disabled: false
weight: 2
- name: bing images
disabled: false
- name: bing news
disabled: false
- name: bing videos
disabled: false
- name: sogou
disabled: false
weight: 1
- name: sogou images
disabled: false
- name: sogou videos
disabled: false
- name: sogou wechat
disabled: false
国外环境 settings.global.yml
yaml
use_default_settings:
engines:
keep_only:
- google images
- google news
- google videos
- google scholar
- bing
- bing images
- bing news
- bing videos
- wikipedia
server:
port: 8080
bind_address: "0.0.0.0"
secret_key: "your-secret-key"
search:
formats:
- html
- json
engines:
- name: google
disabled: false
weight: 2
- name: google images
disabled: false
- name: google news
disabled: false
- name: google videos
disabled: false
- name: google scholar
disabled: false
- name: bing
disabled: false
weight: 1
- name: bing images
disabled: false
- name: bing news
disabled: false
- name: bing videos
disabled: false
配置文件说明
- :白名单模式,只保留列出的引擎,其他全部忽略
use_default_settings.engines.keep_only
- engines 块:对 keep_only 中的引擎做额外配置(disabled、weight 等)
- bing / sogou 在 SearXNG 默认配置里是 disabled: true,必须在 engines 块里显式设置 disabled: false 才会生效
4. 启动服务
bash
# 国内环境
SEARXNG_ENV=cn docker compose up -d --force-recreate
# 国外环境
SEARXNG_ENV=global docker compose up -d --force-recreate
> 注意:切换环境必须加 --force-recreate,否则 Docker 不会重建容器,挂载的配置文件不会更新。
5. 验证服务
bash
# 基础测试
curl "http://localhost:7777/search?q=test&format=json"
# 查看实际调用了哪些引擎及结果数
curl -s "http://localhost:7777/search?q=test&format=json" | python3 -c "
import json, sys
data = json.load(sys.stdin)
engines = {}
for r in data.get('results', []):
for e in r.get('engines', []):
engines[e] = engines.get(e, 0) + 1
print('实际调用的引擎:')
for e, c in sorted(engines.items(), key=lambda x: -x[1]):
print(f' {e}: {c}条')
print('unresponsive:', data.get('unresponsive_engines', []))
print('timed_out:', data.get('timed_out_engines', []))
"
第二步:配置 OpenClaw(1分钟)
找到配置文件 `~/.openclaw/openclaw.json`,添加:
json
{
“tools”: {
“web”: {
“fetch”: {
“enabled”: true
}
}
},
“browser”: {
“ssrfPolicy”: {
“dangerouslyAllowPrivateNetwork”: true
}
}
}
这两个配置的作用:
- `tools.web.fetch.enabled` - 启用 HTTP 请求工具
- `
dangerouslyAllowPrivateNetwork` - 允许访问本地网络(SearXNG 在本地)
第三步:搞定网络互通(1分钟)
这是唯一的坑点。OpenClaw 和 SearXNG 都在 Docker 里,怎么互访?
Docker Desktop(Mac/Windows)
直接用内置域名:
http://host.docker.internal:7777
第四步:验证(30秒)
bash
curl “
http://host.docker.internal:7777/search?q=测试&format=json”
返回 JSON 结果就 OK!
使用示例
普通搜索
bash
curl “http://host.docker.internal:7777/search?q=OpenClaw&format=json”
图片搜索
bash
curl “http://host.docker.internal:7777/search?q=test&category_images=on&format=json”
“
返回结果中results[].img_src` 是图片直链。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/273044.html