
1. 为什么大家都在把 Tavily 换成 Serper Search如果你最近在折腾 OpenClaw 的联网搜索能力大概率会刷到两个名字Tavily 和 Serper Search。前者是 AI 原生搜索的代表自带摘要和去噪后者底层走的是 Serper.dev 提供的 Google Search API返回的是 Google 搜索结果页的结构化 JSON。38K 开发者选择 Serper核心原因就一句话你看到的就是 Google 看到的不做二次加工知识图谱、People Also Ask、相关搜索这些字段全都原样给你。这篇不聊虚的聚焦一件事在 OpenClaw 里把搜索 Skill 从 Tavily 切到 Serper Search并且把 Key 通道统一收敛到 TaoToken。我会给出可直接复制的settings.json骨架、环境变量写法、连通性验证命令以及切换过程中最容易踩的几个坑。适合已经装好 OpenClaw、想让 AI 真正能上网查资料的开发者也适合刚开始接触 Skill 配置的新手。先说清楚 Serper Search 能做什么它让 AI 直接拿到 Google 的搜索结果包括标题、链接、摘要、知识图谱、图片、新闻、地图、学术论文等 9 种搜索类型。响应通常在 1-2 秒免费额度 2500 次且不用绑卡。对个人开发者来说这个门槛足够低拿来当主力搜索 Skill 完全够用。2. 前置准备TaoToken 统一 Key 通道在动settings.json之前先把 Key 这件事理顺。很多人的 OpenClaw 里散落着各种 API Key搜索一个、模型一个、Agent 又一个改起来到处找。我的做法是统一走 TaoToken 一个通道搜索 Skill 和模型调用都从这里取 Key配置集中、排查也集中。TaoToken 的定位是给开发者提供统一的模型与能力接入入口官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。你需要先去控制台生成一个 API Key后面 Serper Search 的调用就走这个 Key 转发。具体动作分三步第一步打开控制台页面 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 登录后进入 API Keys 管理页 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 新建一个 Key命名建议带上用途比如openclaw-serper方便以后按 Skill 粒度回收。第二步确认你的 OpenClaw 版本支持自定义 base_url。较新的版本在settings.json里可以直接写baseUrl字段老版本需要通过环境变量注入。下面配置片段我按新版本写老版本我会在排障章节给替代方案。第三步把 Key 存到环境变量而不是硬编码进配置文件。硬编码一旦提交到 Git 就是事故这个坑我见过太多次。注意TaoToken 是统一的接入通道不是让你绕过任何合规要求。所有调用都走正常 API 请求配置时保持 base_url 指向官方端点即可。3. 可复制配置settings.json 骨架与 Skill 声明OpenClaw 的 Skill 配置核心在settings.json搜索类 Skill 一般放在skills数组里。下面是一份可以直接抄的骨架重点看serper-search这一段和顶层的providers段。{ providers: { taotoken: { baseUrl: https://taotoken.net/api, apiKeyEnv: TAOTOKEN_API_KEY, timeout: 30000 } }, skills: [ { name: serper-search, enabled: true, provider: taotoken, endpoint: /v1/search/serper, params: { gl: cn, hl: zh-cn, num: 10 }, triggers: [ 搜索, 查一下, 最新, search, google ] } ], gateway: { port: 18789, logLevel: info } }几个字段解释一下。provider指向顶层定义的taotoken这样 Skill 不用自己再存一份 Key。endpoint是搜索请求的相对路径实际请求会拼成https://taotoken.net/api/v1/search/serper。params里的gl是地理位置cn表示中国hl是界面语言zh-cn是简体中文num是返回条数默认 10最大可以到 100。triggers是触发词OpenClaw 收到用户指令后会做关键词匹配命中就调用这个 Skill。你可以按自己的说话习惯加比如帮我找调研一下。环境变量这样设置# macOS / Linux export TAOTOKEN_API_KEY你的_TaoToken_Key # Windows PowerShell $env:TAOTOKEN_API_KEY 你的_TaoToken_Key如果你想让配置持久化Linux/macOS 写进~/.zshrc或~/.bashrcWindows 用系统环境变量面板添加。设置完记得新开一个终端或者source一下配置文件。改完settings.json后重启网关openclaw gateway restart然后确认 Skill 状态openclaw skills list看到serper-search状态是ready就说明加载成功了。如果显示error或者missing-key先别急第 5 节有对应排查。4. 连通性验证从 curl 到 OpenClaw 实跑配置写完不代表链路通必须做一次端到端验证。我习惯分两层验先用 curl 直接打 API确认 Key 和端点没问题再通过 OpenClaw 发自然语言指令确认 Skill 路由正常。第一层curl 验证curl -X POST https://taotoken.net/api/v1/search/serper \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { q: OpenClaw Serper Search Skill, gl: cn, hl: zh-cn, num: 5 }正常返回是一个 JSON里面会有organic数组每条包含title、link、snippet。如果返回 401说明 Key 不对或没带上返回 404检查 endpoint 路径拼写返回超时看网络和timeout设置。第二层OpenClaw 实跑。启动交互模式openclaw chat然后输入一句自然语言帮我搜索 OpenClaw 最新版本的更新内容返回 5 条结果观察日志里有没有skill: serper-search triggered这样的记录。如果触发了但没结果多半是参数问题如果压根没触发是triggers没匹配上回去加关键词。成功的话你会看到 AI 把结构化结果整理成一段可读的回答附上来源链接。这一步跑通说明从 OpenClaw → TaoToken → Serper 的整条链路是活的。提示验证阶段把num设小一点比如 3-5响应更快也省额度。等确认没问题再调大。5. 本篇常见错排查切换搜索 Skill 时报错集中在几个地方我按出现频率排一下。错误一missing-key或 401 Unauthorized。最常见。原因通常是环境变量没生效或者apiKeyEnv名字和实际变量名对不上。检查方法echo $TAOTOKEN_API_KEY看有没有值。Windows 下注意 PowerShell 和 CMD 的环境变量作用域不同重启终端再试。错误二Skill 加载了但从不触发。说明triggers没命中。OpenClaw 的匹配是关键词级的你说话里得包含触发词。解决办法是把常用说法都加进去或者临时在指令里带上搜索两个字。错误三返回 404 或 endpoint not found。检查baseUrl和endpoint拼接后的完整路径。baseUrl结尾不要带斜杠endpoint开头要带斜杠拼出来是https://taotoken.net/api/v1/search/serper。多一个或少一个斜杠都会 404。错误四老版本 OpenClaw 不认providers字段。如果你的版本较旧settings.json里没有providers支持就退回环境变量方案直接把 Key 设成 Skill 约定的变量名比如SERPER_API_KEY然后在 Skill 配置里去掉provider字段。具体变量名看你的 Skill 文档。错误五中文搜索结果不理想。检查gl和hl是否设成cn和zh-cn。如果搜的是英文内容改成us和en效果更好。这两个参数直接影响 Google 返回结果的地区倾向。错误六响应慢或超时。先把timeout从 30000 调到 60000 试试。如果还是慢检查是不是num设太大一次拉 100 条本来就慢。日常用 10 条足够。排查顺序建议先 curl 确认 API 层通再看 Skill 状态最后看触发日志。一层层往下别一上来就改配置。6. 后续怎么用模型对话与 Coding Plan 分流链路通了之后日常使用其实就两种场景对应两个入口。一种是验证模型和搜索配合效果比如你想看看不同模型处理 Serper 返回的 JSON 谁更利索可以直接在模型对话页试https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。把搜索指令丢进去对比输出质量选一个你顺手的。另一种是长期编码和 Agent 工作流比如你要把 Serper Search 接进自动化的竞品监控、论文追踪脚本里跑定时任务那就用 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。这个更适合需要稳定调用、按量计费的场景配置一次长期跑。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有完整的参数说明和示例遇到字段不确定的时候翻一下比猜快。如果你用的是 Claude Code 那套工具链Anthropic 兼容入口在 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode-anthropicutm_campaignrewrite 配置方式类似Key 还是同一个。最后给个实用建议Serper 的免费额度是 2500 次一次性发放不是每月刷新。日常调试把num压到 5 以内验证阶段别拿大查询刷。等确认工作流稳定了再放开条数。这样一套配置下来你的 OpenClaw 搜索能力基本就到位了剩下的就是拿它去解决具体问题。