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は自動的にローカルのLibSQLStorefile:mastra.db)にフォールバックします。このデフォルトストレージは開発と簡単なプロトタイプに最適です。データはページの更新後も保持されますが、サーバープロセスが再起動したり、一時的な環境にデプロイしたりすると失われます。ほとんどの実際のアプリケーションでは、明示的なストレージインスタンスを提供する必要があります。エージェントに設定したMemoryは、Mastraに提供するストレージを使用します。両方の場所で省略した場合は、上記で説明したデフォルトのストレージが使用されます。

データスキーマ

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


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は以下のプロバイダーをサポートしています: