AI SDK
Si vous utilisez déjà directement le Vercel AI SDK et souhaitez ajouter des fonctionnalités Mastra telles que les processors ou la mémoire, sans adopter l’API complète des agents Mastra, withMastra() vous permet d’encapsuler n’importe quel modèle AI SDK avec ces fonctionnalités. Cette approche est utile si vous souhaitez conserver votre code AI SDK existant tout en ajoutant le traitement des entrées et sorties, la persistance des conversations ou le filtrage de contenu.
Si vous souhaitez utiliser Mastra avec AI SDK UI (par exemple useChat()), consultez le guide AI SDK UI.
InstallationLien direct vers Installation
Installez @mastra/ai-sdk pour commencer à utiliser la fonction withMastra().
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/ai-sdk@latest
pnpm add @mastra/ai-sdk@latest
yarn add @mastra/ai-sdk@latest
bun add @mastra/ai-sdk@latest
ExemplesLien direct vers Exemples
Avec des processorsLien direct vers Avec des processors
Les processors permettent de transformer les messages avant leur envoi au modèle (processInput) et après la réception des réponses (processOutputResult). Cet exemple crée un processor de journalisation qui enregistre le nombre de messages à chaque étape, puis encapsule un modèle OpenAI avec celui-ci.
import { openai } from '@ai-sdk/openai'
import { generateText } from 'ai'
import { withMastra } from '@mastra/ai-sdk'
import type { Processor } from '@mastra/core/processors'
const loggingProcessor: Processor<'logger'> = {
id: 'logger',
async processInput({ messages }) {
console.log('Input:', messages.length, 'messages')
return messages
},
async processOutputResult({ messages }) {
console.log('Output:', messages.length, 'messages')
return messages
},
}
const model = withMastra(openai('gpt-5.4'), {
inputProcessors: [loggingProcessor],
outputProcessors: [loggingProcessor],
})
const { text } = await generateText({
model,
prompt: 'What is 2 + 2?',
})
Avec la mémoireLien direct vers Avec la mémoire
La mémoire charge automatiquement les messages précédents depuis le stockage avant l’appel au LLM, puis enregistre les nouveaux messages. Cet exemple configure un backend de stockage libSQL pour conserver l’historique de conversation et charge les 10 derniers messages comme contexte.
import { openai } from '@ai-sdk/openai'
import { generateText } from 'ai'
import { withMastra } from '@mastra/ai-sdk'
import { LibSQLStore } from '@mastra/libsql'
const storage = new LibSQLStore({
id: 'my-app',
url: 'file:./data.db',
})
await storage.init()
const memoryStorage = await storage.getStore('memory')
const model = withMastra(openai('gpt-5.4'), {
memory: {
storage: memoryStorage!,
threadId: 'user-thread-123',
resourceId: 'user-123',
lastMessages: 10,
},
})
const { text } = await generateText({
model,
prompt: 'What did we talk about earlier?',
})
Avec des processors et la mémoireLien direct vers Avec des processors et la mémoire
Vous pouvez combiner les processors et la mémoire. Les processors d’entrée s’exécutent après le chargement des messages historiques par la mémoire, et les processors de sortie avant l’enregistrement de la réponse par la mémoire.
import { openai } from '@ai-sdk/openai'
import { generateText } from 'ai'
import { withMastra } from '@mastra/ai-sdk'
import { LibSQLStore } from '@mastra/libsql'
const storage = new LibSQLStore({ id: 'my-app', url: 'file:./data.db' })
await storage.init()
const memoryStorage = await storage.getStore('memory')
const model = withMastra(openai('gpt-5.4'), {
inputProcessors: [myGuardProcessor],
outputProcessors: [myLoggingProcessor],
memory: {
storage: memoryStorage!,
threadId: 'thread-123',
resourceId: 'user-123',
lastMessages: 10,
},
})
const { text } = await generateText({
model,
prompt: 'Hello!',
})
Voir aussiLien direct vers Voir aussi
withMastra(): Référence de l’APIwithMastra()- Processors : Découvrez les processors d’entrée et de sortie
- Mémoire : Présentation du système de mémoire de Mastra
- AI SDK UI : Utiliser les hooks AI SDK UI avec les agents, Workflows et réseaux Mastra