关于 tavily-web
tavily-web 是一个用于选择并调用 Tavily 端点的技能,支持网页搜索、内容提取、爬取、站点映射和结构化研究。它面向需要将用户请求整理为 API 参数,并交由子技能执行 HTTP 调用的 Agent。
主要功能
- 01按意图选择端点
- 02网页搜索与来源发现
- 03页面提取和站点爬取
- 04映射站点页面结构
- 05按 Schema 发起研究请求
- 06通过独立子技能执行 API
适用场景
- 01查找最新信息和来源
- 02总结给定 URL 的内容
- 03发现网站中的相关页面
- 04按指定 Schema 输出研究结果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ benedictking/ tavily-web --skill tavily-web安装后在 Claude Code 中输入/tavily-web确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.env.example.gitignoretavily-api.cjstavily-fetcher.md详细介绍
Tavily Web 技能
触发条件与端点选择
根据用户意图选择 Tavily 端点:
- search:需要“搜索网页/最新信息/查找来源/查找链接”
- extract:给定 URL,需要提取/总结内容
- crawl:需要按照说明遍历网站并抓取页面内容
- map:需要发现网站的页面列表/结构(不含完整内容,或仅获取元数据)
- research:需要按照给定的
output_schema生成结构化研究结果
推荐架构(主技能 + 子技能)
此技能采用两阶段架构:
- 主技能(当前上下文):理解用户问题 → 选择端点 → 组装 JSON 负载
- 子技能(分叉上下文):仅负责执行 HTTP 调用,避免对话历史浪费 token
执行方式
使用 Task 工具调用 tavily-fetcher 子技能,并传入命令和 JSON(stdin):
Task parameters:
- subagent_type: Bash
- description: "Call Tavily API"
- prompt: cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs <search|extract|crawl|map|research>
{ ...payload... }
JSON
负载示例(基于提供的 curl)
1)搜索网页
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs search
{
"query": "who is Leo Messi?",
"auto_parameters": false,
"topic": "general",
"search_depth": "basic",
"chunks_per_source": 3,
"max_results": 1,
"time_range": null,
"start_date": "2025-02-09",
"end_date": "2025-12-29",
"include_answer": false,
"include_raw_content": false,
"include_images": false,
"include_image_descriptions": false,
"include_favicon": false,
"include_domains": [],
"exclude_domains": [],
"country": null,
"include_usage": false
}
JSON
2)提取网页内容
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs extract
{
"urls": "https://en.wikipedia.org/wiki/Artificial_intelligence",
"query": "<string>",
"chunks_per_source": 3,
"extract_depth": "basic",
"include_images": false,
"include_favicon": false,
"format": "markdown",
"timeout": "None",
"include_usage": false
}
JSON
3)抓取网页
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs crawl
{
"url": "docs.tavily.com",
"instructions": "Find all pages about the Python SDK",
"chunks_per_source": 3,
"max_depth": 1,
"max_breadth": 20,
"limit": 50,
"select_paths": null,
"select_domains": null,
"exclude_paths": null,
"exclude_domains": null,
"allow_external": true,
"include_images": false,
"extract_depth": "basic",
"format": "markdown",
"include_favicon": false,
"timeout": 150,
"include_usage": false
}
JSON
4)映射网页
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs map
{
"url": "docs.tavily.com",
"instructions": "Find all pages about the Python SDK",
"max_depth": 1,
"max_breadth": 20,
"limit": 50,
"select_paths": null,
"select_domains": null,
"exclude_paths": null,
"exclude_domains": null,
"allow_external": true,
"timeout": 150,
"include_usage": false
}
JSON
5)创建研究任务
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs research
{
"input": "What are the latest developments in AI?",
"model": "auto",
"stream": false,
"output_schema": {
"properties": {
"company": {
"type": "string",
"description": "The name of the company"
},
"key_metrics": {
"type": "array",
"description": "List of key performance metrics",
"items": {
"type": "string"
}
},
"financial_details": {
"type": "object",
"description": "Detailed financial breakdown",
"properties": {
"operating_income": {
"type": "number",
"description": "Operating income for the period"
}
}
}
},
"required": [
"company"
]
},
"citation_format": "numbered"
}
JSON
环境变量与 API 密钥
配置 API 密钥有两种方式(优先级:环境变量 > .env):
- 环境变量:
TAVILY_API_KEY .env文件:放置于.claude/skills/tavily-web/.env,可从.env.example复制
评论
支持 Markdown