OpenClaw配置Tavily 搜索 Skill 完整指南教程
?? 本文記錄為 OpenClaw 2026.3.8 + 飛書 Agent 添加 Tavily 搜索能力的完整過程,包括安裝方式、安全配置、搜索優(yōu)先級調(diào)整,以及踩過的所有坑和最終結(jié)論。
?? 重要結(jié)論(先說結(jié)果)
經(jīng)過完整的安裝、配置和調(diào)試,最終結(jié)論是:Tavily Skill 可以成功安裝且 API 完全可用,但 OpenClaw 2026.3.8 的 Agent 不會主動調(diào)用 Skill 腳本進(jìn)行搜索。
根本原因:Agent 搜索時調(diào)用的是 OpenClaw 內(nèi)置的 web_search 工具(后端為 Brave Search,在國內(nèi)被墻),而不是用戶安裝的 Skill 腳本。當(dāng)內(nèi)置搜索失敗后,Agent 會降級到 SearXNG Skill,但不會降級到 Tavily Skill。
當(dāng)前可行方案:SearXNG 作為搜索主力,效果良好。Tavily API Key 已就位,等 OpenClaw 后續(xù)版本支持 MCP(openclaw mcp add)后可一鍵接入。
本文的價值:即使 Tavily 暫時無法作為 Agent 搜索工具使用,本文記錄的 Skill 安裝流程、API Key 配置方法、AGENTS.md 修改策略、npm 國內(nèi)鏡像踩坑解決方案等內(nèi)容,對 OpenClaw 用戶仍有重要參考價值。
一、環(huán)境背景
| 項目 | 配置 |
|---|---|
| 服務(wù)器 | 阿里云 ECS |
| OpenClaw 版本 | 2026.3.8 |
| AI 模型 | dashscope/kimi-k2.5(默認(rèn))、custom-api123-icu/claude-sonnet-4-6(備用) |
| 前端渠道 | 飛書自建 Agent(多多助理) |
| 子 Agent | researcher、coder、writer、trader |
| 已有搜索 | SearXNG + Jina Reader(主力)、Bocha(替補,600+ 次余額) |
二、為什么要加 Tavily?
2.1 Tavily vs SearXNG + Jina Reader 對比
| 維度 | SearXNG + Jina Reader | Tavily |
|---|---|---|
| 返回格式 | 鏈接列表 → 需 Jina 二次抓取 | 結(jié)構(gòu)化摘要 + 關(guān)鍵信息,直接可用 |
| Agent 集成 | 兩個 Skill 配合(搜索 + 閱讀) | 原生為 AI Agent 設(shè)計,一步到位 |
| 信息密度 | 低,需要多步處理 | 高,預(yù)處理過的結(jié)果 |
| 響應(yīng)速度 | SearXNG ~1s + Jina ~15s ≈ 16s | 快速(已預(yù)處理) |
| 穩(wěn)定性 | 依賴本地 Docker + 第三方引擎 | 云端 API,穩(wěn)定性好 |
| 費用 | 完全免費 | 免費 1000 次/月 |
| 本地資源 | 占用 Docker + Redis 內(nèi)存 | 零本地資源消耗 |
2.2 升級后的三層搜索架構(gòu)
優(yōu)先級 1:Tavily → 高質(zhì)量結(jié)構(gòu)化結(jié)果,1000 次/月,日常主力 優(yōu)先級 2:SearXNG + Jina → 免費無限次,兜底 / 批量搜索場景 優(yōu)先級 3:Bocha → 600+ 次余額,應(yīng)急備用
三、獲取 Tavily API Key
3.1 注冊賬號
- 訪問 app.tavily.com
- 注冊賬號(支持 Google / GitHub 登錄)
- 無需信用卡,免費計劃(Researcher)即包含 1000 次/月 額度
3.2 獲取 API Key
- 登錄后進(jìn)入 Dashboard
- 復(fù)制你的 API Key(格式類似
tvly-xxxxxxxxxxxxxxxx) - 妥善保存,后面要用
四、安裝 Tavily Search Skill
?? 關(guān)于安裝方式的選擇:部分文檔提到可以用
openclaw mcp add命令通過 MCP 方式安裝,但經(jīng)實測 OpenClaw 2026.3.8 不支持mcp子命令。因此我們使用 Skill 安裝方式,這是當(dāng)前版本完全支持的標(biāo)準(zhǔn)方法。
4.1 方式一:ClawHub 安裝(推薦)
ClawHub 是 OpenClaw 的官方 Skill 市場,類似 npm 之于 Node.js。
?? 國內(nèi)服務(wù)器踩坑:直接運行 npx clawhub@latest install 會使用國內(nèi) npm 鏡像源(如淘寶鏡像),但 clawhub@0.8.0 依賴的 undici@^7.24.0 在國內(nèi)鏡像上未同步,會報錯:
npm error notarget No matching version found for undici@^7.24.0
解決方案:在命令前加 npm_config_registry=https://registry.npmjs.org 前綴,強制使用官方 npm 源。這是所有國內(nèi) OpenClaw 用戶安裝 Skill 時都可能遇到的問題。
第一步:搜索可用的 Tavily Skill
npm_config_registry=https://registry.npmjs.org npx clawhub@latest search tavily
搜索結(jié)果會顯示多個 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
?? 注意:搜索結(jié)果中沒有叫 tavily-search 的 Skill(這個名字會報 Skill not found),要用實際搜索到的名字。
第三步:確認(rèn)安裝成功
openclaw skills list | grep -i tavily # 預(yù)期輸出: # ? ready │ ?? tavily-search │ Web search via Tavily API (alternative to Brave)...
正式版的描述很關(guān)鍵:"alternative to Brave"——說明它是專門設(shè)計來在 Brave 搜索不可用時作為替代方案的。
4.2 方式二:手動安裝(備用)
如果 ClawHub 安裝失敗,可以手動創(chuàng)建 Skill——OpenClaw 的 Skill 本質(zhì)上就是 SKILL.md + 腳本文件,放到正確目錄即可。
4.2 手動安裝步驟
第一步:下載 SKILL.md
mkdir -p ~/.openclaw/skills/tavily-search/scripts # 從 GitHub 下載(如果你的服務(wù)器能訪問 GitHub) curl -sL <https://raw.githubusercontent.com/openclaw/skills/main/skills/arun-8687/tavily-search/SKILL.md> \\ -o ~/.openclaw/skills/tavily-search/SKILL.md # 確認(rèn)下載成功 cat ~/.openclaw/skills/tavily-search/SKILL.md | head -20
國內(nèi)服務(wù)器注意:raw.githubusercontent.com 經(jīng)常被 GFW 屏蔽。如果 curl 卡住超過 30 秒無響應(yīng),按 Ctrl+C 取消,改用下面的手動創(chuàng)建方式。
如果 GitHub 被墻,手動創(chuàng)建 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第二步:創(chuàng)建搜索腳本 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();
EOF4.3 驗證安裝
# 檢查目錄結(jié)構(gòu)(應(yīng)有 2 個文件) find ~/.openclaw/skills/tavily-search/ -type f # 預(yù)期輸出: # /root/.openclaw/skills/tavily-search/SKILL.md # /root/.openclaw/skills/tavily-search/scripts/search.mjs # 用 openclaw 內(nèi)置命令確認(rèn) Skill 已識別 openclaw skills list | grep -i tavily # 預(yù)期輸出包含:? ready │ ?? tavily
4.4 Skill 提供的能力
安裝后 Agent 理論上將獲得 Tavily 搜索工具,支持:
- AI 優(yōu)化的結(jié)構(gòu)化搜索結(jié)果——直接返回摘要和關(guān)鍵信息,Agent 可直接使用
- 域名過濾——可指定只搜索特定網(wǎng)站
- 新聞/財經(jīng)等主題搜索——適合 trader 子 Agent
- 時間范圍過濾——只搜索最近的內(nèi)容
?? 但實際上,Agent 不會主動調(diào)用它。 關(guān)于這個問題的詳細(xì)分析,請看下面的「第七節(jié):核心問題分析」。
?? 網(wǎng)頁提取能力怎么辦? Tavily 的 extract/crawl/research 等高級功能需要 MCP 方式才能使用,當(dāng)前版本不支持。不過已經(jīng)有 Jina Reader 做網(wǎng)頁內(nèi)容提取,繼續(xù)用它即可。等 OpenClaw 后續(xù)版本支持 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當(dāng)前 env 節(jié)的 key 列表:")
for key in config["env"]:
print(f" - {key}")
PATCH5.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/=.*/=******/'
應(yīng)輸出:
TAVILY_API_KEY=******
5.3 安全檢查清單
- [ ] API Key 未硬編碼在任何腳本中
- [ ]
openclaw.json權(quán)限為 600(chmod 600 ~/.openclaw/openclaw.json) - [ ]
.bashrc中沒有 TAVILY 相關(guān)明文 Token - [ ] MCP URL 中的 Key 只存在于 OpenClaw 內(nèi)部配置
六、配置搜索優(yōu)先級
安裝 Tavily 后,需要告訴 Agent 搜索的優(yōu)先級。
6.1 修改AGENTS.md
以下 Python 腳本一次性完成所有搜索相關(guān)配置的修改:
修改一:替換「搜索工具」段落為完整降級策略
python3 << 'PATCH'
filepath = "/root/.openclaw/workspace/AGENTS.md"
with open(filepath, "r", encoding="utf-8") as f:
content = f.read()
old_block = """## 搜索工具
- ? 優(yōu)先使用 **SearXNG**(<http://localhost:8080>)進(jìn)行網(wǎng)絡(luò)搜索,免費無限額
- ? 網(wǎng)頁全文閱讀使用 **Jina Reader**(r.jina.ai)
- ? **禁止使用 bocha-web-search**(已棄用,額度有限)
- 搜索失敗時,嘗試使用 Jina Reader 直接讀取目標(biāo)網(wǎng)站
- 搜索結(jié)果要標(biāo)注來源 URL 和時間"""
new_block = """## 搜索工具與降級策略
### 搜索優(yōu)先級
- ? **首選 Tavily**(tavily_search):AI 優(yōu)化的結(jié)構(gòu)化搜索結(jié)果,每月 1000 次免費額度
- ? **備用 SearXNG**(<http://localhost:8080>):免費無限額,Tavily 不可用時自動切換
- ? 網(wǎng)頁全文閱讀使用 **Jina Reader**(r.jina.ai)
- ?? **Bocha**(bocha-web-search):僅在 Tavily 和 SearXNG 都失敗時作為最后手段
- 搜索結(jié)果要標(biāo)注來源 URL 和時間
### 自動降級規(guī)則(重要!必須嚴(yán)格遵守)
1. 搜索時**優(yōu)先調(diào)用 tavily_search**
2. 如果 Tavily 返回錯誤(429 額度耗盡、超時、網(wǎng)絡(luò)錯誤等),**立即改用 SearXNG 重新搜索同一 query**,不要停下來告訴用戶搜索失敗
3. 如果 SearXNG 也失敗,嘗試用 Jina Reader 直接讀取目標(biāo) URL
4. 如果 Bocha 可用且前面的都失敗了,使用 Bocha 作為最后手段
5. **只有所有搜索方式都失敗時,才告知用戶搜索遇到問題**
6. 降級時在回復(fù)末尾簡要注明實際使用的搜索工具(如"數(shù)據(jù)來源:Tavily"或"數(shù)據(jù)來源: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("? 未找到匹配的舊內(nèi)容,可能已修改過")
PATCH修改二:更新子 Agent 描述和搜索規(guī)則(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 = "(優(yōu)先 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 搜索規(guī)則
old = "- 所有子 Agent 搜索時必須使用 **SearXNG**(<http://localhost:8080>)"
new = "- 所有子 Agent 搜索時優(yōu)先使用 **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 應(yīng)表現(xiàn)為:
- Tavily 正常時:直接返回結(jié)構(gòu)化結(jié)果,末尾標(biāo)注「數(shù)據(jù)來源:Tavily」
- Tavily 不可用時:自動切換到 SearXNG,末尾標(biāo)注「數(shù)據(jù)來源:SearXNG(Tavily 暫不可用)」
- 全部失敗時:才告知用戶搜索遇到問題
6.3 子 Agent 搜索配置建議
| 子 Agent | 推薦搜索工具 | 原因 |
|---|---|---|
| researcher | Tavily(tavily_search)+ Jina Reader | Tavily 搜索 + Jina 深度閱讀,組合使用 |
| coder | Tavily(tavily_search) | 技術(shù)問題搜索準(zhǔn)確度更高 |
| writer | SearXNG + Jina | 寫作素材可能需要大量搜索,節(jié)省 Tavily 額度 |
| trader | Tavily + TuShare | 財經(jīng)新聞用 Tavily,行情數(shù)據(jù)用 TuShare |
七、核心問題分析:Tavily 為什么裝了還是不能用?
?? 這是本文最重要的一節(jié)。如果你也在國內(nèi)服務(wù)器上用 OpenClaw,很可能會遇到同樣的問題。
7.1 現(xiàn)象
安裝完成后,所有檢查都顯示正常:
- ?
openclaw skills list顯示 Tavily Skill? ready - ? Tavily API 通過
curl手動測試完美返回結(jié)果 - ?
search.mjs腳本在命令行單獨運行正常 - ?
TAVILY_API_KEY環(huán)境變量已正確加載 - ?
AGENTS.md已配置 Tavily 優(yōu)先
但在飛書實際測試時,Agent 始終不使用 Tavily,而是顯示「數(shù)據(jù)來源:SearXNG(Tavily 暫不可用)」。
7.2 排查過程
第一步:看 Gateway 日志
tail -100 /tmp/openclaw/openclaw-2026-03-15.log | grep -i "web_search\\|tavily\\|error\\|failed"
發(fā)現(xiàn)關(guān)鍵錯誤:
[tools] web_search failed: fetch failed [tools] browser failed: timed out
第二步:分析調(diào)用鏈路
通過日志發(fā)現(xiàn),Agent 搜索時調(diào)用的是 web_search 而不是 tavily。這是兩個完全不同的東西:
| 項目 | web_search(內(nèi)置工具) | tavily(Skill 腳本) |
|---|---|---|
| 類型 | OpenClaw 內(nèi)置的搜索工具 | 用戶安裝的 Skill 腳本 |
| 后端 | Brave Search API(硬編碼) | Tavily API(用戶配置) |
| 國內(nèi)可用性 | ? 被墻,fetch 失敗 | ? 完全可用 |
| Agent 調(diào)用優(yōu)先級 | ? 最高(內(nèi)置工具優(yōu)先) | ?? 低(待 Agent 主動選擇) |
| 失敗后降級 | → SearXNG Skill | 不會被調(diào)用 |
7.3 根因
用戶說“幫我搜一下...”
↓
Agent 調(diào)用內(nèi)置 web_search 工具(Brave 后端)
↓
Brave Search 在國內(nèi)被墻 → fetch failed
↓
Agent 降級到 SearXNG Skill ? 成功
↓
返回結(jié)果,標(biāo)注“數(shù)據(jù)來源:SearXNG(Tavily 暫不可用)”
? Tavily Skill 在整個過程中從未被調(diào)用Agent 的搜索邏輯是:
- 內(nèi)置
web_search→ 失?。˙rave 被墻) - SearXNG Skill → 成功(本地 Docker)
- ? 返回結(jié)果,不再嘗試其他 Skill
Tavily Skill 雖然已安裝且 ? ready,但 Agent 永遠(yuǎn)不會走到這一步,因為 SearXNG 已經(jīng)成功了。
7.4 嘗試過的修復(fù)方案(均失?。?/h3>
| 方案 | 做法 | 結(jié)果 |
|---|---|---|
| 配置內(nèi)置搜索的 provider | 在 openclaw.json 的 tools 節(jié)加入 "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 中強制指定 | 寫明“優(yōu)先調(diào)用 tavily_search” | ?? Agent 會讀取該指令,但內(nèi)置 web_search 仍然優(yōu)先級最高 |
| 安裝 ClawHub 正式版 Skill | openclaw-tavily-search(描述為 "alternative to Brave") | ?? 安裝成功且 ? ready,但 Agent 仍然優(yōu)先用內(nèi)置工具 |
| 使用 MCP 方式安裝 | openclaw mcp add | ? OpenClaw 2026.3.8 不支持 mcp 子命令 |
7.5 當(dāng)前可行方案
? SearXNG 作為搜索主力,實際效果良好。
雖然沒有用上 Tavily,但 SearXNG 的搜索質(zhì)量已經(jīng)足夠日常使用。降級機制完善,検索能力穩(wěn)定。
當(dāng)前狀態(tài):
- ?? 實際搜索主力:SearXNG(本地 Docker,免費無限次)
- ?? 網(wǎng)頁閱讀:Jina Reader(云端 API)
- ?? Tavily API Key:已配置就位,等待 MCP 支持
- ?? Tavily Skill:已安裝
? ready,命令行可用,Agent 不會調(diào)用
7.6 未來升級路徑
當(dāng)前(OpenClaw 2026.3.8) 未來(支持 MCP 后)
────────────────────── ───────────────────────
內(nèi)置 web_search (Brave) ? openclaw mcp add tavily
SearXNG Skill ? (降級生效) Tavily 注冊為原生搜索工具
Tavily Skill ? ready 但不被調(diào)用 Agent 直接調(diào)用 tavily_search
+ tavily_extract / crawl / research升級時只需一條命令:
openclaw mcp add <https://mcp.tavily.com/mcp?tavilyApiKey=$TAVILY_API_KEY> openclaw gateway restart
API Key 已經(jīng)配置好了,到時候無縫銜接。
八、驗證測試
7.1 基礎(chǔ)搜索測試
在飛書中向多多助理發(fā)送:
用 Tavily 搜索一下今天的 A 股市場新聞
觀察返回結(jié)果是否為結(jié)構(gòu)化摘要(而非純鏈接列表)。
7.2 對比測試
分別用 Tavily 和 SearXNG 搜索同一內(nèi)容,對比:
用 Tavily 搜索:2026年3月A股市場走勢分析
用 SearXNG 搜索:2026年3月A股市場走勢分析
對比要點:
- 結(jié)果結(jié)構(gòu)化程度
- 信息時效性
- 響應(yīng)速度
- Agent 理解和總結(jié)的質(zhì)量
7.3 Tavily + Jina 組合測試
測試 Tavily 搜索 + Jina Reader 閱讀的組合效果:
搜索最近一周的半導(dǎo)體行業(yè)動態(tài),找到最相關(guān)的文章后閱讀全文給我總結(jié)
這會先用 tavily_search 找到高質(zhì)量結(jié)果,再用 jina_reader 深度閱讀具體文章。
八、額度監(jiān)控
Tavily 免費額度為 1000 次/月,建議定期檢查用量:
- 登錄 app.tavily.com 查看 Dashboard 中的用量統(tǒng)計
- 如果日均搜索 > 30 次,可能月底會用完,屆時自動降級到 SearXNG
額度優(yōu)化建議
- 每日推送腳本(
a-stock-daily-push.py)繼續(xù)使用 Bocha,不消耗 Tavily 額度 - 實時對話搜索 用 Tavily,獲得最佳體驗
- 批量信息收集 用 SearXNG,無額度限制
九、故障排查
常見問題
| 問題 | 可能原因 | 解決方案 |
|---|---|---|
| Tavily 搜索無響應(yīng) | API Key 未正確加載 | 檢查 openclaw.json 的 env 節(jié) |
| 返回空結(jié)果 | 網(wǎng)絡(luò)問題或 Key 失效 | curl -s <https://api.tavily.com/search> -H "Content-Type: application/json" -d '{"api_key":"你的Key","query":"test"}' 手動測試 |
| MCP 未連接 | MCP 配置錯誤 | openclaw mcp list 檢查狀態(tài) |
| 額度耗盡 | 超出 1000 次/月 | 自動降級到 SearXNG,下月恢復(fù) |
| 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 結(jié)果且包含 results 數(shù)組,說明 API 正常工作。
十一、實際搜索架構(gòu)圖(反映真實現(xiàn)狀)
用戶在飛書發(fā)消息:“幫我搜一下...”
↓
Agent(kimi-k2.5 / sonnet4.6)分析意圖
↓
內(nèi)置 web_search(Brave) ? fetch failed(國內(nèi)被墻)
↓ 自動降級
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ SearXNG ?主力 │ Jina Reader │ TuShare │ Bocha 應(yīng)急 │
│ 搜索兜底 │ 網(wǎng)頁閱讀 │ 股票/行情 │ 最后手段 │
│ Docker 本地 │ 云端 API │ Python API │ 600+次余額 │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ localhost │ r.jina.ai │ api.waditu │ api.bocha │
│ :8080/search │ │ .com │ .ai │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ 免費無限次 │ Markdown │ 股票數(shù)據(jù) │ 有限額度 │
│ 質(zhì)量良好 │ 需指定 URL │ 需指定代碼 │ 僅應(yīng)急使用 │
└──────────────┴──────────────┴──────────────┴──────────────┘
↓
Agent 整理信息,回復(fù)用戶
? Tavily Skill 已安裝且 API Key 已配置,但因內(nèi)置工具優(yōu)先級問題未被 Agent 調(diào)用
? 等 OpenClaw 支持 MCP 后可一鍵升級
定時推送(crontab)獨立通道:
crontab → a-stock-daily-push.py → Bocha + 財聯(lián)社 → AI 總結(jié) → 飛書附錄:踩坑記錄
以下是實際安裝過程中遇到的問題及解決方案,供后續(xù)參考:
| 序號 | 問題 | 原因 | 解決方案 |
|---|---|---|---|
| 1 | openclaw mcp add 報錯 No such file or directory | OpenClaw 2026.3.8 不支持 mcp 子命令,官方文檔和第三方教程針對的是更新版本 | 改用 Skill 安裝方式,放棄 MCP |
| 2 | npx clawhub@latest install tavily-search 失?。?code>No matching version found for undici@^7.24.0 | clawhub@0.8.0 依賴的 undici@^7.24.0 在淘寶等國內(nèi) npm 鏡像源上未同步,官方源已有 | 指定官方 registry:npm_config_registry=https://registry.npmjs.org npx clawhub@latest install tavily-search。如仍失敗再手動安裝 Skill |
| 3 | Node.js 版本過低 | 服務(wù)器預(yù)裝的 Node 版本較老 | npm install -g n && n lts 升級到 v24 |
| 4 | curl 從 GitHub 下載卡住 / 文件為空 | 國內(nèi)服務(wù)器 raw.githubusercontent.com 被 GFW 屏蔽 | 手動用 cat << 'EOF' 創(chuàng)建文件內(nèi)容 |
| 5 | Tavily API 是否也被墻? | 不會——GitHub 是被 GFW 針對性屏蔽,Tavily 是商業(yè) API 服務(wù),不在封鎖名單 | 用 curl -s -o /dev/null -w "%{http_code}" <https://api.tavily.com/search> 驗證,返回 401 即網(wǎng)絡(luò)通 |
| 6 | Gateway 環(huán)境變量中找不到 TAVILY_API_KEY | 寫入 openclaw.json 后未同步配置 | openclaw gateway install --force && openclaw gateway restart |
| 7 | Agent 指定用 Tavily 搜索但仍用 SearXNG | AGENTS.md 中明確寫死了「優(yōu)先使用 SearXNG」 | 修改 AGENTS.md 搜索工具段落 + 子 Agent 描述(共 4 處) |
| 8 | bash 語法錯誤:syntax error near unexpected token 'newline' | 從指南復(fù)制命令時把注釋行的 > 當(dāng)作命令執(zhí)行了 | 注釋行不要以 > 開頭,或分開復(fù)制 |
| 9 | AGENTS.md 中工具名 tavily_search 與 Skill 注冊名 tavily 不匹配 | SKILL.md 的 name: tavily,但 AGENTS.md 寫的是 tavily_search,Agent 找不到對應(yīng)工具 | sed -i 's/tavily_search/tavily/g' ~/.openclaw/workspace/AGENTS.md 統(tǒng)一改為 tavily |
| 10 | ?? 根因:Agent 調(diào)用內(nèi)置 web_search 而非 Skill 腳本 | Agent 搜索時走的是 OpenClaw 內(nèi)置 web_search 工具(后端為 Brave Search,國內(nèi)被墻),不是 Skill 目錄下的腳本。日志報錯:[tools] web_search failed: fetch failed | 詳見第七節(jié)「核心問題分析」。當(dāng)前無解,等 MCP 支持后可解決 |
| 11 | tools.web_search 配置驗證報錯 | 嘗試在 openclaw.json 的 tools 節(jié)加入 "web_search": {"provider": "tavily"},但 OpenClaw 2026.3.8 的 tools 配置不支持 web_search key | 報錯:tools: Unrecognized key: "web_search"。用 openclaw doctor --fix 或手動刪除該 key 恢復(fù) |
| 12 | ClawHub 搜索 tavily-search 報 Skill not found | ClawHub 上沒有叫 tavily-search 的 Skill,實際名稱是 openclaw-tavily-search | 先用 npx clawhub@latest search tavily 搜索,再用實際名稱安裝 |
| 13 | gateway install --force && restart 與 stop + start 的區(qū)別 | 改了 openclaw.json 后只 stop + start 不會同步配置到 systemd | 改了配置必須用 openclaw gateway install --force && openclaw gateway restart,沒改配置可以只 restart |
附錄:推薦安裝的 Skill
以下是經(jīng)實測推薦的 Skill,均可通過 npm_config_registry=https://registry.npmjs.org npx clawhub@latest install <skill名> 安裝:
| Skill | 功能 | 安裝建議 | 說明 |
|---|---|---|---|
| ?? find-skills | Skill 發(fā)現(xiàn)與安裝 | ? 強烈推薦 | 讓 Agent 能自動搜索和安裝新 Skill,相當(dāng)于“應(yīng)用商店”入口 |
| ??? weather | 天氣查詢 | ? 推薦 | 通過 wttr.in 或 Open-Meteo 獲取天氣,無需 API Key,開箱即用 |
| ?? summarize | 內(nèi)容總結(jié) | ? 推薦 | 快速總結(jié)網(wǎng)頁、文檔、PDF、視頻字幕等,與 Jina Reader 互補 |
| ??? skill-vetter | Skill 安全審計 | ?? 可選 | 審查新安裝 Skill 的安全性,如果頻繁通過 find-skills 自動安裝則建議開啟 |
| ?? self-improving-agent | 自我優(yōu)化引擎 | ? 暫不推薦 | 會自動修改 AGENTS.md 等配置文件,可能與手動調(diào)優(yōu)的配置沖突。建議等基礎(chǔ)穩(wěn)定后再裝 |
到此這篇關(guān)于OpenClaw配置Tavily 搜索 Skill 完整指南教程的文章就介紹到這了,更多相關(guān)OpenClaw Tavily 搜索 Skill內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章

OpenClaw 搜索服務(wù)遷移教程之如何從 Brave 到 Tavily
這篇文章給大家介紹OpenClaw 搜索服務(wù)遷移教程之如何從 Brave 到 Tavily,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2026-03-19
本文總結(jié)了OpenClaw安裝Skill時常見問題及解決方法,包括未安裝ClawHub技能市場、安全目錄限制、Node.js版本不兼容、海外Skill下載超時、工具依賴缺失和權(quán)限問題等,針對每種2026-03-16
Mac安裝和配置OpenClaw的超詳細(xì)保姆級教程(附 skills安裝)
OpenClaw是一個開源的AI助手框架,支持多模型接入和技能擴展,適用于多渠道聊天,文章詳細(xì)介紹了Mac上安裝和配置OpenClaw的步驟,包括安裝OpenClaw CLI、驗證安裝、完成onboard2026-03-12
OpenClaw自定義Skill開發(fā)完整步驟記錄(2026最新版)
很多新手剛接觸時,會把 Skill 想得很復(fù)雜,其實大可不必,OpenClaw 中的每個 Skill,本質(zhì)就是一套能力描述 + 執(zhí)行邏輯的組合包,這篇文章主要介紹了OpenClaw自定義Skill開發(fā)完2026-03-12
OpenClaw Skills 進(jìn)階實戰(zhàn)指南(前端開發(fā)者的AI技能庫搭建)
本文詳細(xì)介紹了如何配置和使用OpenClaw的技能插件,特別是針對前端開發(fā)場景,它提供了按需構(gòu)建技能的選擇策略、多種安裝技能的方法,以及2026年最受歡迎的OpenClaw技能推薦,此2026-03-11
OpenClaw ClawHub 公共 Skills 注冊中心使用實戰(zhàn)
ClawHub是OpenClaw的公共Skills注冊中心,提供免費的Skills瀏覽、共享和復(fù)用服務(wù),用戶通過網(wǎng)頁應(yīng)用或CLI進(jìn)行操作,包括搜索、安裝、更新和發(fā)布Skills,CLI支持自動和腳本編寫,2026-03-11
openclaw的skills開發(fā)規(guī)范以及OpenClaw skills安裝流程
OpenClaw通過“Skills”機制實現(xiàn)高度可擴展性,每個Skill由“能力描述+執(zhí)行邏輯”組成,開發(fā)者需編寫SKILL.md文件或添加Python/TypeScript腳本實現(xiàn)功能,下面從開發(fā)規(guī)范與安裝2026-03-10
一文講清Skills概念與OpenClaw運作機制(最佳實踐)
這篇文章詳細(xì)介紹了“Skills”在2026年的概念、結(jié)構(gòu)和運行機制,強調(diào)了其作為可移植、可工程化治理的“過程性能力包”的重要性,它介紹了“Skills”的各個組成部分,文章討論2026-03-10
在實際部署OpenClaw的過程中,安裝Skill是一個非常重要的步驟,但是很多用戶在這個環(huán)節(jié)會遇到各種問題,本文將結(jié)合實際經(jīng)驗,詳細(xì)講解常見的報錯原因及解決方案,希望對大家2026-03-06









