OpenClaw 中 web_search + web_fetch 最佳实践速查表
摘要:本文帮助读者明确 OpenClaw 网络搜索工具和不同搜索技能的的职责边界,理解“先搜索、再抓取、后总结”的最佳实践,并能更稳定地在 OpenClaw 中使用 tavily-search 与 web_fetch 完成网络信息搜索任务。主要内容包括:解决 OpenClaw 中 web_search、tavily-search、web_fetch、原生 provider 与扩展 skill 容易混淆的问题、网络搜索能力分层说明、OpenClaw 原生搜索 provider 与 Tavily/Firecrawl 扩展 skill 的区别、标准工作流、提示词模板、命令行验证、常见误区与排障方法。
导读:如果你还没有为 OpenClaw 安装 Tavily-Search 、Agent-Reach 或平替的搜索技能,先阅读以下文章:
- Tavily-Search 安装 (TODO)
- Agent Reach 安装与 OpenClaw 网络搜索能力扩展指南
目录
- 一、核心结论
- 二、OpenClaw 2026.3.13 的搜索能力层次
- 三、从使用者视角理解整体结构
- 四、一句话理解关系
- 五、web_search、原生 provider、扩展 skill、web_fetch 的关系
- 六、推荐的理解模型
- 七、最推荐的使用分工
- 八、标准工作流
- 九、什么时候优先用 tavily-search
- 十、什么时候优先用 web_fetch
- 十一、OpenClaw 中推荐的标准流程
- 十二、最常用的对话提示词模板
- 十三、命令行直测速查
- 十四、在对话中怎么更稳定触发正确流程
- 十五、常见误区
- 十六、推荐默认策略
- 十七、排障速查
- 十八、术语表
- 十九、一句话总结
一、核心结论
在 OpenClaw 里,最容易混淆的几个概念是:
- web_search
- tavily-search
- web_fetch
- 原生搜索 provider
- 扩展 skill
最准确、最实用的理解方式是:
- **web_search**:统一的网页搜索能力接口/抽象能力
- **web_fetch**:统一的网页读取/抓取能力接口
- 原生 provider:OpenClaw 直接支持配置的搜索后端
- 扩展 skill:用户手动安装后接入的额外搜索/抓取能力
- **tavily-search**:属于扩展 skill,不是 OpenClaw 2026.3.13 当前配置向导里的原生 provider
一句话记忆:
搜索负责找,抓取负责读;原生 provider 是 OpenClaw 自带接线,Tavily / Firecrawl 是后装扩展能力。
二、OpenClaw 2026.3.13 的搜索能力层次
1)原生可配置的 web search provider
在 OpenClaw 2026.3.13 版本中,配置向导当前原生支持以下搜索 provider:
- Brave Search # 需要 API Key,有免费额度,但需要绑定信用卡
- Gemini (Google Search) # 需要 API Key,依赖 Google 服务,国内需代理
- Grok (xAI) # 需要 API Key,国内访问限制多,文档较少
- Kimi (Moonshot) # 需要 API Key,中文理解优秀,国际内容覆盖可能较弱
- Perplexity Search # 需要 API Key,国内需代理
OpenClaw 配置导向提示如下:
◆ Choose web search provider
│ ● Brave Search (Structured results · country/language/time filters)
│ ○ Gemini (Google Search)
│ ○ Grok (xAI)
│ ○ Kimi (Moonshot)
│ ○ Perplexity Search
这些属于:
- OpenClaw 原生支持
- 用户可在配置时直接选择
- 是 web_search 能力的默认后端候选
2)需要用户自行安装和配置的 skill
以下能力不是当前版本配置向导里原生可选的 web_search provider,而是需要用户自行安装:
- Firecrawl
- Tavily
它们属于:
- 扩展 skill
- 需要手动安装
- 需要单独配置 API key 或依赖
- 安装后可以补充搜索、抓取或 AI 优化检索能力
所以:
Brave / Gemini / Grok / Kimi / Perplexity 是原生 provider; Firecrawl / Tavily 是额外安装的扩展 skill。
三、从使用者视角理解整体结构
#mermaid-svg-9mXiLLxBlQMMD4rN{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-9mXiLLxBlQMMD4rN .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-9mXiLLxBlQMMD4rN .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-9mXiLLxBlQMMD4rN .error-icon{fill:#552222;}#mermaid-svg-9mXiLLxBlQMMD4rN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9mXiLLxBlQMMD4rN .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-9mXiLLxBlQMMD4rN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9mXiLLxBlQMMD4rN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9mXiLLxBlQMMD4rN .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-9mXiLLxBlQMMD4rN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9mXiLLxBlQMMD4rN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9mXiLLxBlQMMD4rN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9mXiLLxBlQMMD4rN .marker.cross{stroke:#333333;}#mermaid-svg-9mXiLLxBlQMMD4rN svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9mXiLLxBlQMMD4rN p{margin:0;}#mermaid-svg-9mXiLLxBlQMMD4rN .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-9mXiLLxBlQMMD4rN .cluster-label text{fill:#333;}#mermaid-svg-9mXiLLxBlQMMD4rN .cluster-label span{color:#333;}#mermaid-svg-9mXiLLxBlQMMD4rN .cluster-label span p{background-color:transparent;}#mermaid-svg-9mXiLLxBlQMMD4rN .label text,#mermaid-svg-9mXiLLxBlQMMD4rN span{fill:#333;color:#333;}#mermaid-svg-9mXiLLxBlQMMD4rN .node rect,#mermaid-svg-9mXiLLxBlQMMD4rN .node circle,#mermaid-svg-9mXiLLxBlQMMD4rN .node ellipse,#mermaid-svg-9mXiLLxBlQMMD4rN .node polygon,#mermaid-svg-9mXiLLxBlQMMD4rN .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9mXiLLxBlQMMD4rN .rough-node .label text,#mermaid-svg-9mXiLLxBlQMMD4rN .node .label text,#mermaid-svg-9mXiLLxBlQMMD4rN .image-shape .label,#mermaid-svg-9mXiLLxBlQMMD4rN .icon-shape .label{text-anchor:middle;}#mermaid-svg-9mXiLLxBlQMMD4rN .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-9mXiLLxBlQMMD4rN .rough-node .label,#mermaid-svg-9mXiLLxBlQMMD4rN .node .label,#mermaid-svg-9mXiLLxBlQMMD4rN .image-shape .label,#mermaid-svg-9mXiLLxBlQMMD4rN .icon-shape .label{text-align:center;}#mermaid-svg-9mXiLLxBlQMMD4rN .node.clickable{cursor:pointer;}#mermaid-svg-9mXiLLxBlQMMD4rN .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-9mXiLLxBlQMMD4rN .arrowheadPath{fill:#333333;}#mermaid-svg-9mXiLLxBlQMMD4rN .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9mXiLLxBlQMMD4rN .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9mXiLLxBlQMMD4rN .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9mXiLLxBlQMMD4rN .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-9mXiLLxBlQMMD4rN .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9mXiLLxBlQMMD4rN .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-9mXiLLxBlQMMD4rN .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9mXiLLxBlQMMD4rN .cluster text{fill:#333;}#mermaid-svg-9mXiLLxBlQMMD4rN .cluster span{color:#333;}#mermaid-svg-9mXiLLxBlQMMD4rN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9mXiLLxBlQMMD4rN .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-9mXiLLxBlQMMD4rN rect.text{fill:none;stroke-width:0;}#mermaid-svg-9mXiLLxBlQMMD4rN .icon-shape,#mermaid-svg-9mXiLLxBlQMMD4rN .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9mXiLLxBlQMMD4rN .icon-shape p,#mermaid-svg-9mXiLLxBlQMMD4rN .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-9mXiLLxBlQMMD4rN .icon-shape rect,#mermaid-svg-9mXiLLxBlQMMD4rN .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9mXiLLxBlQMMD4rN .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-9mXiLLxBlQMMD4rN .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-9mXiLLxBlQMMD4rN :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
OpenClaw 的统一能力接口
能力来源
原生 providerBrave / Gemini / Grok / Kimi / Perplexity
扩展 skillTavily / Firecrawl
🔎 web_search搜索关键词 / 找来源 / 找链接
📄 web_fetch打开页面 / 抓取正文 / 读取细节
四、一句话理解关系
web_search 和 web_fetch 是 OpenClaw / agent 提供给你的统一能力接口,像“遥控器”; Brave、Gemini、Grok、Kimi、Perplexity 是 OpenClaw 原生支持的搜索 provider,像内置频道”; Tavily、Firecrawl 是用户后装的扩展 skill,像“额外加装的频道模块”; 你配置了哪个 provider 或安装了哪个 skill,agent 就更可能通过对应能力去完成搜索或抓取。
五、web_search、原生 provider、扩展 skill、web_fetch 的关系
1)web_search 是能力层
web_search 说的是“网页搜索”这件事本身,不一定绑定某一个具体产品名。
它可以由以下两类来源来实现:
- 原生 provider
- 扩展 skill
2)原生 provider 是 OpenClaw 内建支持的后端
在 OpenClaw 2026.3.13 中,以下属于原生 provider:
- Brave Search
- Gemini
- Grok
- Kimi
- Perplexity Search
这些更接近:
- 安装时可直接选
- 配置体验更原生
- 默认就是 OpenClaw 官方接入的搜索后端
3)Tavily / Firecrawl 属于扩展 skill
它们不是当前版本配置向导里直接列出的原生 provider,而是:
- 用户单独安装
- 手动配置
- 作为扩展能力接入 OpenClaw
所以:
- tavily-search 不是当前版本原生 web_search provider 列表的一员
- 但它依然可以提供高质量网页搜索能力
- 在实际使用中,它可以充当 web_search 的一种补充实现
4)web_fetch 是网页读取能力
web_fetch 的职责通常是:
- 打开具体 URL
- 读取页面内容
- 抓取正文
- 提取细节
所以它不负责“找页面”,而负责“读页面”。
六、推荐的理解模型
模型 1:能力层
- web_search:找来源
- web_fetch:读来源
模型 2:实现层
- 原生 provider:Brave / Gemini / Grok / Kimi / Perplexity
- 扩展 skill:Tavily / Firecrawl
模型 3:具体环境中的最佳实践
假定当前额外安装了:
- tavily-search
- agent-reach
而 web_fetch 是当前 agent 已可用的 tool。
所以你当前更适合的工作流是:
如何安装 tavily-search:(TODO:有空补上安装实践记录) 如何安装 agent-reach` :Agent Reach 安装与 OpenClaw 网络搜索能力扩展指南
七、最推荐的使用分工
tavily-search 负责什么
适合:
- 找最新资料
- 找新闻
- 找论文入口
- 找官方文档入口
- 找多个候选来源
- 为后续精读做召回
web_fetch 负责什么
适合:
- 已经有 URL
- 已经知道要读哪个页面
- 读取正文
- 抓取细节
- 提取发布日期、作者、版本号、参数说明
- 核对页面中是否真的写了某句话
agent-reach 负责什么
适合:
- 协调多步任务
- 提高外部能力被调用的概率
- 强化“先搜索、再阅读、再总结”的工作流
- 降低模型直接凭已有知识回答的概率
八、标准工作流
工作流 A:你没有 URL
工作流 B:你已有 URL
工作流 C:复杂多步任务
九、什么时候优先用 tavily-search
适合:
- 你还没有具体网址
- 你要查“最新”“最近”“本周”“本月”
- 你需要候选来源列表
- 你要找新闻、论文、公告、文档入口
- 你不确定先读哪个页面
典型任务:
- 最近一周 AI 新闻
- 某个框架最近更新了什么
- 某个 API 的官方文档入口
- 某个研究方向最近有哪些论文
十、什么时候优先用 web_fetch
适合:
- 你已经有 URL
- 你只想读某个页面
- 你需要正文
- 你需要页面细节
- 你要提取参数、版本号、发布日期等信息
典型任务:
- 阅读官方文档页面
- 总结新闻正文
- 提取博客文章要点
- 查看 release note 里的变更项
十一、OpenClaw 中推荐的标准流程
#mermaid-svg-HC0bOU2UdQWPQcqL{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-HC0bOU2UdQWPQcqL .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-HC0bOU2UdQWPQcqL .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-HC0bOU2UdQWPQcqL .error-icon{fill:#552222;}#mermaid-svg-HC0bOU2UdQWPQcqL .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-HC0bOU2UdQWPQcqL .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-HC0bOU2UdQWPQcqL .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-HC0bOU2UdQWPQcqL .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-HC0bOU2UdQWPQcqL .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-HC0bOU2UdQWPQcqL .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-HC0bOU2UdQWPQcqL .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-HC0bOU2UdQWPQcqL .marker{fill:#333333;stroke:#333333;}#mermaid-svg-HC0bOU2UdQWPQcqL .marker.cross{stroke:#333333;}#mermaid-svg-HC0bOU2UdQWPQcqL svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-HC0bOU2UdQWPQcqL p{margin:0;}#mermaid-svg-HC0bOU2UdQWPQcqL .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-HC0bOU2UdQWPQcqL .cluster-label text{fill:#333;}#mermaid-svg-HC0bOU2UdQWPQcqL .cluster-label span{color:#333;}#mermaid-svg-HC0bOU2UdQWPQcqL .cluster-label span p{background-color:transparent;}#mermaid-svg-HC0bOU2UdQWPQcqL .label text,#mermaid-svg-HC0bOU2UdQWPQcqL span{fill:#333;color:#333;}#mermaid-svg-HC0bOU2UdQWPQcqL .node rect,#mermaid-svg-HC0bOU2UdQWPQcqL .node circle,#mermaid-svg-HC0bOU2UdQWPQcqL .node ellipse,#mermaid-svg-HC0bOU2UdQWPQcqL .node polygon,#mermaid-svg-HC0bOU2UdQWPQcqL .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-HC0bOU2UdQWPQcqL .rough-node .label text,#mermaid-svg-HC0bOU2UdQWPQcqL .node .label text,#mermaid-svg-HC0bOU2UdQWPQcqL .image-shape .label,#mermaid-svg-HC0bOU2UdQWPQcqL .icon-shape .label{text-anchor:middle;}#mermaid-svg-HC0bOU2UdQWPQcqL .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-HC0bOU2UdQWPQcqL .rough-node .label,#mermaid-svg-HC0bOU2UdQWPQcqL .node .label,#mermaid-svg-HC0bOU2UdQWPQcqL .image-shape .label,#mermaid-svg-HC0bOU2UdQWPQcqL .icon-shape .label{text-align:center;}#mermaid-svg-HC0bOU2UdQWPQcqL .node.clickable{cursor:pointer;}#mermaid-svg-HC0bOU2UdQWPQcqL .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-HC0bOU2UdQWPQcqL .arrowheadPath{fill:#333333;}#mermaid-svg-HC0bOU2UdQWPQcqL .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-HC0bOU2UdQWPQcqL .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-HC0bOU2UdQWPQcqL .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-HC0bOU2UdQWPQcqL .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-HC0bOU2UdQWPQcqL .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-HC0bOU2UdQWPQcqL .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-HC0bOU2UdQWPQcqL .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-HC0bOU2UdQWPQcqL .cluster text{fill:#333;}#mermaid-svg-HC0bOU2UdQWPQcqL .cluster span{color:#333;}#mermaid-svg-HC0bOU2UdQWPQcqL div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-HC0bOU2UdQWPQcqL .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-HC0bOU2UdQWPQcqL rect.text{fill:none;stroke-width:0;}#mermaid-svg-HC0bOU2UdQWPQcqL .icon-shape,#mermaid-svg-HC0bOU2UdQWPQcqL .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-HC0bOU2UdQWPQcqL .icon-shape p,#mermaid-svg-HC0bOU2UdQWPQcqL .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-HC0bOU2UdQWPQcqL .icon-shape rect,#mermaid-svg-HC0bOU2UdQWPQcqL .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-HC0bOU2UdQWPQcqL .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-HC0bOU2UdQWPQcqL .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-HC0bOU2UdQWPQcqL :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
有
没有
用户问题
是否已有明确 URL?
直接用 web_fetch
先用 web_search 能力搜索
在你当前环境里可由原生 provider 或 tavily-search 实现
得到候选来源 / 链接
再用 web_fetch 读取
十二、最常用的对话提示词模板
1)搜索后再读取
先使用 tavily-search 搜索这个主题,列出 5 个最相关来源;再使用 web_fetch 打开最相关的 1 个页面并总结。主题:multimodal RAG 最新论文
2)只搜索,不精读
使用 tavily-search 搜索:最近一周关于 OpenAI 模型发布的新闻,只给我来源列表和一句话摘要。
3)官方来源优先
使用 tavily-search 搜索 Kubernetes Ingress 官方文档,优先官方来源;再用 web_fetch 打开最相关页面并总结。
4)搜索新闻
先用 tavily-search 搜索最近一周 AI agent 相关新闻,再给我按时间排序的摘要。
5)搜索论文
先使用 tavily-search 搜索 multimodal RAG 相关论文,优先 arXiv 和官方论文页面,再使用 web_fetch 阅读最相关页面并总结。
6)多步任务协同
这是一个多步任务。请通过 agent-reach 协调当前可用能力,不要直接凭已有知识回答。先使用 tavily-search 搜索高质量来源,再使用 web_fetch 阅读最相关页面,最后给出带来源的结论。主题:最近一个月关于 AI agent memory 的研究进展。
十三、命令行直测速查
下面这些命令用于直接测试 tavily-search skill 本体。
基础搜索
# 作用:执行最基础的一次 Tavily 搜索。
# 语法:node <脚本路径> "<查询词>"
# 规则:
# – 查询词建议放在双引号中
# – 适合快速验证插件和 API key 是否生效
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "python async patterns"
指定结果数量
# 作用:控制返回结果数。
# 语法:node <脚本路径> "<查询词>" -n <数量>
# 规则:
# – 常见范围 1 到 20
# – 数量越多,召回越广,但噪声可能增加
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "React hooks tutorial" -n 10
指定搜索深度
# 作用:调整搜索深度,在速度和相关性之间取平衡。
# 语法:node <脚本路径> "<查询词>" –depth <模式>
# 规则:
# – 可选值:ultra-fast、fast、basic、advanced
# – basic 最通用
# – advanced 适合研究型任务
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "machine learning evaluation benchmarks" –depth advanced
搜索新闻
# 作用:把搜索主题切换为新闻类。
# 语法:node <脚本路径> "<查询词>" –topic news
# 规则:
# – 适合最新事件、产品发布、政策变化
# – 如果不是新闻类查询,建议用默认 general
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "AI regulation Europe" –topic news
限定时间范围
# 作用:限制搜索结果的时间范围。
# 语法:node <脚本路径> "<查询词>" –time-range <范围>
# 规则:
# – 可选值:day、week、month、year
# – 适合“最近一周”“最近一个月”这类查询
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "OpenAI API updates" –topic news –time-range week
限定域名
# 作用:只保留指定域名结果。
# 语法:node <脚本路径> "<查询词>" –include-domains <域名列表>
# 规则:
# – 多个域名通常用逗号分隔
# – 适合官方文档、论文站点、可信来源筛选
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "Python asyncio gather" –include-domains docs.python.org
排除域名
# 作用:排除某些不想要的域名。
# 语法:node <脚本路径> "<查询词>" –exclude-domains <域名列表>
# 规则:
# – 多个域名通常用逗号分隔
# – 适合过滤低质量或无关站点
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "LLM benchmarks" –exclude-domains pinterest.com,reddit.com
输出 JSON
# 作用:输出原始 JSON,方便调试和脚本二次处理。
# 语法:node <脚本路径> "<查询词>" –json
# 规则:
# – 适合程序消费
# – 不适合纯人工阅读
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "vector database comparison" –json
返回更完整内容
# 作用:尝试返回更完整的页面内容,而不只是摘要片段。
# 语法:node <脚本路径> "<查询词>" –raw-content
# 规则:
# – 输出会更长
# – 更适合研究和离线分析
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "multimodal RAG survey" –raw-content
多参数组合
# 作用:组合数量、主题、时间范围、域名过滤等参数。
# 语法:
# node <脚本路径> "<查询词>" -n <数量> –topic <主题> –time-range <范围> –include-domains <域名列表>
# 规则:
# – 参数越明确,结果通常越稳定
# – 适合研究型和高价值查询
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "multimodal RAG papers" -n 8 –topic general –time-range year –include-domains arxiv.org,acm.org
十四、在对话中怎么更稳定触发正确流程
推荐写法 1:明确步骤
先使用 tavily-search 搜索高质量来源,再使用 web_fetch 阅读最相关页面,最后总结。
推荐写法 2:强调不要直接回答
不要直接凭已有知识回答。先使用 tavily-search 搜索,再使用 web_fetch 阅读来源,然后给出结论。
推荐写法 3:强调这是最新信息
这是一个需要最新信息的问题。请先使用 tavily-search 搜索最近一周相关资料,再使用 web_fetch 阅读最相关页面。
推荐写法 4:强调官方来源
先使用 tavily-search 搜索,优先官方来源;再使用 web_fetch 打开最相关页面并提取关键信息。
推荐写法 5:加入 agent-reach 强化多步协同
请通过 agent-reach 协调当前可用能力,不要直接回答。先使用 tavily-search 搜索高质量来源,再使用 web_fetch 阅读关键页面,最后输出带来源的总结。
十五、常见误区
误区 1:把 web_search 当成固定插件名
web_search 往往是“网页搜索能力”的泛称,不一定是某个具体 skill 名。
误区 2:把原生 provider 和扩展 skill 混为一谈
- Brave / Gemini / Grok / Kimi / Perplexity 是 OpenClaw 原生 provider
- Tavily / Firecrawl 是用户自行安装的扩展 skill
误区 3:把 web_fetch 当成搜索工具
web_fetch 一般负责“打开页面”,不是“找页面”。
误区 4:以为装了 tavily-search 就不需要 web_fetch
tavily-search 更适合召回来源,web_fetch 更适合精读页面。两者配合效果最好。
误区 5:以为 provider、skill、tool 是同一层
- provider:底层服务来源
- skill:扩展能力封装方式
- tool / interface:agent 暴露给你的能力入口
误区 6:以为 agent-reach 是搜索工具
agent-reach 更适合作为多步任务协调层,而不是单独的搜索引擎替代品。
十六、推荐默认策略
如果没有 URL
先用 tavily-search
如果有 URL
直接用 web_fetch
如果问题涉及最新信息
先用 tavily-search,必要时限定时间范围
如果需要精读
先 tavily-search,后 web_fetch
如果需要官方来源
先用 tavily-search 找官方页面,再用 web_fetch 读
如果任务是多步研究
加入 agent-reach 协调“搜索 → 阅读 → 总结”
十七、排障速查
情况 1:脚本报 TAVILY_API_KEY not set
说明当前 shell 没拿到环境变量。
# 作用:检查当前 shell 是否已经有 TAVILY_API_KEY。
# 语法:echo "$TAVILY_API_KEY"
# 规则:
# – 有输出表示变量已生效
# – 空输出表示变量未生效
echo "$TAVILY_API_KEY"
情况 2:tavily-search 已安装,但对话里没触发
通常不是安装失败,而是提示词不够明确。
建议直接这样写:
不要直接回答。先使用 tavily-search 搜索,再使用 web_fetch 阅读来源,最后给出结论。
情况 3:旧会话行为异常
新开一个会话再试,避免旧上下文干扰工具选择。
情况 4:想确认 skill 本体是否可用
# 作用:绕过会话层,直接测试 tavily-search skill 脚本本体。
# 语法:node <脚本路径> "<查询词>"
# 规则:
# – 这是最稳的插件可用性验证方法
node ~/.openclaw/skills/liang-tavily-search/scripts/search.mjs "latest papers on multimodal RAG"
情况 5:复杂任务总是只用一个工具
尝试在提示词中显式加入:
这是一个多步任务。请通过 agent-reach 协调当前可用能力,先搜索,再阅读,最后总结。
十八、术语表
web_search
网页搜索能力的抽象接口,重点是“找来源”。
web_fetch
网页读取能力接口,重点是“读页面”。
provider
底层搜索/能力提供方,例如:
- Brave
- Gemini
- Grok
- Kimi
- Perplexity
skill
额外安装的扩展能力封装,例如:
- Tavily
- Firecrawl
- agent-reach
tavily-search
基于 Tavily 的扩展搜索 skill,可用于补充或增强 web_search 能力。
agent-reach
用于协调多步任务、强化外部能力调用的 skill,不是传统搜索引擎替代品。
十九、一句话总结
- **web_search**:搜索能力的抽象接口
- 原生 provider:Brave / Gemini / Grok / Kimi / Perplexity
- 扩展 skill:Tavily / Firecrawl / agent-reach
- **web_fetch**:网页读取与抓取能力
最佳实践是:
先用搜索能力找来源(你当前常用 tavily-search),再用 web_fetch 读来源;复杂任务再用 agent-reach 协调。



