Aller au contenu principal

Vue d’ensemble du stockage

Le stockage Mastra est organisé en domaines. Chaque domaine possède un ensemble de tables ou de collections. Selon votre adaptateur et votre configuration, vous pouvez utiliser tous les domaines ou seulement un sous-ensemble.

Domaines de stockage
Lien direct vers Domaines de stockage

MastraCompositeStore peut router les clés de domaine suivantes :

Tous les adaptateurs de stockage n’implémentent pas chaque domaine. Le stockage composite vous permet de mélanger les adaptateurs par domaine lorsque les packages d’adaptateurs exportent les classes de domaine correspondantes.

DomaineDescription
memoryPersistance des conversations : messages, fils de discussion et ressources (y compris la mémoire de travail).
workflowsInstantanés d’exécution de Workflow utilisés pour suspendre et reprendre.
workflowDefinitionsDéfinitions persistantes de Workflow dynamiques (bêta). Chargées et enregistrées dynamiquement au démarrage.
scoresEnregistrements des scores d’évaluation issus des exécutions d’eval.
observabilityTraces et spans utilisés par les exportateurs d’observabilité et Studio.
datasetsEnregistrements de datasets, éléments versionnés et versions de datasets utilisés par les expériences.
experimentsExécutions d’expériences et résultats d’expérience par élément.

Les définitions de schéma ci-dessous couvrent les tables intégrées adossées à une base de données documentées pour memory, workflows, scores et observability. Les autres domaines et les adaptateurs qui ne s’appuient pas sur une base de données utilisent des structures de stockage propres à leur implémentation.

Schéma central
Lien direct vers Schéma central

Stocke les messages de conversation et leurs métadonnées. Chaque message appartient à un fil de discussion et contient le contenu réel ainsi que des métadonnées sur le rôle de l’expéditeur et le type de message.

id
uuidv4
PRIMARYKEY
NOT NULL
Identifiant unique du message (format : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
thread_id
uuidv4
FK → threads.id
NOT NULL
Référence au fil de discussion parent
resourceId
uuidv4
CAN BE NULL
ID de la ressource propriétaire de ce message
content
text
NOT NULL
JSON du contenu du message au format V2. Exemple : { format: 2, parts: [...] }
role
text
NOT NULL
Énumération de user | assistant
createdAt
timestamp
NOT NULL
Utilisé pour l’ordre des messages du fil de discussion

La colonne content du message contient un objet JSON conforme au type MastraMessageContentV2, conçu pour correspondre étroitement à la structure de message UIMessage de l’AI SDK.

format
integer
NOT NULL
Version du format de message (actuellement 2)
parts
array (JSON)
NOT NULL
Tableau de parties de message (texte, appel d’outil, fichier, raisonnement, etc.). La structure des éléments de ce tableau varie selon type.
experimental_attachments
array (JSON)
CAN BE NULL
Tableau facultatif de pièces jointes
content
text
CAN BE NULL
Contenu textuel principal facultatif du message
toolInvocations
array (JSON)
CAN BE NULL
Tableau facultatif résumant les appels d’outils et leurs résultats
reasoning
object (JSON)
CAN BE NULL
Informations facultatives sur le processus de raisonnement derrière la réponse de l’assistant
annotations
object (JSON)
CAN BE NULL
Métadonnées ou annotations supplémentaires facultatives