メインコンテンツへ移動

ストレージの概要

Mastra ストレージはドメイン単位で構成されます。各ドメインは一連のテーブルまたはコレクションを所有します。使用するアダプターと設定に応じて、すべてのドメインまたは一部のドメインのみを使用できます。

ストレージドメイン
ストレージドメインへの直接リンク

MastraCompositeStore は、次のドメインキーを振り分けられます。

すべてのストレージアダプターがすべてのドメインを実装しているわけではありません。対応するドメインクラスをアダターパッケージがエクスポートしていれば、複合ストレージによってドメインごとにアダプターを組み合わせられます。

ドメイン説明
memory会話の永続化:メッセージ、スレッド、リソース(ワーキングメモリを含む)。
workflows一時停止と再開に使用する Workflow 実行スナップショット。
workflowDefinitions永続化された動的 Workflow 定義(ベータ版)。起動時に読み込まれ、ライブ登録されます。
scoresEval 実行による評価スコアレコード。
observabilityObservability Exporter と Studio が使用する Trace と Span。
datasets実験で使用するデータセットレコード、バージョン管理された項目、データセットバージョン。
experiments実験の実行と項目ごとの実験結果。

以下のスキーマ定義は、memoryworkflowsscoresobservability について文書化された、組み込みのデータベースベースのテーブルを対象としています。その他のドメインと非データベースアダプターは、実装固有のストレージ構造を使用します。

コアスキーマ
コアスキーマへの直接リンク

会話メッセージとそのメタデータを保存します。各メッセージはスレッドに属し、実際の内容に加えて、送信者のロールとメッセージタイプに関するメタデータを含みます。

id
uuidv4
PRIMARYKEY
NOT NULL
メッセージの一意な識別子(形式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
thread_id
uuidv4
FK → threads.id
NOT NULL
親スレッドへの参照
resourceId
uuidv4
CAN BE NULL
このメッセージを所有するリソースの ID
content
text
NOT NULL
V2 形式のメッセージ内容を表す JSON。例:{ format: 2, parts: [...] }
role
text
NOT NULL
user | assistant の列挙型
createdAt
timestamp
NOT NULL
スレッド内のメッセージ順序に使用

メッセージの content 列には、MastraMessageContentV2 型に準拠する JSON オブジェクトが格納されます。この型は、AI SDK の UIMessage メッセージ構造に厳密に合わせるよう設計されています。

format
integer
NOT NULL
メッセージ形式のバージョン(現在は 2)
parts
array (JSON)
NOT NULL
メッセージパーツ(テキスト、Tool 呼び出し、ファイル、推論など)の配列。配列内の項目構造は type によって異なります。
experimental_attachments
array (JSON)
CAN BE NULL
任意のファイル添付配列
content
text
CAN BE NULL
任意のメッセージ本文
toolInvocations
array (JSON)
CAN BE NULL
Tool 呼び出しと結果を要約する任意の配列
reasoning
object (JSON)
CAN BE NULL
Assistant の応答に至る推論プロセスに関する任意の情報
annotations
object (JSON)
CAN BE NULL
任意の追加メタデータまたは注釈