OpenClaw配置Tavily 搜索 Skill 完整指南教程

  发布时间:2026-03-19 11:49:27   作者:tommychian   我要评论
本文记录为 OpenClaw 2026.3.8 + 飞书 Agent 添加 Tavily 搜索能力的完整过程,包括安装方式、安全配置、搜索优先级调整,以及踩过的所有坑和最终结论,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧

💡 本文记录为 OpenClaw 2026.3.8 + 飞书 Agent 添加 Tavily 搜索能力的完整过程,包括安装方式、安全配置、搜索优先级调整,以及踩过的所有坑和最终结论

⚠️ 重要结论(先说结果)

经过完整的安装、配置和调试,最终结论是:Tavily Skill 可以成功安装且 API 完全可用,但 OpenClaw 2026.3.8 的 Agent 不会主动调用 Skill 脚本进行搜索

根本原因:Agent 搜索时调用的是 OpenClaw 内置的 web_search 工具(后端为 Brave Search,在国内被墙),而不是用户安装的 Skill 脚本。当内置搜索失败后,Agent 会降级到 SearXNG Skill,但不会降级到 Tavily Skill

当前可行方案:SearXNG 作为搜索主力,效果良好。Tavily API Key 已就位,等 OpenClaw 后续版本支持 MCP(openclaw mcp add)后可一键接入。

本文的价值:即使 Tavily 暂时无法作为 Agent 搜索工具使用,本文记录的 Skill 安装流程、API Key 配置方法、AGENTS.md 修改策略、npm 国内镜像踩坑解决方案等内容,对 OpenClaw 用户仍有重要参考价值。

一、环境背景

项目配置
服务器阿里云 ECS
OpenClaw 版本2026.3.8
AI 模型dashscope/kimi-k2.5(默认)、custom-api123-icu/claude-sonnet-4-6(备用)
前端渠道飞书自建 Agent(多多助理)
子 Agentresearcher、coder、writer、trader
已有搜索SearXNG + Jina Reader(主力)、Bocha(替补,600+ 次余额)

二、为什么要加 Tavily?

2.1 Tavily vs SearXNG + Jina Reader 对比

维度SearXNG + Jina ReaderTavily
返回格式链接列表 → 需 Jina 二次抓取结构化摘要 + 关键信息,直接可用
Agent 集成两个 Skill 配合(搜索 + 阅读)原生为 AI Agent 设计,一步到位
信息密度低,需要多步处理高,预处理过的结果
响应速度SearXNG ~1s + Jina ~15s ≈ 16s快速(已预处理)
稳定性依赖本地 Docker + 第三方引擎云端 API,稳定性好
费用完全免费免费 1000 次/月
本地资源占用 Docker + Redis 内存零本地资源消耗

2.2 升级后的三层搜索架构

优先级 1:Tavily       → 高质量结构化结果,1000 次/月,日常主力
优先级 2:SearXNG + Jina → 免费无限次,兜底 / 批量搜索场景
优先级 3:Bocha         → 600+ 次余额,应急备用

三、获取 Tavily API Key

3.1 注册账号

  1. 访问 app.tavily.com
  2. 注册账号(支持 Google / GitHub 登录)
  3. 无需信用卡,免费计划(Researcher)即包含 1000 次/月 额度

