Tavily Tools
@mastra/tavily 包将 Tavily API 封装为与 Mastra 兼容的 Tool。它提供搜索、提取、抓取和网站结构映射 factory function。每个函数都返回使用 createTool() 创建的 Tool,并包含完整的 Zod 输入/输出 schema。
安装安装的直接链接
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/tavily @tavily/core zod
pnpm add @mastra/tavily @tavily/core zod
yarn add @mastra/tavily @tavily/core zod
bun add @mastra/tavily @tavily/core zod
快速开始快速开始的直接链接
使用 createTavilyTools() 以共用设置取得全部四个 Tool:
import { createTavilyTools } from '@mastra/tavily'
const tools = createTavilyTools()
// Or pass an explicit API key:
// const tools = createTavilyTools({ apiKey: 'tvly-...' })
你也可以分别创建每个 Tool:
import { createTavilySearchTool, createTavilyExtractTool } from '@mastra/tavily'
const searchTool = createTavilySearchTool()
const extractTool = createTavilyExtractTool({ apiKey: 'tvly-...' })
根据缺省,所有 Tool 都会从环境中读取 TAVILY_API_KEY。你可以明确传入 { apiKey } 来覆写此值。
设置设置的直接链接
所有 factory function 都接受来自 @tavily/core 的 TavilyClientOptions:
apiKey?:
TAVILY_API_KEY 环境变量。clientName?:
X-Client-Name header 发送的归属字符串。apiBaseURL?:
proxies?:
projectId?:
createTavilyTools()createtavilytools的直接链接
返回一个对象,其中包含共用设置的全部四个 Tool。
import { createTavilyTools } from '@mastra/tavily'
const tools = createTavilyTools({ apiKey: 'tvly-...' })
// tools.tavilySearch, tools.tavilyExtract, tools.tavilyCrawl, tools.tavilyMap
返回值: { tavilySearch, tavilyExtract, tavilyCrawl, tavilyMap }
createTavilySearchTool()createtavilysearchtool的直接链接
创建一个使用 Tavily 搜索网络的 Tool。它会返回相关结果,包括内容摘要、选填的 AI 产生答案与图片。
Tool ID: tavily-search
import { createTavilySearchTool } from '@mastra/tavily'
const searchTool = createTavilySearchTool()
输入输入的直接链接
query:
searchDepth?:
maxResults?:
includeAnswer?:
includeImages?:
includeImageDescriptions?:
includeRawContent?:
includeDomains?:
excludeDomains?:
timeRange?:
输出输出的直接链接
query:
answer?:
images?:
results:
title:
url:
content:
score:
rawContent?:
responseTime:
createTavilyExtractTool()createtavilyextracttool的直接链接
创建一个从一个或多个 URL 截取内容的 Tool。它会以 Markdown 或文本格式返回原始页面内容,每次请求最多可处理 20 个 URL。
Tool ID: tavily-extract
import { createTavilyExtractTool } from '@mastra/tavily'
const extractTool = createTavilyExtractTool()
输入输入的直接链接
urls:
extractDepth?:
query?:
includeImages?:
format?:
输出输出的直接链接
results:
url:
rawContent:
images?:
failedResults:
url:
error:
responseTime:
createTavilyCrawlTool()createtavilycrawltool的直接链接
创建一个从指定 URL 开始抓取网站的 Tool。它会从找到的页面截取内容,并可设置深度、广度与网域限制。
Tool ID: tavily-crawl
import { createTavilyCrawlTool } from '@mastra/tavily'
const crawlTool = createTavilyCrawlTool()
输入输入的直接链接
url:
maxDepth?:
maxBreadth?:
limit?:
instructions?:
selectPaths?:
selectDomains?:
excludePaths?:
excludeDomains?:
allowExternal?:
extractDepth?:
includeImages?:
format?:
输出输出的直接链接
baseUrl:
results:
url:
rawContent:
images?:
responseTime:
createTavilyMapTool()createtavilymaptool的直接链接
创建一个从指定 URL 开始映射网站结构的 Tool。它会探索并返回 URL 清单,但不截取页面内容。可在针对特定目标截取前,使用此 Tool 了解网站结构。
Tool ID: tavily-map
import { createTavilyMapTool } from '@mastra/tavily'
const mapTool = createTavilyMapTool()
输入输入的直接链接
url:
maxDepth?:
maxBreadth?:
limit?:
instructions?:
selectPaths?:
selectDomains?:
excludePaths?:
excludeDomains?:
allowExternal?:
输出输出的直接链接
baseUrl:
results:
responseTime:
Agent 示例Agent 示例的直接链接
下列示例示范结合搜索与截取功能的研究 Agent:
import { Agent } from '@mastra/core/agent'
import { createTavilySearchTool, createTavilyExtractTool } from '@mastra/tavily'
const agent = new Agent({
id: 'web-search-agent',
name: 'Web Search Agent',
model: 'anthropic/claude-sonnet-4-6',
instructions:
'You are a web search assistant. Use search tool to find relevant pages, then use extract tool to get full content from the best results.',
tools: {
search: createTavilySearchTool(),
extract: createTavilyExtractTool(),
},
})
环境变量环境变量的直接链接
| 变量 | 说明 |
|---|---|
TAVILY_API_KEY | 你的 Tavily API key。若未将 apiKey 传给 factory function,则缺省使用此值。 |