Tools Bright Data
Le package @mastra/brightdata encapsule le SDK Bright Data sous la forme de Tools compatibles avec Mastra. Il expose des fonctions de fabrique pour la recherche et la récupération web. Chaque fonction renvoie un Tool créé avec createTool(), qui comprend des schémas Zod complets d'entrée et de sortie.
Le Tool de recherche repose sur SERP API de Bright Data, et le Tool de récupération sur Web Unlocker. Tous deux contournent la détection des bots et les CAPTCHA.
InstallationLien direct vers Installation
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/brightdata zod
pnpm add @mastra/brightdata zod
yarn add @mastra/brightdata zod
bun add @mastra/brightdata zod
Démarrage rapideLien direct vers Démarrage rapide
Utilisez createBrightDataTools() pour obtenir les deux Tools avec une configuration commune :
import { createBrightDataTools } from '@mastra/brightdata'
const { webSearch, webFetch } = createBrightDataTools()
// Or pass an explicit API key:
// const { webSearch, webFetch } = createBrightDataTools({ apiKey: 'brd-...' })
Chaque Tool peut également être créé séparément :
import { createBrightDataSearchTool, createBrightDataFetchTool } from '@mastra/brightdata'
const searchTool = createBrightDataSearchTool()
const fetchTool = createBrightDataFetchTool({ apiKey: 'brd-...' })
Par défaut, tous les Tools lisent BRIGHTDATA_API_TOKEN dans l'environnement. Vous pouvez transmettre explicitement { apiKey } pour remplacer cette valeur.
ConfigurationLien direct vers Configuration
Toutes les fonctions de fabrique acceptent BrightDataClientOptions de @brightdata/sdk :
apiKey?:
BRIGHTDATA_API_TOKEN.Les champs supplémentaires pris en charge par le constructeur bdclient (tels que timeout, webUnlockerZone, serpZone et rateLimit) peuvent être transmis au moyen du même objet d'options.
createBrightDataTools()Lien direct vers createbrightdatatools
Renvoie un objet contenant les deux Tools avec une configuration commune.
import { createBrightDataTools } from '@mastra/brightdata'
const tools = createBrightDataTools({ apiKey: 'brd-...' })
// tools.webSearch, tools.webFetch
Renvoie : { webSearch, webFetch }
createBrightDataSearchTool()Lien direct vers createbrightdatasearchtool
Crée un Tool qui effectue des recherches sur Google au moyen de SERP API de Bright Data. Renvoie les résultats organiques analysés.
Identifiant du Tool : brightdata-search
import { createBrightDataSearchTool } from '@mastra/brightdata'
const searchTool = createBrightDataSearchTool()
EntréeLien direct vers Entrée
query:
country?:
us ou gb).start?:
10 renvoie la deuxième page de 10 résultats.SortieLien direct vers Sortie
query:
results:
link:
title:
description:
currentPage:
1 lorsque la réponse en amont omet cette valeur ou renvoie une valeur non positive.createBrightDataFetchTool()Lien direct vers createbrightdatafetchtool
Crée un Tool qui récupère une page web au moyen de Web Unlocker de Bright Data et renvoie son contenu au format Markdown.
Identifiant du Tool : brightdata-fetch
import { createBrightDataFetchTool } from '@mastra/brightdata'
const fetchTool = createBrightDataFetchTool()
EntréeLien direct vers Entrée
url:
SortieLien direct vers Sortie
url:
content:
Exemple avec un AgentLien direct vers Exemple avec un Agent
L'exemple suivant présente un Agent de recherche qui combine la recherche et la récupération :
import { Agent } from '@mastra/core/agent'
import { createBrightDataTools } from '@mastra/brightdata'
const { webSearch, webFetch } = createBrightDataTools()
const agent = new Agent({
id: 'research-agent',
name: 'Research Agent',
model: 'anthropic/claude-sonnet-4-6',
instructions:
'You are a research assistant. Use the search tool to find relevant pages, then use the fetch tool to read full Markdown content from the best results.',
tools: {
webSearch,
webFetch,
},
})
Variables d'environnementLien direct vers Variables d'environnement
| Variable | Description |
|---|---|
BRIGHTDATA_API_TOKEN | Votre token d'API Bright Data. Utilisé par défaut lorsque apiKey n'est pas transmis à une fonction de fabrique. |