3.2 获取 API Key

  1. 登录后进入 Dashboard
  2. 复制你的 API Key(格式类似 tvly-xxxxxxxxxxxxxxxx
  3. 妥善保存,后面要用

四、安装 Tavily Search Skill

⚠️ 关于安装方式的选择:部分文档提到可以用 openclaw mcp add 命令通过 MCP 方式安装,但经实测 OpenClaw 2026.3.8 不支持 mcp 子命令。因此我们使用 Skill 安装方式,这是当前版本完全支持的标准方法。

4.1 方式一:ClawHub 安装(推荐)

ClawHub 是 OpenClaw 的官方 Skill 市场,类似 npm 之于 Node.js。

 ⚠️ 国内服务器踩坑:直接运行 npx clawhub@latest install 会使用国内 npm 镜像源(如淘宝镜像),但 clawhub@0.8.0 依赖的 undici@^7.24.0 在国内镜像上未同步,会报错:

npm error notarget No matching version found for undici@^7.24.0

解决方案:在命令前加 npm_config_registry=https://registry.npmjs.org 前缀,强制使用官方 npm 源。这是所有国内 OpenClaw 用户安装 Skill 时都可能遇到的问题。

第一步:搜索可用的 Tavily Skill

npm_config_registry=https://registry.npmjs.org npx clawhub@latest search tavily

搜索结果会显示多个 Skill,排名靠前的几个:

openclaw-tavily-search  Tavily 搜索  (3.707)
tavily-tool             Tavily       (3.603)
liang-tavily-search     Tavily Search (3.522)
tavily-web-search-for-openclaw  Tavily Web Search Skill for OpenClaw 🦀  (3.505)

第二步:安装排名第一的 Skill

npm_config_registry=https://registry.npmjs.org npx clawhub@latest install openclaw-tavily-search

 💡 注意:搜索结果中没有叫 tavily-search 的 Skill(这个名字会报 Skill not found),要用实际搜索到的名字。

第三步:确认安装成功

openclaw skills list | grep -i tavily
# 预期输出:
# ✓ ready │ 📦 tavily-search │ Web search via Tavily API (alternative to Brave)...

正式版的描述很关键:"alternative to Brave"——说明它是专门设计来在 Brave 搜索不可用时作为替代方案的。

4.2 方式二:手动安装(备用)

如果 ClawHub 安装失败,可以手动创建 Skill——OpenClaw 的 Skill 本质上就是 SKILL.md + 脚本文件,放到正确目录即可。

4.2 手动安装步骤

第一步:下载 SKILL.md

mkdir -p ~/.openclaw/skills/tavily-search/scripts
# 从 GitHub 下载(如果你的服务器能访问 GitHub)
curl -sL <https://raw.githubusercontent.com/openclaw/skills/main/skills/arun-8687/tavily-search/SKILL.md> \\
  -o ~/.openclaw/skills/tavily-search/SKILL.md
# 确认下载成功
cat ~/.openclaw/skills/tavily-search/SKILL.md | head -20

国内服务器注意raw.githubusercontent.com 经常被 GFW 屏蔽。如果 curl 卡住超过 30 秒无响应,按 Ctrl+C 取消,改用下面的手动创建方式。

如果 GitHub 被墙,手动创建 SKILL.md

cat > ~/.openclaw/skills/tavily-search/SKILL.md << 'EOF'
---
name: tavily
description: AI-optimized web search via Tavily API. Returns concise, relevant results for AI agents.
homepage: <https://tavily.com>
metadata: {"clawdbot":{"emoji":"🔍","requires":{"bins":["node"],"env":["TAVILY_API_KEY"]},"primaryEnv":"TAVILY_API_KEY"}}
---
# Tavily Search
AI-optimized web search using Tavily API. Designed for AI agents - returns clean, relevant content.
## Search
`bash
node {baseDir}/scripts/search.mjs "query"
node {baseDir}/scripts/search.mjs "query" -n 10
node {baseDir}/scripts/search.mjs "query" --deep
node {baseDir}/scripts/search.mjs "query" --topic news
`
EOF

第二步:创建搜索脚本 search.mjs

GitHub 被墙时无法下载原版脚本,直接手写一个功能等价的版本:

cat > ~/.openclaw/skills/tavily-search/scripts/search.mjs << 'EOF'
#!/usr/bin/env node
import https from "https";
const API_KEY = process.env.TAVILY_API_KEY;
if (!API_KEY) {
  console.error("Error: TAVILY_API_KEY environment variable is not set.");
  process.exit(1);
}
const args = process.argv.slice(2);
let query = "";
let maxResults = 5;
let searchDepth = "basic";
let topic = "general";
for (let i = 0; i < args.length; i++) {
  if (args[i] === "-n" && args[i + 1]) { maxResults = parseInt(args[i + 1]); i++; }
  else if (args[i] === "--deep") { searchDepth = "advanced"; }
  else if (args[i] === "--topic" && args[i + 1]) { topic = args[i + 1]; i++; }
  else if (!args[i].startsWith("-")) { query = args[i]; }
}
if (!query) {
  console.error("Usage: node search.mjs \\"query\\" [-n count] [--deep] [--topic news|general|finance]");
  process.exit(1);
}
const payload = JSON.stringify({
  api_key: API_KEY,
  query,
  max_results: maxResults,
  search_depth: searchDepth,
  topic,
  include_answer: true
});
const req = https.request("<https://api.tavily.com/search>", {
  method: "POST",
  headers: { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(payload) }
}, (res) => {
  let data = "";
  res.on("data", (chunk) => data += chunk);
  res.on("end", () => {
    try {
      const result = JSON.parse(data);
      if (result.answer) {
        console.log("## Answer\\n");
        console.log(result.answer + "\\n");
      }
      if (result.results && result.results.length > 0) {
        console.log("## Sources\\n");
        result.results.forEach((r, i) => {
          console.log(`${i + 1}. **${r.title}**`);
          console.log(`   URL: ${r.url}`);
          if (r.content) console.log(`   ${r.content.slice(0, 200)}...`);
          console.log();
        });
      }
    } catch (e) {
      console.error("Failed to parse response:", data);
    }
  });
});
req.on("error", (e) => console.error("Request failed:", e.message));
req.write(payload);
req.end();
EOF

4.3 验证安装

# 检查目录结构(应有 2 个文件)
find ~/.openclaw/skills/tavily-search/ -type f
# 预期输出:
# /root/.openclaw/skills/tavily-search/SKILL.md
# /root/.openclaw/skills/tavily-search/scripts/search.mjs
# 用 openclaw 内置命令确认 Skill 已识别
openclaw skills list | grep -i tavily
# 预期输出包含:✓ ready │ 📦 tavily

4.4 Skill 提供的能力

安装后 Agent 理论上将获得 Tavily 搜索工具,支持:

  • AI 优化的结构化搜索结果——直接返回摘要和关键信息,Agent 可直接使用
  • 域名过滤——可指定只搜索特定网站
  • 新闻/财经等主题搜索——适合 trader 子 Agent
  • 时间范围过滤——只搜索最近的内容

 🔴 但实际上,Agent 不会主动调用它。 关于这个问题的详细分析,请看下面的「第七节:核心问题分析」。

💡 网页提取能力怎么办? Tavily 的 extract/crawl/research 等高级功能需要 MCP 方式才能使用,当前版本不支持。不过已经有 Jina Reader 做网页内容提取,继续用它即可。等 OpenClaw 后续版本支持 mcp 命令后,可以再升级到 MCP 方式。

五、安全配置 API Key

5.1 写入 openclaw.json

不要把 Key 放在 .bashrc 里! OpenClaw Gateway 不会读取 .bashrc(你之前踩过这个坑)。

# 方法一:用 Python 脚本安全写入(推荐)
python3 << 'PATCH'
import json, shutil
API_KEY = "tvly-你的实际Key"  # ← 替换为你的 Tavily API Key
filepath = "/root/.openclaw/openclaw.json"
# 备份
shutil.copy2(filepath, filepath + ".bak.pre-tavily")
print(f"已备份到 {filepath}.bak.pre-tavily")
with open(filepath, "r", encoding="utf-8") as f:
    config = json.load(f)
if "env" not in config:
    config["env"] = {}
if "TAVILY_API_KEY" in config["env"]:
    print("TAVILY_API_KEY 已存在,跳过")
else:
    config["env"]["TAVILY_API_KEY"] = API_KEY
    with open(filepath, "w", encoding="utf-8") as f:
        json.dump(config, f, ensure_ascii=False, indent=2)
    print("✅ 已将 TAVILY_API_KEY 写入 openclaw.json")
print("\\n当前 env 节的 key 列表:")
for key in config["env"]:
    print(f"  - {key}")
PATCH

5.2 同步配置并重启 Gateway

# 同步到 systemd(必须!否则新配置不生效)
openclaw gateway install --force
# 重启 Gateway
openclaw gateway restart
# 等待启动后验证
sleep 5
cat /proc/$(pgrep -f openclaw-gateway)/environ | tr '\\0' '\\n' | grep -i tavily | sed 's/=.*/=******/'

应输出:

TAVILY_API_KEY=******

5.3 安全检查清单

  • [ ] API Key 未硬编码在任何脚本中
  • [ ] openclaw.json 权限为 600chmod 600 ~/.openclaw/openclaw.json
  • [ ] .bashrc没有 TAVILY 相关明文 Token
  • [ ] MCP URL 中的 Key 只存在于 OpenClaw 内部配置

六、配置搜索优先级

安装 Tavily 后,需要告诉 Agent 搜索的优先级。

6.1 修改AGENTS.md

以下 Python 脚本一次性完成所有搜索相关配置的修改:

修改一:替换「搜索工具」段落为完整降级策略

python3 << 'PATCH'
filepath = "/root/.openclaw/workspace/AGENTS.md"
with open(filepath, "r", encoding="utf-8") as f:
    content = f.read()
old_block = """## 搜索工具
- ✅ 优先使用 **SearXNG**(<http://localhost:8080>)进行网络搜索,免费无限额
- ✅ 网页全文阅读使用 **Jina Reader**(r.jina.ai)
- ❌ **禁止使用 bocha-web-search**(已弃用,额度有限)
- 搜索失败时,尝试使用 Jina Reader 直接读取目标网站
- 搜索结果要标注来源 URL 和时间"""
new_block = """## 搜索工具与降级策略
### 搜索优先级
- ✅ **首选 Tavily**(tavily_search):AI 优化的结构化搜索结果,每月 1000 次免费额度
- ✅ **备用 SearXNG**(<http://localhost:8080>):免费无限额,Tavily 不可用时自动切换
- ✅ 网页全文阅读使用 **Jina Reader**(r.jina.ai)
- ⚠️ **Bocha**(bocha-web-search):仅在 Tavily 和 SearXNG 都失败时作为最后手段
- 搜索结果要标注来源 URL 和时间
### 自动降级规则(重要!必须严格遵守)
1. 搜索时**优先调用 tavily_search**
2. 如果 Tavily 返回错误(429 额度耗尽、超时、网络错误等),**立即改用 SearXNG 重新搜索同一 query**,不要停下来告诉用户搜索失败
3. 如果 SearXNG 也失败,尝试用 Jina Reader 直接读取目标 URL
4. 如果 Bocha 可用且前面的都失败了,使用 Bocha 作为最后手段
5. **只有所有搜索方式都失败时,才告知用户搜索遇到问题**
6. 降级时在回复末尾简要注明实际使用的搜索工具(如"数据来源:Tavily"或"数据来源:SearXNG(Tavily 暂不可用)")"""
if old_block in content:
    content = content.replace(old_block, new_block)
    with open(filepath, "w", encoding="utf-8") as f:
        f.write(content)
    print("✅ 搜索工具段落已替换(含降级策略)")
else:
    print("❌ 未找到匹配的旧内容,可能已修改过")
PATCH

修改二:更新子 Agent 描述和搜索规则(3 处)

python3 << 'PATCH2'
filepath = "/root/.openclaw/workspace/AGENTS.md"
with open(filepath, "r", encoding="utf-8") as f:
    content = f.read()
changes = 0
# 修改 researcher 描述
old = "(使用 SearXNG + Jina Reader)"
new = "(优先 Tavily,备用 SearXNG + Jina Reader)"
if old in content:
    content = content.replace(old, new)
    changes += 1
# 修改 trader 描述
old = "(使用 TuShare + SearXNG)"
new = "(使用 TuShare + Tavily,备用 SearXNG)"
if old in content:
    content = content.replace(old, new)
    changes += 1
# 修改子 Agent 搜索规则
old = "- 所有子 Agent 搜索时必须使用 **SearXNG**(<http://localhost:8080>)"
new = "- 所有子 Agent 搜索时优先使用 **Tavily**(tavily_search),不可用时降级到 **SearXNG**(<http://localhost:8080>)"
if old in content:
    content = content.replace(old, new)
    changes += 1
with open(filepath, "w", encoding="utf-8") as f:
    f.write(content)
print(f"✅ 完成 {changes} 处修改")
PATCH2

修改后重启 Gateway 生效:

openclaw gateway restart

6.2 降级效果验证

在飞书中测试,Agent 应表现为:

  • Tavily 正常时:直接返回结构化结果,末尾标注「数据来源:Tavily」
  • Tavily 不可用时:自动切换到 SearXNG,末尾标注「数据来源:SearXNG(Tavily 暂不可用)」
  • 全部失败时:才告知用户搜索遇到问题

6.3 子 Agent 搜索配置建议

子 Agent推荐搜索工具原因
researcherTavily(tavily_search)+ Jina ReaderTavily 搜索 + Jina 深度阅读,组合使用
coderTavily(tavily_search技术问题搜索准确度更高
writerSearXNG + Jina写作素材可能需要大量搜索,节省 Tavily 额度
traderTavily + TuShare财经新闻用 Tavily,行情数据用 TuShare

七、核心问题分析:Tavily 为什么装了还是不能用?

 🚨 这是本文最重要的一节。如果你也在国内服务器上用 OpenClaw,很可能会遇到同样的问题。

7.1 现象

安装完成后,所有检查都显示正常:

  • openclaw skills list 显示 Tavily Skill ✓ ready
  • ✅ Tavily API 通过 curl 手动测试完美返回结果
  • search.mjs 脚本在命令行单独运行正常
  • TAVILY_API_KEY 环境变量已正确加载
  • AGENTS.md 已配置 Tavily 优先

但在飞书实际测试时,Agent 始终不使用 Tavily,而是显示「数据来源:SearXNG(Tavily 暂不可用)」。

7.2 排查过程

第一步:看 Gateway 日志

tail -100 /tmp/openclaw/openclaw-2026-03-15.log | grep -i "web_search\\|tavily\\|error\\|failed"

发现关键错误:

[tools] web_search failed: fetch failed
[tools] browser failed: timed out

第二步:分析调用链路

通过日志发现,Agent 搜索时调用的是 web_search 而不是 tavily。这是两个完全不同的东西:

项目web_search(内置工具)tavily(Skill 脚本)
类型OpenClaw 内置的搜索工具用户安装的 Skill 脚本
后端Brave Search API(硬编码)Tavily API(用户配置)
国内可用性❌ 被墙,fetch 失败✅ 完全可用
Agent 调用优先级⭐ 最高(内置工具优先)⚠️ 低(待 Agent 主动选择)
失败后降级→ SearXNG Skill不会被调用

7.3 根因

用户说“帮我搜一下...”
    ↓
Agent 调用内置 web_search 工具(Brave 后端)
    ↓
Brave Search 在国内被墙 → fetch failed
    ↓
Agent 降级到 SearXNG Skill  ✅ 成功
    ↓
返回结果,标注“数据来源:SearXNG(Tavily 暂不可用)”
❗ Tavily Skill 在整个过程中从未被调用

Agent 的搜索逻辑是:

  1. 内置 web_search → 失败(Brave 被墙)
  2. SearXNG Skill → 成功(本地 Docker)
  3. ✅ 返回结果,不再尝试其他 Skill

Tavily Skill 虽然已安装且 ✓ ready,但 Agent 永远不会走到这一步,因为 SearXNG 已经成功了。

7.4 尝试过的修复方案(均失败)

方案做法结果
配置内置搜索的 provideropenclaw.jsontools 节加入 "web_search": {"provider": "tavily"}❌ 配置验证报错:tools: Unrecognized key: "web_search"。OpenClaw 2026.3.8 的 tools 配置不支持 web_search key
加 apiKey 和 baseUrl"web_search": {"provider": "tavily", "apiKey": "...", "baseUrl": "..."}❌ 同样报 Unrecognized key 错误
AGENTS.md 中强制指定写明“优先调用 tavily_search”⚠️ Agent 会读取该指令,但内置 web_search 仍然优先级最高
安装 ClawHub 正式版 Skillopenclaw-tavily-search(描述为 "alternative to Brave")⚠️ 安装成功且 ✓ ready,但 Agent 仍然优先用内置工具
使用 MCP 方式安装openclaw mcp add❌ OpenClaw 2026.3.8 不支持 mcp 子命令

7.5 当前可行方案

 ✅ SearXNG 作为搜索主力,实际效果良好。

虽然没有用上 Tavily,但 SearXNG 的搜索质量已经足够日常使用。降级机制完善,検索能力稳定。

当前状态:

  • 🔍 实际搜索主力:SearXNG(本地 Docker,免费无限次)
  • 📖 网页阅读:Jina Reader(云端 API)
  • 🔑 Tavily API Key:已配置就位,等待 MCP 支持
  • 📦 Tavily Skill:已安装 ✓ ready,命令行可用,Agent 不会调用

7.6 未来升级路径

当前(OpenClaw 2026.3.8)          未来(支持 MCP 后)
──────────────────────          ───────────────────────
内置 web_search (Brave) ❌       openclaw mcp add tavily
SearXNG Skill ✅ (降级生效)     Tavily 注册为原生搜索工具
Tavily Skill ✓ ready 但不被调用  Agent 直接调用 tavily_search
                               + tavily_extract / crawl / research

升级时只需一条命令:

openclaw mcp add <https://mcp.tavily.com/mcp?tavilyApiKey=$TAVILY_API_KEY>
openclaw gateway restart

API Key 已经配置好了,到时候无缝衔接。

八、验证测试

7.1 基础搜索测试

在飞书中向多多助理发送:

用 Tavily 搜索一下今天的 A 股市场新闻

观察返回结果是否为结构化摘要(而非纯链接列表)。

7.2 对比测试

分别用 Tavily 和 SearXNG 搜索同一内容,对比:

用 Tavily 搜索:2026年3月A股市场走势分析
用 SearXNG 搜索:2026年3月A股市场走势分析

对比要点:

  • 结果结构化程度
  • 信息时效性
  • 响应速度
  • Agent 理解和总结的质量

7.3 Tavily + Jina 组合测试

测试 Tavily 搜索 + Jina Reader 阅读的组合效果:

搜索最近一周的半导体行业动态,找到最相关的文章后阅读全文给我总结

这会先用 tavily_search 找到高质量结果,再用 jina_reader 深度阅读具体文章。

八、额度监控

Tavily 免费额度为 1000 次/月,建议定期检查用量:

  1. 登录 app.tavily.com 查看 Dashboard 中的用量统计
  2. 如果日均搜索 > 30 次,可能月底会用完,届时自动降级到 SearXNG

额度优化建议

  • 每日推送脚本a-stock-daily-push.py)继续使用 Bocha,不消耗 Tavily 额度
  • 实时对话搜索Tavily,获得最佳体验
  • 批量信息收集SearXNG,无额度限制

九、故障排查

常见问题

问题可能原因解决方案
Tavily 搜索无响应API Key 未正确加载检查 openclaw.json 的 env 节
返回空结果网络问题或 Key 失效curl -s <https://api.tavily.com/search> -H "Content-Type: application/json" -d '{"api_key":"你的Key","query":"test"}' 手动测试
MCP 未连接MCP 配置错误openclaw mcp list 检查状态
额度耗尽超出 1000 次/月自动降级到 SearXNG,下月恢复
Gateway 不识别新 Key未同步配置openclaw gateway install --force && openclaw gateway restart

手动测试 API

# 直接测试 Tavily API 是否可用
curl -s <https://api.tavily.com/search> \\
  -H "Content-Type: application/json" \\
  -d '{
    "api_key": "'$TAVILY_API_KEY'",
    "query": "A股今日行情",
    "max_results": 3
  }' | python3 -m json.tool | head -30

