Tools Tavily
Le package @mastra/tavily encapsule l’API Tavily sous forme de Tools compatibles avec Mastra. Il expose des fonctions de fabrique pour la recherche, l’extraction, l’exploration et la cartographie. Chaque fonction renvoie un Tool créé avec createTool(), accompagné de schémas Zod complets d’entrée et de sortie.
InstallationLien direct vers Installation
- 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
Démarrage rapideLien direct vers Démarrage rapide
Utilisez createTavilyTools() pour obtenir les quatre Tools avec une configuration partagée :
import { createTavilyTools } from '@mastra/tavily'
const tools = createTavilyTools()
// Or pass an explicit API key:
// const tools = createTavilyTools({ apiKey: 'tvly-...' })
Chaque Tool peut également être créé séparément :
import { createTavilySearchTool, createTavilyExtractTool } from '@mastra/tavily'
const searchTool = createTavilySearchTool()
const extractTool = createTavilyExtractTool({ apiKey: 'tvly-...' })
Par défaut, tous les Tools lisent TAVILY_API_KEY dans l’environnement. Vous pouvez transmettre explicitement { apiKey } pour remplacer cette valeur.
ConfigurationLien direct vers Configuration
Toutes les fonctions de fabrique acceptent TavilyClientOptions provenant de @tavily/core :
apiKey?:
TAVILY_API_KEY comme valeur de repli.clientName?:
X-Client-Name.apiBaseURL?:
proxies?:
projectId?:
createTavilyTools()Lien direct vers createtavilytools
Renvoie un objet contenant les quatre Tools avec une configuration partagée.
import { createTavilyTools } from '@mastra/tavily'
const tools = createTavilyTools({ apiKey: 'tvly-...' })
// tools.tavilySearch, tools.tavilyExtract, tools.tavilyCrawl, tools.tavilyMap
Renvoie : { tavilySearch, tavilyExtract, tavilyCrawl, tavilyMap }
createTavilySearchTool()Lien direct vers createtavilysearchtool
Crée un Tool qui effectue des recherches sur le Web avec Tavily. Renvoie des résultats pertinents accompagnés d’extraits de contenu, de réponses facultatives générées par l’IA et d’images.
ID du Tool : tavily-search
import { createTavilySearchTool } from '@mastra/tavily'
const searchTool = createTavilySearchTool()
EntréeLien direct vers Entrée
query:
searchDepth?:
maxResults?:
includeAnswer?:
includeImages?:
includeImageDescriptions?:
includeRawContent?:
includeDomains?:
excludeDomains?:
timeRange?:
SortieLien direct vers Sortie
query:
answer?:
images?:
results:
title:
url:
content:
score:
rawContent?:
responseTime:
createTavilyExtractTool()Lien direct vers createtavilyextracttool
Crée un Tool qui extrait le contenu d’une ou plusieurs URL. Renvoie le contenu brut des pages au format Markdown ou texte, avec un maximum de 20 URL par requête.
ID du Tool : tavily-extract
import { createTavilyExtractTool } from '@mastra/tavily'
const extractTool = createTavilyExtractTool()
EntréeLien direct vers Entrée
urls:
extractDepth?:
query?:
includeImages?:
format?:
SortieLien direct vers Sortie
results:
url:
rawContent:
images?:
failedResults:
url:
error:
responseTime:
createTavilyCrawlTool()Lien direct vers createtavilycrawltool
Crée un Tool qui explore un site Web à partir d’une URL. Extrait le contenu des pages découvertes avec des contraintes configurables de profondeur, d’étendue et de domaine.
ID du Tool : tavily-crawl
import { createTavilyCrawlTool } from '@mastra/tavily'
const crawlTool = createTavilyCrawlTool()
EntréeLien direct vers Entrée
url:
maxDepth?:
maxBreadth?:
limit?:
instructions?:
selectPaths?:
selectDomains?:
excludePaths?:
excludeDomains?:
allowExternal?:
extractDepth?:
includeImages?:
format?:
SortieLien direct vers Sortie
baseUrl:
results:
url:
rawContent:
images?:
responseTime:
createTavilyMapTool()Lien direct vers createtavilymaptool
Crée un Tool qui cartographie la structure d’un site Web à partir d’une URL. Découvre et renvoie une liste d’URL sans extraire le contenu des pages. Utilisez-le pour comprendre la structure du site avant une extraction ciblée.
ID du Tool : tavily-map
import { createTavilyMapTool } from '@mastra/tavily'
const mapTool = createTavilyMapTool()
EntréeLien direct vers Entrée
url:
maxDepth?:
maxBreadth?:
limit?:
instructions?:
selectPaths?:
selectDomains?:
excludePaths?:
excludeDomains?:
allowExternal?:
SortieLien direct vers Sortie
baseUrl:
results:
responseTime:
Exemple d’AgentLien direct vers Exemple d’Agent
L’exemple suivant présente un Agent de recherche qui combine la recherche et l’extraction :
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(),
},
})
Variables d’environnementLien direct vers Variables d’environnement
| Variable | Description |
|---|---|
TAVILY_API_KEY | Votre clé d’API Tavily. Utilisée par défaut lorsque apiKey n’est pas transmis à une fonction de fabrique. |