Tavily Extract Skill
用途
从指定的一个或多个 URL 中提取干净、可读的内容。结果以 markdown 格式文本返回,会剥离导航、广告和模板化冗余内容。该技能支持通过高级模式处理 JavaScript 渲染的页面。
身份验证
在 ~/.openclaw/.env.local 中设置 TAVILY_API_KEY:
TAVILY_API_KEY=tvly-your-api-key-here
何时使用此技能
- 你已有具体 URL,需要获取其内容(例如来自之前的搜索结果)
- 阅读已知 URL 的文档页面、博客文章或文章
- 从 JavaScript 渲染的页面(SPA、React 应用)中提取内容
- 只获取页面的相关部分(通过 query + chunks_per_source)
- 先使用 tavily-search 找到 URL,再用此技能获取完整内容
快速开始
提取单个 URL:
curl -s -X POST https://api.tavily.com/extract \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://docs.python.org/3/library/asyncio.html"]
}'
API 参考
端点:POST https://api.tavily.com/extract
请求字段:
- urls:数组,必填,要提取的 URL(最多 20 个)
- query:字符串,默认 null,用于基于相关性的分块的主题查询
- chunks_per_source:整数,默认 null,每个 URL 的相关块数量(1–5,需要 query)
- extract_depth:字符串,默认 "basic",可选 basic 或 advanced(用于 JS 渲染页面)
- format:字符串,默认 "markdown",可选 markdown 或 text
- include_images:布尔值,默认 false,在结果中包含图片 URL
- timeout:整数,默认 30,请求超时秒数(1–60)
响应格式:
{
"results": [
{
"url": "https://docs.python.org/3/library/asyncio.html",
"raw_content": "# asyncio — Asynchronous I/O\n\n..."
}
],
"failed_results": [],
"response_time": 2.1
}
示例
一次提取多个 URL:
curl -s -X POST https://api.tavily.com/extract \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://docs.anthropic.com/en/docs/about-claude/models",
"https://docs.anthropic.com/en/api/getting-started"
],
"format": "markdown"
}'
只提取相关部分(配合 query):
curl -s -X POST https://api.tavily.com/extract \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://react.dev/reference/react/hooks"],
"query": "useEffect lifecycle cleanup",
"chunks_per_source": 3
}'
提取 JavaScript 渲染页面:
curl -s -X POST https://api.tavily.com/extract \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://example-spa.com/docs"],
"extract_depth": "advanced"
}'
提示
- 从 extract_depth: "basic" 开始,仅在内容缺失或不完整时使用 "advanced"
- 使用 query + chunks_per_source 只获取长页面的相关部分,防止上下文溢出
- 检查响应中的 failed_results — 某些 URL 可能失败(付费墙、机器人防护)
- 每次调用最多批量处理 20 个 URL,以尽量减少 API 使用
- 对于非常大的文档站点,优先使用 tavily-crawl