如果返回 JSON 结果且包含 results 数组,说明 API 正常工作。

十一、实际搜索架构图(反映真实现状)

用户在飞书发消息:“帮我搜一下...”
    ↓
Agent(kimi-k2.5 / sonnet4.6)分析意图
    ↓
内置 web_search(Brave) ❌ fetch failed(国内被墙)
    ↓ 自动降级
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ SearXNG ⭐主力 │ Jina Reader  │ TuShare      │ Bocha 应急   │
│ 搜索兜底       │ 网页阅读     │ 股票/行情    │ 最后手段     │
│ Docker 本地   │ 云端 API     │ Python API   │ 600+次余额  │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ localhost    │ r.jina.ai    │ api.waditu   │ api.bocha    │
│ :8080/search │              │ .com         │ .ai          │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ 免费无限次   │ Markdown     │ 股票数据      │ 有限额度      │
│ 质量良好      │ 需指定 URL   │ 需指定代码    │ 仅应急使用    │
└──────────────┴──────────────┴──────────────┴──────────────┘
    ↓
Agent 整理信息,回复用户
⭐ Tavily Skill 已安装且 API Key 已配置,但因内置工具优先级问题未被 Agent 调用
⭐ 等 OpenClaw 支持 MCP 后可一键升级
定时推送(crontab)独立通道:
crontab → a-stock-daily-push.py → Bocha + 财联社 → AI 总结 → 飞书

附录:踩坑记录

以下是实际安装过程中遇到的问题及解决方案,供后续参考:

序号问题原因解决方案
1openclaw mcp add 报错 No such file or directoryOpenClaw 2026.3.8 不支持 mcp 子命令,官方文档和第三方教程针对的是更新版本改用 Skill 安装方式,放弃 MCP
2npx clawhub@latest install tavily-search 失败:No matching version found for undici@^7.24.0clawhub@0.8.0 依赖的 undici@^7.24.0 在淘宝等国内 npm 镜像源上未同步,官方源已有指定官方 registry:npm_config_registry=https://registry.npmjs.org npx clawhub@latest install tavily-search。如仍失败再手动安装 Skill
3Node.js 版本过低服务器预装的 Node 版本较老npm install -g n && n lts 升级到 v24
4curl 从 GitHub 下载卡住 / 文件为空国内服务器 raw.githubusercontent.com 被 GFW 屏蔽手动用 cat << 'EOF' 创建文件内容
5Tavily API 是否也被墙?不会——GitHub 是被 GFW 针对性屏蔽,Tavily 是商业 API 服务,不在封锁名单curl -s -o /dev/null -w "%{http_code}" <https://api.tavily.com/search> 验证,返回 401 即网络通
6Gateway 环境变量中找不到 TAVILY_API_KEY写入 openclaw.json 后未同步配置openclaw gateway install --force && openclaw gateway restart
7Agent 指定用 Tavily 搜索但仍用 SearXNGAGENTS.md 中明确写死了「优先使用 SearXNG」修改 AGENTS.md 搜索工具段落 + 子 Agent 描述(共 4 处)
8bash 语法错误:syntax error near unexpected token 'newline'从指南复制命令时把注释行的 > 当作命令执行了注释行不要以 > 开头,或分开复制
9AGENTS.md 中工具名 tavily_search 与 Skill 注册名 tavily 不匹配SKILL.mdname: tavily,但 AGENTS.md 写的是 tavily_search,Agent 找不到对应工具sed -i 's/tavily_search/tavily/g' ~/.openclaw/workspace/AGENTS.md 统一改为 tavily
10🔴 根因:Agent 调用内置 web_search 而非 Skill 脚本Agent 搜索时走的是 OpenClaw 内置 web_search 工具(后端为 Brave Search,国内被墙),不是 Skill 目录下的脚本。日志报错:[tools] web_search failed: fetch failed详见第七节「核心问题分析」。当前无解,等 MCP 支持后可解决
11tools.web_search 配置验证报错尝试在 openclaw.jsontools 节加入 "web_search": {"provider": "tavily"},但 OpenClaw 2026.3.8 的 tools 配置不支持 web_search key报错:tools: Unrecognized key: "web_search"。用 openclaw doctor --fix 或手动删除该 key 恢复
12ClawHub 搜索 tavily-search 报 Skill not foundClawHub 上没有叫 tavily-search 的 Skill,实际名称是 openclaw-tavily-search先用 npx clawhub@latest search tavily 搜索,再用实际名称安装
13gateway install --force && restartstop + start 的区别改了 openclaw.json 后只 stop + start 不会同步配置到 systemd改了配置必须用 openclaw gateway install --force && openclaw gateway restart,没改配置可以只 restart

附录:推荐安装的 Skill

以下是经实测推荐的 Skill,均可通过 npm_config_registry=https://registry.npmjs.org npx clawhub@latest install <skill名> 安装:

Skill功能安装建议说明
🔎 find-skillsSkill 发现与安装⭐ 强烈推荐让 Agent 能自动搜索和安装新 Skill,相当于“应用商店”入口
🌤️ weather天气查询✅ 推荐通过 wttr.in 或 Open-Meteo 获取天气,无需 API Key,开箱即用
📝 summarize内容总结✅ 推荐快速总结网页、文档、PDF、视频字幕等,与 Jina Reader 互补
🛡️ skill-vetterSkill 安全审计⚠️ 可选审查新安装 Skill 的安全性,如果频繁通过 find-skills 自动安装则建议开启
🧠 self-improving-agent自我优化引擎❌ 暂不推荐会自动修改 AGENTS.md 等配置文件,可能与手动调优的配置冲突。建议等基础稳定后再装

到此这篇关于OpenClaw配置Tavily 搜索 Skill 完整指南教程的文章就介绍到这了,更多相关OpenClaw Tavily 搜索 Skill内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

最新评论