OpenClaw 免费联网搜索配置指南:基于 SearXNG 实现零成本 AI 工具链
发布时间:2026/10/11 12:41:01 锦皓数字建站

给开源 AI 助手 OpenClaw 装上“联网搜索”这件事最近在我身边的小圈子里讨论度比想象中高。原因很简单本地跑的模型再聪明知识也是“截止”的问它今天有没有新版本、某个仓库是否更新、某款工具怎么用最优它只能睁眼瞎。而 OpenClaw 这种把能力封装成工具的框架天生就是用来接搜索的。问题在于网上不少教程上来就让你申请付费搜索 API动辄按次计费对“自己玩”的人来说确实肉疼。这篇内容不打算让你花一分钱。我会从 OpenClaw 的工具调用机制讲起把“联网搜索”这条链路拆开告诉你哪些环节能用开源组件和免费额度顶替然后给出一套我实测过能跑的完整方案用一个自建元搜索服务给 OpenClaw 提供搜索接口顺手再聊几个替代路线和踩坑记录。适合已经在跑 OpenClaw、以及刚把项目拉下来还没配搜索的朋友也适合对“免费 AI 工具链”感兴趣的人。1. 先弄明白OpenClaw 缺的不是浏览器是一个可控的“搜索工具”1.1 OpenClaw 这类框架是怎么“思考”的第一次把 OpenClaw 跑起来的人十有八九会有一个误解以为它跟浏览器似的你说一句“查一下”它就自己打开网页刷一遍内容。实际完全不是这么回事。OpenClaw 本质上是一个 Agent 调度框架它把背后的语言模型当大脑把外部能力封装成一个个工具由模型判断用户意图再调用注册好的工具去拿数据最后把返回结果组织成回答。这个设计很像现实里的助理——助理自己不会去翻数据库而是让秘书去查查完把要点整理好递过来。在 OpenClaw 里这个“秘书”就是工具搜索引擎接口就是秘书手里的资料库。所以给 OpenClaw 加联网搜索核心动作只有两个注册一个能执行搜索的工具以及让模型把工具返回的结果读进去。想明白这一点再去翻项目文档就不会被“插件”“扩展”“连接器”这些词绕晕了。1.2 一条搜索链路三个花钱口联网搜索在 OpenClaw 里走完整条路是这样的用户提问 → 模型判断需要搜索 → 调用搜索工具 → 拿到搜索结果 → 结果作为上下文交给模型 → 生成最终回答这条链路里最容易烧钱的地方有三个。第一个是搜索接口本身商用搜索引擎基本按次计费一个请求几厘钱到几毛钱不等日常用着没感觉月底看账单才肉疼。第二个是网页内容抓取很多搜索结果只有标题和链接想让模型回答得靠谱往往还要抓正文而抓正文撞上反爬和验证码既消耗流量又费时间。第三个是模型上下文费用搜索返回 20 条结果全塞进去token 直接爆表每次调用都在悄悄花钱。所谓“白嫖”不是天真地认为这三个口都能变成零成本而是把大头替换掉用开源元搜索顶替商业搜索 API用缓存和摘要代替高频全文抓取用精简结果控制模型 token。想清楚这一点后面你配置 SearXNG 还是配其他方案都知道自己到底在省哪部分钱。1.3 为什么“免费”这件事真的可行会有人怀疑免费的搜索接口真的存在吗答案是存在而且不止一种。开源社区有个流派专门做“元搜索”把多个公开搜索渠道的结果聚合到自己的页面里不依赖单一商业授权另外还有不少搜索服务在官方 API 之外提供免费额度个人日常用途完全够用。这些方案的问题不是“不存在”而是“不稳定”和“要自控”。搜索源可能临时挂掉上游可能限流返回格式也可能变。所以“免费”的代价是你得自己承担运维成本。这也是我想强调的白嫖不等于白拿工具可以不付费但调试和排查的功夫省不了。2. 免费搜索渠道盘点能白嫖但各有各的脾气2.1 商业 API 免费额度省心但别指望长久先说最省事的一条路用商业搜索引擎提供的免费额度。不少搜索服务商为了招揽开发者会给每月几千次甚至更多的免费请求返回的是规规矩矩的 JSON字段齐全、质量稳定接入成本最低。在 OpenClaw 的工具配置里填一个接口地址加一个 API Key 就能跑起来。优点很明显结果质量高、接口稳定、文档完善。缺点同样明显额度用光之后如果没配好限流轻则按量计费吓你一跳重则直接禁用账号而且免费 Key 的安全管理要做好一旦泄露被人刷到欠费也不是没可能。用这条路我的建议是适合刚上手、日常搜索量不大并且有信心把凭据保护好的朋友。我个人一般只把它当“验证方案”——先确认 OpenClaw 的搜索链路能通再迁移到自建服务这样后面排查问题的范围会小很多。2.2 开源元搜索白嫖党的主力方案现在开源社区里最活跃的方案之一是自建一个元搜索服务。它的原理是“我帮你去查别的搜索引擎”把几个主流商业搜索引擎的结果拿回来聚合去重之后展示在自己页面上。对 OpenClaw 来说它有四个击中要害的优点第一镜像化一键部署五分钟能跑起来第二原生带 JSON 输出接口加一个formatjson参数就直接返回结构化结果OpenClaw 解析起来几乎零成本第三不需要申请任何 API Key天然免费用第四部署在自己机器上搜索词不走第三方服务隐私上更说得过去。坑也很明确因为本质是“代理”上游引擎会时不时把这种请求判定成机器人导致返回空结果或验证码如果你把实例暴露到公网很快会被脚本小子拿来当免费接口狂爬最后被封 IP。实操建议就是把这个服务只绑定到本机回环地址只给自己用并且只开少数几个稳的上游引擎别贪多。具体怎么配置下一节给你完整命令。2.3 野路子RSS、站点地图、直接抓 HTML除了正经搜索引擎还有几条“半白嫖”路线。RSS 订阅特别适合“监控某个网站有没有更新”比如你关注的开源仓库、技术博客大多有 RSS 输出格式固定、免费、对抓取方友好。OpenClaw 完全可以把它做成一个“订阅检查工具”定期扫一遍、生成摘要这件事很香。缺点也很明显RSS 只能查到“对方愿意发布的内容”查不了“一个随机问题”。另外还有直接抓搜索引擎 HTML 页面再自己解析的野路子我劝你直接放弃。前端页面结构经常改、验证码防不胜防而且对目标站点负担很重于情于理都不是一个好选择。真要用顶多拿来做个应急兜底不值得当正式方案维护。整体而言给 OpenClaw 用的搜索源能返回 JSON 才是最优解。3. 动手实操给 OpenClaw 装上一套免费联网搜索3.1 先准备环境Docker 和配置文件正式开装之前先列一遍需要的东西一台能跑 Docker 的机器自己电脑、小主机、云服务器都行一个 OpenClaw 实例以及一点耐心。OpenClaw 不同分支的配置目录叫法不一样有的叫tools/有的叫plugins/你的版本具体是什么不重要打开项目目录搜tools、plugins、search这几个关键词很快就能找到对应位置。下文的配置片段按通用 JSON 结构写你照自己项目的语法微调就行。部署元搜索服务最省心的方式是 Docker Compose。新建一个目录写一份docker-compose.ymlservices: searxng: image: searxng/searxng container_name: searxng ports: - 127.0.0.1:8888:8080 environment: - SEARXNG_BASE_URLhttp://127.0.0.1:8888/ - SEARXNG_SECRET_KEY换成你自己的随机字符串 volumes: - ./searxng-data:/etc/searxng restart: unless-stopped这里有几个点拆开讲。端口映射写成127.0.0.1:8888:8080意思是只允许本机访问不会暴露到局域网和公网这是安全的第一道保险。SEARXNG_BASE_URL要和你访问的地址一致否则拍返回的链接可能是错的。SEARXNG_SECRET_KEY随便生成一个长随机串用于管理功能签名千万别用默认值。挂载目录./searxng-data用来保存配置和临时数据升级不会丢。用docker compose up -d拉起来看到容器状态是 healthy 就说明基础环境 OK。如果不想用 Docker源码部署也支持但我不太推荐——Python 依赖、进程管理、开机自启全都要自己折腾对白嫖党来说时间成本不划算。Docker 多占一点内存换来的是省心。3.2 验证搜索接口先当普通浏览器试一遍容器跑起来之后别急着接 OpenClaw先在浏览器里访问http://127.0.0.1:8888/能打开搜索页面就说明服务正常。然后在地址栏直接测 JSON 接口curl http://127.0.0.1:8888/search?qopenclawformatjson正常会返回一个 JSON里面有results数组每项包含标题、链接、摘要。这一步的意义是先把“元搜索服务本身好不好使”这个问题排查干净再去碰 OpenClaw避免两头都出问题时分不清是谁的锅。常见问题有三个第一返回 403 是上游拒绝需要在设置里换一组上游第二返回空数组说明当前上游对测试词没有结果换一个搜索词试试第三容器能起但页面打不开大概率是端口映射或防火墙问题先看容器日志再查防火墙。只有这一步确认没问题你才能放心进入下一环节。3.3 在 OpenClaw 里注册搜索工具现在回到 OpenClaw 侧。找到它的工具配置文件加入一个名为web_search的工具。不同版本写法有差异我给一个通用思路{ tools: { web_search: { type: http, method: get, url: http://127.0.0.1:8888/search, params: { q: {query}, format: json }, response_processing: json, result_path: results[:5] } } }这段配置的含义是当模型决定调用web_search时OpenClaw 会对本地元搜索服务发起一个 GET 请求{query}会被替换成模型提取出来的搜索词formatjson让它返回 JSONresult_path指定只取前五条结果。这里有个经验不要直接把 20 条结果全塞给模型前五条的标题和摘要已经足够回答绝大多数问题了塞多了 token 费用蹭蹭涨回答质量却不一定跟着涨。如果你的 OpenClaw 版本不支持这种声明式写法通常也允许你写一个小函数再注册进去本质都一样发请求 → 拿 JSON → 转成文本。有的版本默认只把“通用 HTTP 工具”暴露出来你直接在它的调用参数里填好接口地址和参数也行原理完全一致。3.4 端到端测试让它真的“上网”一次配置完别急着激动先在对话里测试一轮。我惯用的测试词是“帮我查一下今天有没有某个开源项目的新版本发布”。这种问题模型自己必然答不上来只能被迫调用搜索工具是最能验证链路是否完整的题型。如果返回了几条看起来像样的结果再追问一句“第一条摘要里说了啥”确认模型确实读到了搜索内容。这一步最容易翻车的现象是模型调用了工具也拿到了 JSON但回答时却说“我没有找到相关信息”。这说明结果解析没做好模型只读到一串原始 JSON没被转成自然语言。解决办法是在 Prompt 模板里加一句“当web_search返回results数组时提取每条结果的 title、url 和 content按列表呈现”。很多人在这个坑上折腾一晚上最后发现就是一句话的事。记住模型不会自动分析 JSON你得先帮它把数据翻译成人话。4. 实测对比三条免费路径我踩完这些坑后的结论4.1 三个方案在同一台机器上的对比我在自己的小服务器上分别用三种路径接了 OpenClaw跑了大概一周的日常问题给你交个底。整体感知如下方案单次请求延迟稳定性成本推荐度商业 API 免费额度0.3-1 秒很好额度内免费适合入门验证自建元搜索服务1-3 秒一般看上游几乎为零适合长期主力直接抓 HTML2-5 秒很差几乎为零不推荐当主力商业 API 免费额度最省心JSON 稳定且字段规范接入几乎零负担但额度用完之后怎么处理是个问题尤其是你已经形成依赖突然断掉体验很糟。自建元搜索服务的延迟看起来比商业 API 高但实测体感不明显因为 OpenClaw 本身调用模型的耗时就有好几秒多出的一两秒被抹平了它的稳定性差在上游别的搜索引擎偶尔挤兑免费代理导致某个时段出现空结果需要你日常维护上游列表。直接抓 HTML 我就不展开了——反爬策略一天三变今天能用的解析代码明天就报废除非你只是想证明自己能做到否则别浪费时间。4.2 我的取舍标准如果你问我“白嫖党到底该用哪个”我的答案是有梯度地组合第一次接触 OpenClaw先用商业 API 免费额度把链路跑通它足够简单、足够稳适合建立信心确认流程无误之后再上自建元搜索服务把日常搜索流量从商业 API 切过来本地再挂一个简单的缓存把相同的搜索词直接缓存起来进一步减少请求。这一套组合下来日常使用基本零成本而且每一层都可以独立替换。我自己就是这样跑的中间虽然有上游挂掉的情况但因为备了多个上游整体没有断过。5. 踩坑实录与排查清单这些问题我基本都撞过5.1 最常见问题返回空结果当时我第一反应是服务坏了折腾半天才发现是某个上游把请求拦了。元搜索的宿命就在这你的查询要经过别家的门卫人家脾气一天三变。解决思路很直接打开元搜索的引擎设置只勾选当前网络环境里能稳定访问的 3-5 个上游不要全开。全开看起来很爽实际会让请求被更多上游判定为异常空结果概率更高并发请求也更慢。少而精反而更稳定。还有一种情况是搜索词本身有问题比如模型把用户的话压缩成了一个非常长的句子超过上游限制也会得到空结果。你可以查一下 OpenClaw 这次请求实际发出的 URL人工在浏览器里打开看看如果那个人工请求能返回数据问题就不在服务端而在模型构造查询词的方式上。5.2 连接被拒绝先分清是容器问题还是网络问题OpenClaw 报connection refused时大概率是网络层面的事。如果你按上面的配置把端口绑在了本机回环地址那就只能本机访问。OpenClaw 和元搜索服务如果跑在同一台机器上这个配置没问题但如果 OpenClaw 在另一台机器上就要把监听地址改成0.0.0.0再在防火墙层限制来源 IP。另一个容易忽略的点如果 OpenClaw 自己也跑在容器里那它里面的127.0.0.1指向容器自身而不是宿主机。这种情况要填宿主机在 Docker 网桥上的 IP或者直接把两个容器放进同一个自定义网络里用服务名互通。排查顺序建议是这样先在宿主机curl一遍确认服务存活再从 OpenClaw 所在环境里curl一遍能通再继续改配置。5.3 搜索结果是旧的明明更新了却查不到我遇到过两次分别有两个原因。第一次是缓存设置太长结果页把旧结果缓存在本地把缓存时间调短就解决了。第二次更隐蔽上游本身对“最新内容”的抓取就有延迟我换了一个对更新比较友好的上游偏好问题就消失了。如果你的场景对时效性要求极高比如查发布、查版本建议在 OpenClaw 的工具描述里写清楚“优先返回最新信息”模型在构造搜索词时也会更自觉地带上升序筛选。5.4 中文搜索结果很差英文却很正常别把元搜索想得太智能它对中文的支持其实依赖上游和语言设置。办法有两个一是在元搜索的语言偏好里把“简体中文”加上让它在聚合时更偏向中文页面二是在 OpenClaw 工具参数里加一个languagezh-CN之类的参数不同上游具体字段不同可以先在页面上手动调一轮找到合适参数后固定下来。如果还是差就在 Prompt 里告诉模型“用户可能期待中文结果”让它构造搜索词时带上更明确的中文语义。5.5 安全与滥用问题白嫖也得分寸自建元搜索服务暴露在公网等于给全世界白嫖你的带宽和 IP更麻烦的是别人可能滥用它去刷某些站点脏水泼到你的 IP 上轻则被限流重则被目标站点封禁。所以我一直强调绑定回环地址是本分。另外要定期看访问日志发现异常请求直接拉黑来源 IP。商业 API 的 Key 也同理别写进公开配置仓库用环境变量注入。OpenClaw 的配置目录如果本身就是公开的那就等于把钥匙挂门口了这一点务必注意。6. 把“免费”玩得更极致缓存、RSS 和本地模型一起上6.1 加一层本地缓存搜索词不再重复请求OpenClaw 的搜索有个特点用户反复问类似问题时搜索词经常差不多。与其每次都让元搜索服务去上游跑一圈不如在 OpenClaw 的搜索工具函数里加一层 SQLite 缓存按搜索词哈希做键存结果 JSON 和过期时间。比如设置过期时间 30 分钟30 分钟内相同搜索词直接读缓存返回上游请求量直接降一个量级。改动不复杂但对“长期运行”的体验提升非常明显尤其是你把这个服务挂在低配小主机上的时候。6.2 用 RSS 做主动监控比搜索更便宜搜索是“用户问才查”RSS 是“定时主动扫”。OpenClaw 完全可以注册第二个工具专门解析几个 RSS 源定期把最新条目整理出来写进本地文件。以后用户问“最近有什么新动态”模型直接从本地读取就行连搜索都不需要调。这个思路特别适合关注开源项目版本、技术博客这类更新频率稳定的源等于实现了一套免费的信息推送机制。6.3 更进一步搭配本地小模型做摘要如果你的机器配置够可以在 OpenClaw 后面接一个本地小模型专门做搜索结果摘要。把搜索返回的网页正文交给本地模型生成一句精炼摘要再用这个摘要去回答用户。这样远程模型 API 的 token 费用被进一步压缩。要注意的是本地模型的推理速度和显存占用机器不强的话摘要反而可能拖慢整体响应需要自己权衡。6.4 真正零成本一个 30 行的迷你搜索脚本如果你连容器都不想装还有一个更轻的思路在 OpenClaw 的工具注册表里写一个 Python 函数用最基础的requests库去请求一个无脚本页面再用标准库的html.parser提取结果。核心逻辑三块发请求、定位结果列表、截取标题链接。优点是极致轻量、不依赖额外服务缺点是稳定性极差页面结构只要一改就得跟着改。我拿它做过测试结论是白天能用晚上上游换了 HTML 结构就立刻报废。当应急备用可以正式用就算了。如果让我给一个最直接的建议别一上来就追求“完美全免费”先用商业 API 免费额度把 OpenClaw 的搜索链路跑通。这个过程中你会自然理解工具调用、JSON 解析、token 控制这些概念然后趁热把自建元搜索服务装上迁到本地再加缓存和 RSS一步步把成本压到零。我自己就是这样从“花钱求稳定”过渡到“免费也够用”的。踩过几次坑之后最大的体会是免费方案真正贵的是调试时间但只要你按“先验证链路再替换组件”的顺序来就能把这部分时间省到最低。给 OpenClaw 装免费搜索本质是给一位聪明的助理配一个勤快的秘书——秘书不一定非得用猎头推荐的自己培训出来的反而更顺手。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。