Aller au contenu principal

Firecrawl

Le package @mastra/browser-firecrawl fournit une automatisation de navigateur avec Firecrawl Browser Sandbox. Il provisionne des sessions de navigateur distantes via l’API Firecrawl et les pilote avec les mêmes tools déterministes privilégiant l’accessibilité qu’AgentBrowser.

FirecrawlBrowser étend AgentBrowser ; les agents disposent donc du même ensemble de tools, notamment browser_goto, browser_snapshot et browser_click, tandis que le navigateur s’exécute dans l’infrastructure hébergée de Firecrawl. Aucune installation locale de Chromium n’est nécessaire.

Quand utiliser Firecrawl
Lien direct vers Quand utiliser Firecrawl

Utilisez Firecrawl lorsque vous avez besoin :

  • De sessions de navigateur hébergées sans gérer de binaires Chromium locaux
  • D’automatisation de navigateur dans des environnements incapables de lancer un navigateur local
  • D’une isolation de sandbox par thread avec nettoyage automatique des sessions
  • De profils Firecrawl nommés qui conservent les cookies et l’état de connexion entre les sessions

Démarrage rapide
Lien direct vers Démarrage rapide

Installez le package :

npm install @mastra/browser-firecrawl

Définissez votre clé d’API Firecrawl :

.env
FIRECRAWL_API_KEY=fc-...

Créez une instance de navigateur et attribuez-la à un agent :

src/mastra/agents/firecrawl-agent.ts
import { Agent } from '@mastra/core/agent'
import { FirecrawlBrowser } from '@mastra/browser-firecrawl'

const browser = new FirecrawlBrowser({
apiKey: process.env.FIRECRAWL_API_KEY,
})

export const firecrawlAgent = new Agent({
id: 'firecrawl-agent',
name: 'Firecrawl Agent',
model: 'openai/gpt-5.6-sol',
browser,
instructions: `You are a web automation assistant.

When interacting with pages:
1. Use browser_snapshot to get the current page state and element refs
2. Use the refs (like @e1, @e2) to target elements for clicks and typing
3. After actions, take another snapshot to verify the result`,
})

Si apiKey est omis, le provider lit FIRECRAWL_API_KEY depuis l’environnement.

Portée de session
Lien direct vers Portée de session

FirecrawlBrowser suit la même option scope qu’AgentBrowser :

  • 'thread' (par défaut) : chaque thread de conversation reçoit sa propre session de sandbox Firecrawl. Les sessions sont supprimées lorsque le navigateur du thread se ferme.
  • 'shared' : une session de sandbox Firecrawl est partagée entre tous les threads et supprimée lorsque le navigateur se ferme.
const browser = new FirecrawlBrowser({
scope: 'shared',
})

Options de session
Lien direct vers Options de session

Transmettez les options de session propres à Firecrawl sous la clé firecrawl. Elles correspondent à l’API Firecrawl browser() :

const browser = new FirecrawlBrowser({
firecrawl: {
ttl: 600,
activityTtl: 120,
profile: {
name: 'my-profile',
saveChanges: true,
},
},
})
  • ttl : durée de vie maximale de la session, en secondes.
  • activityTtl : délai d’inactivité, en secondes, avant que Firecrawl ne recycle la session.
  • profile : profil Firecrawl nommé qui conserve les cookies et l’état de connexion. Définissez saveChanges: true pour enregistrer les modifications du profil à la fin de la session.
remarque

L’option imbriquée firecrawl.profile désigne un profil stocké dans l’infrastructure Firecrawl. Elle est différente de l’option profile de niveau supérieur héritée d’AgentBrowser, qui correspond à un chemin local de répertoire de données utilisateur Playwright.

Firecrawl auto-hébergé
Lien direct vers Firecrawl auto-hébergé

Pour utiliser une API Firecrawl auto-hébergée, définissez apiUrl :

const browser = new FirecrawlBrowser({
apiUrl: 'https://firecrawl.internal.example.com',
})