Agent.generateLegacy() (ancienne API)
Obsolète : cette méthode est obsolète et fonctionne uniquement avec les anciens adaptateurs de modèle. Pour les adaptateurs actuels, utilisez plutôt .generate().
La méthode .generateLegacy() est l'ancienne version de l'API de génération des Agents. Elle s'utilise avec les anciens adaptateurs de modèle pour produire du texte ou des réponses structurées. Cette méthode accepte des messages et des options de génération facultatives.
Exemple d'utilisationLien direct vers Exemple d'utilisation
await agent.generateLegacy('message for agent')
Prise en charge des nouvelles tentatives par les ProcessorsLien direct vers Prise en charge des nouvelles tentatives par les Processors
generateLegacy() n'exécute ni les Processors d'erreur ni maxProcessorRetries. Elle utilise à la place l'ancien chemin de génération du SDK AI.
Les juges des Scorers dotés d'anciens adaptateurs de modèle appellent generateLegacy(). Ils ne bénéficient pas du budget coordonné de StreamErrorRetryProcessor disponible pour les juges qui utilisent l'API de génération actuelle de Mastra. Utilisez un adaptateur actuel lorsque vous avez besoin des nouvelles tentatives déclenchées par les Processors d'erreur. L'ancienne option maxRetries reste distincte et utilise 2 par défaut.
ParamètresLien direct vers Paramètres
messages:
options?:
abortSignal?:
context?:
structuredOutput?:
schema:
model:
errorStrategy?:
fallbackValue?:
instructions?:
outputProcessors?:
processOutputResult ou processOutputStream, ou les deux.inputProcessors?:
processInput.experimental_output?:
structuredOutput. Active la génération de sorties structurées avec la génération de texte et les appels de Tool. Le modèle génère des réponses conformes au schéma fourni.instructions?:
output?:
memory?:
thread:
id et des metadata facultatives.resource:
options?:
MemoryConfig ci-dessous.maxSteps?:
maxRetries?:
onStepFinish?:
runId?:
telemetry?:
isEnabled?:
recordInputs?:
recordOutputs?:
functionId?:
temperature?:
toolChoice?:
'auto':
'none':
'required':
{ type: 'tool'; toolName: string }:
toolsets?:
clientTools?:
hooks?:
beforeToolCall peut renvoyer { proceed: false, output } pour ignorer l'appel de Tool.savePerStep?:
providerOptions?:
{ providerName: { optionKey: value } }. Mastra étendant le SDK AI, consultez la documentation du SDK AI pour découvrir toutes les options des Providers.openai?:
{ reasoningEffort: 'high' }anthropic?:
{ maxTokens: 1000 }google?:
{ safetySettings: [...] }[providerName]?:
requestContext?:
maxTokens?:
topP?:
temperature, soit topP, mais pas les deux.topK?:
presencePenalty?:
frequencyPenalty?:
stopSequences?:
seed?:
headers?:
Valeurs renvoyéesLien direct vers Valeurs renvoyées
text?:
object?:
output, structuredOutput ou experimental_output.toolCalls?:
toolName:
args:
Migration vers la nouvelle APILien direct vers Migration vers la nouvelle API
La nouvelle méthode .generate() offre des fonctionnalités améliorées, notamment la compatibilité avec le SDK AI v5+, une meilleure gestion des sorties structurées et une meilleure prise en charge de la diffusion en continu. Consultez le guide de migration pour obtenir des instructions détaillées.
Exemple de migration rapideLien direct vers Exemple de migration rapide
Avant (ancienne API)Lien direct vers Avant (ancienne API)
const result = await agent.generateLegacy('message', {
temperature: 0.7,
maxSteps: 3,
})
Après (nouvelle API)Lien direct vers Après (nouvelle API)
const result = await agent.generate('message', {
modelSettings: {
temperature: 0.7,
},
maxSteps: 3,
})
Exemple d'utilisation avancéLien direct vers Exemple d'utilisation avancé
import { z } from 'zod'
import { ModerationProcessor, TokenLimiterProcessor } from '@mastra/core/processors'
await agent.generateLegacy(
[
{ role: 'user', content: 'message for agent' },
{
role: 'user',
content: [
{
type: 'text',
text: 'message for agent',
},
{
type: 'image',
imageUrl: 'https://example.com/image.jpg',
mimeType: 'image/jpeg',
},
],
},
],
{
temperature: 0.7,
maxSteps: 3,
memory: {
thread: 'user-123',
resource: 'test-app',
},
toolChoice: 'auto',
providerOptions: {
openai: {
reasoningEffort: 'high',
},
},
// Structured output with better DX
structuredOutput: {
schema: z.object({
sentiment: z.enum(['positive', 'negative', 'neutral']),
confidence: z.number(),
}),
model: 'openai/gpt-5.6-sol',
errorStrategy: 'warn',
},
// Output processors for response validation
outputProcessors: [
new ModerationProcessor({ model: 'openai/gpt-5-mini' }),
new TokenLimiterProcessor({ maxTokens: 1000 }),
],
},
)