> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Créer un Agent capable d’effectuer des recherches web Lors de la création d’un Agent de recherche web, deux stratégies principales sont à envisager : 1. **Tools de recherche natifs du LLM** : certains modèles de langage proposent des capacités de recherche web intégrées, prêtes à l’emploi. 2. **Implémenter un Tool de recherche personnalisé** : développez votre propre intégration avec l’API d’un fournisseur de recherche pour traiter les requêtes et récupérer les résultats. ## Prérequis - Node.js `v22.13.0` ou version ultérieure est installé - Une clé API d’un [fournisseur de modèles](https://mastra.zisheng.pro/fr/models) pris en charge - Un projet Mastra existant (suivez le [guide d’installation](https://mastra.zisheng.pro/fr/guides/getting-started/quickstart) pour configurer un nouveau projet) ## Utiliser des Tools de recherche natifs Certains fournisseurs de LLM incluent des capacités de recherche web intégrées, utilisables directement sans intégration API supplémentaire. Les modèles d’OpenAI et de Google proposent tous deux des Tools de recherche natifs que le modèle peut appeler pendant la génération. 1. Installez les dépendances. **OpenAI**: **npm**: ```bash npm install @ai-sdk/openai ``` **pnpm**: ```bash pnpm add @ai-sdk/openai ``` **Yarn**: ```bash yarn add @ai-sdk/openai ``` **Bun**: ```bash bun add @ai-sdk/openai ``` **Gemini**: ```bash npm install @ai-sdk/openai ``` **Tab 3**: ```bash pnpm add @ai-sdk/openai ``` **Tab 4**: ```bash yarn add @ai-sdk/openai ``` **Tab 5**: ```bash bun add @ai-sdk/openai ``` **Tab 6**: **npm**: ```bash npm install @ai-sdk/google ``` **pnpm**: ```bash pnpm add @ai-sdk/google ``` **Yarn**: ```bash yarn add @ai-sdk/google ``` **Bun**: ```bash bun add @ai-sdk/google ``` **Tab 7**: ```bash npm install @ai-sdk/google ``` **Tab 8**: ```bash pnpm add @ai-sdk/google ``` **Tab 9**: ```bash yarn add @ai-sdk/google ``` **Tab 10**: ```bash bun add @ai-sdk/google ``` 2. Créez un fichier `src/mastra/agents/searchAgent.ts` et définissez votre Agent : **OpenAI**: ```ts import { Agent } from '@mastra/core/agent' export const searchAgent = new Agent({ id: 'search-agent', name: 'Search Agent', instructions: 'You are a search agent that can search the web for information.', model: 'openai/gpt-5.6-sol', }) ``` **Gemini**: ```ts import { Agent } from '@mastra/core/agent' export const searchAgent = new Agent({ id: 'search-agent', name: 'Search Agent', instructions: 'You are a search agent that can search the web for information.', model: 'google/gemini-2.5-flash', }) ``` 3. Configurez le Tool : **OpenAI**: ```ts import { openai } from '@ai-sdk/openai' import { Agent } from '@mastra/core/agent' export const searchAgent = new Agent({ id: 'search-agent', name: 'Search Agent', instructions: 'You are a search agent that can search the web for information.', model: 'openai/gpt-5.6-sol', tools: { webSearch: openai.tools.webSearch(), }, }) ``` **Gemini**: ```ts import { google } from '@ai-sdk/google' import { Agent } from '@mastra/core/agent' export const searchAgent = new Agent({ id: 'search-agent', name: 'Search Agent', instructions: 'You are a search agent that can search the web for information.', model: 'google/gemini-2.5-flash', tools: { webSearch: google.tools.googleSearch({ mode: 'MODE_DYNAMIC', }), }, }) ``` 4. Dans votre fichier `src/mastra/index.ts`, enregistrez l’Agent : ```ts import { Mastra } from '@mastra/core' import { searchAgent } from './agents/searchAgent' export const mastra = new Mastra({ agents: { searchAgent }, }) ``` 5. Vous pouvez tester votre Agent avec [Studio](https://mastra.zisheng.pro/fr/docs/studio/overview) en utilisant la commande `mastra dev` : ```bash mastra dev ``` Dans Studio, accédez à **« Search Agent »** et demandez-lui : « Quelles sont les actualités IA de la semaine dernière ? » ## Utiliser des API de recherche Pour mieux contrôler le comportement de recherche, vous pouvez intégrer des API de recherche externes sous forme de Tools personnalisés. [Exa](https://exa.ai/) est un moteur de recherche conçu spécifiquement pour les applications IA, qui propose une recherche sémantique, des filtres configurables, tels que la catégorie, le domaine et la plage de dates, ainsi que la récupération du contenu complet des pages. L’API de recherche est encapsulée dans un Tool Mastra qui définit le schéma d’entrée, le format de sortie et la logique d’exécution. 1. Installez les dépendances. **npm**: ```bash npm install exa-js ``` **pnpm**: ```bash pnpm add exa-js ``` **Yarn**: ```bash yarn add exa-js ``` **Bun**: ```bash bun add exa-js ``` 2. Créez un fichier `src/mastra/agents/searchAgent.ts` et définissez votre Agent : ```ts import { Agent } from '@mastra/core/agent' export const searchAgent = new Agent({ id: 'search-agent', name: 'Search Agent', instructions: 'You are a search agent that can search the web for information.', model: 'openai/gpt-5.6-sol', }) ``` 3. Configurez le Tool. ```ts import { createTool } from '@mastra/core/tools' import z from 'zod' import Exa from 'exa-js' export const exa = new Exa(process.env.EXA_API_KEY) export const webSearch = createTool({ id: 'exa-web-search', description: 'Search the web', inputSchema: z.object({ query: z.string().min(1).max(50).describe('The search query'), }), outputSchema: z.array( z.object({ title: z.string().nullable(), url: z.string(), content: z.string(), publishedDate: z.string().optional(), }), ), execute: async inputData => { const { results } = await exa.searchAndContents(inputData.query, { livecrawl: 'always', numResults: 2, }) return results.map(result => ({ title: result.title, url: result.url, content: result.text.slice(0, 500), publishedDate: result.publishedDate, })) }, }) ``` 4. Ajoutez-le à votre Agent. ```ts import { webSearch } from './tools/searchTool' export const searchAgent = new Agent({ id: 'search-agent', name: 'Search Agent', instructions: 'You are a search agent that can search the web for information.', model: 'openai/gpt-5.6-sol', tools: { webSearch, }, }) ``` 5. Dans votre fichier `src/mastra/index.ts`, enregistrez l’Agent : ```ts import { Mastra } from '@mastra/core' import { searchAgent } from './agents/searchAgent' export const mastra = new Mastra({ agents: { searchAgent }, }) ``` 6. Vous pouvez tester votre Agent avec [Studio](https://mastra.zisheng.pro/fr/docs/studio/overview) en utilisant la commande `mastra dev` : ```bash mastra dev ``` Dans Studio, accédez à **« Search Agent »** et demandez-lui : « Quelles sont les actualités IA de la semaine dernière ? »