Skip to Content
ドキュメントストレージ概要

MastraStorage

MastraStorage は、以下の管理のための統一されたインターフェースを提供します:

  • 中断されたワークフロー: 中断されたワークフローのシリアライズされた状態(後で再開できるように)
  • メモリ: アプリケーション内のresourceIdごとのスレッドとメッセージ
  • トレース: MastraのすべてのコンポーネントからのOpenTelemetryトレース
  • 評価データセット: 評価実行からのスコアとスコアリングの理由


Diagram showing storage in Mastra

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", }), });

データスキーマ

会話メッセージとそのメタデータを保存します。各メッセージはスレッドに属し、送信者の役割やメッセージタイプに関するメタデータと共に実際のコンテンツを含みます。


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をチェックしてください