MastraStorage
MastraStorage
は、以下の管理のための統一されたインターフェースを提供します:
- 中断されたワークフロー: 中断されたワークフローのシリアライズされた状態(後で再開できるように)
- メモリ: アプリケーション内の
resourceId
ごとのスレッドとメッセージ - トレース: MastraのすべてのコンポーネントからのOpenTelemetryトレース
- 評価データセット: 評価実行からのスコアとスコアリングの理由

Mastraは異なるストレージプロバイダーを提供しますが、それらを交換可能として扱うことができます。例えば、開発中はlibsqlを使用し、本番環境ではpostgresを使用することができ、どちらの場合でもコードは同じように動作します。
設定
Mastraはデフォルトのストレージオプションで設定できます:
import { Mastra } from "@mastra/core/mastra";
import { LibSQLStore } from "@mastra/libsql";
const mastra = new Mastra({
storage: new LibSQLStore({
url: "file:./mastra.db",
}),
});
データスキーマ
Messages
会話メッセージとそのメタデータを保存します。各メッセージはスレッドに属し、送信者の役割やメッセージタイプに関するメタデータと共に実際のコンテンツを含みます。
id
uuidv4
PRIMARYKEY
NOT NULL
メッセージの一意の識別子(形式:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
)thread_id
uuidv4
FK → threads.id
NOT NULL
親スレッドの参照
content
text
NOT NULL
role
text
NOT NULL
system | user | assistant | tool
の列挙型type
text
NOT NULL
text | tool-call | tool-result
の列挙型createdAt
timestamp
NOT NULL
スレッドメッセージの順序付けに使用
ストレージプロバイダー
Mastraは以下のプロバイダーをサポートしています:
- ローカル開発には、LibSQL Storageをチェックしてください
- 本番環境には、PostgreSQL Storageをチェックしてください
- サーバーレスデプロイメントには、Upstash Storageをチェックしてください