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

storage 設定を指定しない場合、Mastra はアプリケーションの再起動やデプロイメントの際にデータを永続化しません。ローカルテスト以外のデプロイメントでは、Mastra または new Memory() 内で独自のストレージ設定を指定する必要があります。

データスキーマ

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


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
スレッド内のメッセージ順序付けに使用

Storage Providers

Mastraは以下のプロバイダーをサポートしています:

  • ローカル開発については、LibSQL Storageをご確認ください
  • 本番環境については、PostgreSQL Storageをご確認ください
  • サーバーレスデプロイメントについては、Upstash Storageをご確認ください