Classe Mastra
La classe Mastra est l’orchestrateur central de toute application Mastra ; elle gère les Agents, les Workflows, le stockage, les logs, l’observabilité et bien plus encore. En général, vous créez une seule instance de Mastra pour coordonner votre application.
Considérez Mastra comme un registre de niveau supérieur dans lequel vous enregistrez les Agents, les Workflows, les Tools et les autres composants qui doivent être accessibles dans toute votre application.
Exemple d’utilisationLien direct vers Exemple d’utilisation
import { Mastra } from '@mastra/core'
import { PinoLogger } from '@mastra/loggers'
import { LibSQLStore } from '@mastra/libsql'
import { weatherWorkflow } from './workflows/weather-workflow'
import { weatherAgent } from './agents/weather-agent'
export const mastra = new Mastra({
workflows: { weatherWorkflow },
agents: { weatherAgent },
storage: new LibSQLStore({
id: 'mastra-storage',
url: ':memory:',
}),
logger: new PinoLogger({
name: 'Mastra',
level: 'info',
}),
})
Activez l’envoi planifié des notifications lorsque les enregistrements de notifications différées et les résumés de notifications doivent être remis automatiquement par l’intermédiaire du planificateur de Workflows :
export const mastra = new Mastra({
agents: { supportAgent },
storage,
notifications: {
dispatch: {
enabled: true,
cron: '*/1 * * * *',
batchSize: 100,
},
},
})
notifications.dispatch.enabled permet à un Workflow de distribution interne de s’exécuter avec l’expression cron par défaut */1 * * * *. Le distributeur lit dans le stockage les enregistrements de notifications arrivés à échéance, regroupe les résumés par agentId, resourceId et threadId, puis émet des signaux via l’environnement d’exécution des fils de l’Agent. Il ne s’agit pas d’un point d’entrée destiné aux utilisateurs. La planification de la distribution (et le planificateur de Workflows qui la sous-tend) ne s’active qu’à la première notification différée ou résumée ; les applications qui ne différèrent jamais de notifications n’exécutent donc aucun planificateur.
Paramètres du constructeurLien direct vers Paramètres du constructeur
Consultez la référence de configuration pour obtenir une documentation détaillée de toutes les options de configuration disponibles.
agents?:
tools?:
storage?:
vectors?:
logger?:
idGenerator?:
workflows?:
tts?:
observability?:
environment?:
production, staging, development). Lorsqu’il est défini, il est automatiquement joint à tous les signaux d’observabilité afin de permettre leur filtrage par environnement sans transmettre tracingOptions.metadata.environment à chaque appel. Utilise process.env.NODE_ENV comme valeur de repli lorsqu’il n’est pas défini ; reste indéfini si aucune des deux valeurs ne l’est. La valeur tracingOptions.metadata.environment propre à l’appel est toujours prioritaire.deployer?:
server?:
mcpServers?:
bundler?:
scorers?:
processors?:
gateways?:
memory?:
notifications?:
dispatch?:
enabled?:
false pour désactiver la distribution planifiée automatique des notifications.cron?:
batchSize?:
versions?:
agents?:
versionId?:
status?:
workers?:
false pour désactiver tout traitement des événements (utile lorsque des workers autonomes sont exécutés séparément). Transmettez un MastraWorker[] pour ajouter des workers personnalisés : ils sont fusionnés avec les valeurs par défaut créées automatiquement, et un worker personnalisé ayant le même name qu’une valeur par défaut la remplace.backgroundTasks?:
enabled?:
globalConcurrency?:
perAgentConcurrency?:
backpressure?:
defaultTimeoutMs?:
defaultRetries?:
scheduler?:
schedule. Consultez les Workflows planifiés.enabled?:
recovery?:
durableAgents?:
'auto' pour relancer automatiquement au démarrage du serveur les exécutions RUNNING orphelines d’Agents durables. La récupération relance les appels au LLM et réexécute les appels de Tools ; les Tools doivent donc être idempotents. Consultez la récupération après incident.MéthodesLien direct vers Méthodes
recoverAllDurableAgents()Lien direct vers recoveralldurableagents
Relance chaque exécution running orpheline d’Agent durable pour l’ensemble des Agents durables enregistrés. Appelée automatiquement au démarrage lorsque recovery.durableAgents vaut 'auto'. Vous pouvez également l’appeler directement pour effectuer une récupération manuelle ou depuis une tâche planifiée.
Nécessite un stockage persistant. Avec un stockage en mémoire, il n’y a rien à récupérer après le redémarrage d’un processus.
const result = await mastra.recoverAllDurableAgents()
// { agents: 2, recovered: 3, succeeded: 3, failed: 0 }
Renvoie :