> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # ストレージの概要 Mastra ストレージはドメイン単位で構成されます。各ドメインは一連のテーブルまたはコレクションを所有します。使用するアダプターと設定に応じて、すべてのドメインまたは一部のドメインのみを使用できます。 ## ストレージドメイン `MastraCompositeStore` は、次のドメインキーを振り分けられます。 すべてのストレージアダプターがすべてのドメインを実装しているわけではありません。対応するドメインクラスをアダターパッケージがエクスポートしていれば、複合ストレージによってドメインごとにアダプターを組み合わせられます。 | ドメイン | 説明 | | --------------------- | ----------------------------------------------------------------------------------------------------------------- | | `memory` | 会話の永続化:メッセージ、スレッド、リソース(ワーキングメモリを含む)。 | | `workflows` | 一時停止と再開に使用する Workflow 実行スナップショット。 | | `workflowDefinitions` | 永続化された[動的 Workflow](https://mastra.zisheng.pro/ja/docs/workflows/dynamic-workflows) 定義(ベータ版)。起動時に読み込まれ、ライブ登録されます。 | | `scores` | Eval 実行による評価スコアレコード。 | | `observability` | Observability Exporter と Studio が使用する Trace と Span。 | | `datasets` | 実験で使用するデータセットレコード、バージョン管理された項目、データセットバージョン。 | | `experiments` | 実験の実行と項目ごとの実験結果。 | 以下のスキーマ定義は、`memory`、`workflows`、`scores`、`observability` について文書化された、組み込みのデータベースベースのテーブルを対象としています。その他のドメインと非データベースアダプターは、実装固有のストレージ構造を使用します。 ## コアスキーマ **メッセージ**: 会話メッセージとそのメタデータを保存します。各メッセージはスレッドに属し、実際の内容に加えて、送信者のロールとメッセージタイプに関するメタデータを含みます。 iduuidv4PRIMARYKEYNOT NULLメッセージの一意な識別子(形式:`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)thread\_iduuidv4FK → threads.idNOT NULL親スレッドへの参照resourceIduuidv4CAN BE NULLこのメッセージを所有するリソースの IDcontenttextNOT NULLV2 形式のメッセージ内容を表す JSON。例:`{ format: 2, parts: [...] }`roletextNOT NULL`user | assistant` の列挙型createdAttimestampNOT NULLスレッド内のメッセージ順序に使用 メッセージの `content` 列には、`MastraMessageContentV2` 型に準拠する JSON オブジェクトが格納されます。この型は、AI SDK の `UIMessage` メッセージ構造に厳密に合わせるよう設計されています。 formatintegerNOT NULLメッセージ形式のバージョン(現在は 2)partsarray (JSON)NOT NULLメッセージパーツ(テキスト、Tool 呼び出し、ファイル、推論など)の配列。配列内の項目構造は `type` によって異なります。experimental\_attachmentsarray (JSON)CAN BE NULL任意のファイル添付配列contenttextCAN BE NULL任意のメッセージ本文toolInvocationsarray (JSON)CAN BE NULLTool 呼び出しと結果を要約する任意の配列reasoningobject (JSON)CAN BE NULLAssistant の応答に至る推論プロセスに関する任意の情報annotationsobject (JSON)CAN BE NULL任意の追加メタデータまたは注釈 **スレッド**: 関連するメッセージをグループ化し、リソースに関連付けます。会話に関するメタデータを含みます。 iduuidv4PRIMARYKEYNOT NULLスレッドの一意な識別子(形式:`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)resourceIdtextNOT NULLこのスレッドに関連付けられた外部リソースの主識別子。関連スレッドのグループ化と取得に使用します。titletextNOT NULL会話スレッドのタイトルmetadatatext文字列化された JSON 形式のカスタムスレッドメタデータ。例: ```json { "category": "support", "priority": 1 } ``` createdAttimestampNOT NULLupdatedAttimestampNOT NULLスレッド履歴の並べ替えに使用 **リソース**: リソース単位のワーキングメモリに使用するユーザー固有データを保存します。各リソースはユーザーまたはエンティティを表し、そのユーザーのすべての会話スレッドにわたってワーキングメモリを永続化できます。 idtextPRIMARYKEYNOT NULLリソース識別子(ユーザーまたはエンティティ ID):スレッドと Agent 呼び出しで使用する resourceId と同じ値workingMemorytextCAN BE NULLMarkdown テキスト形式の永続的なワーキングメモリデータ。会話スレッド間で維持されるユーザープロフィール、設定、コンテキスト情報を含みます。metadatajsonbCAN BE NULLJSON 形式の追加リソースメタデータ。例: ```json { "preferences": { "language": "en", "timezone": "UTC" }, "tags": [ "premium", "beta-user" ] } ``` createdAttimestampNOT NULLリソースレコードが最初に作成された日時updatedAttimestampNOT NULLワーキングメモリが最後に更新された日時 **Workflow**: Workflow で `suspend()` が呼び出されると、その状態が次の形式で保存されます。`resume()` が呼び出されると、その状態が復元されます。 workflow\_nametextNOT NULLWorkflow 名run\_iduuidv4NOT NULLWorkflow 実行の一意な識別子。一時停止と再開のサイクルをまたいだ状態追跡に使用します(形式:`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)snapshottextNOT NULLJSON としてシリアライズされた Workflow の状態。例: ```json { "value": { "currentState": "running" }, "context": { "stepResults": {}, "attempts": {}, "triggerData": {} }, "activePaths": [], "runId": "550e8400-e29b-41d4-a716-446655440000", "timestamp": 1648176000000 } ``` createdAttimestampNOT NULLupdatedAttimestampNOT NULL最終更新日時。Workflow 実行中の状態変化の追跡に使用します **Eval**: Agent の出力に対してメトリクスを実行した Eval 結果を保存します。 inputtextNOT NULLAgent に提供された入力outputtextNOT NULLAgent が生成した出力resultjsonbNOT NULLスコアと詳細を含む Eval 結果データ。例: ```json { "score": 0.95, "details": { "reason": "Response accurately reflects source material", "citations": [ "page 1", "page 3" ] } } ``` agent\_nametextNOT NULLmetric\_nametextNOT NULL例:Faithfulness、Hallucination などinstructionstextNOT NULLAgent のシステムプロンプトまたは指示test\_infojsonbNOT NULL追加のテストメタデータと設定global\_run\_iduuidv4NOT NULL関連する評価実行をグループ化します(例:1回の CI 実行に含まれるすべてのユニットテスト)run\_iduuidv4NOT NULL評価対象の実行を示す一意な識別子(形式:`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)created\_attimestampNOT NULL **Trace**: 監視とデバッグのために OpenTelemetry Trace を記録します。 idtextNOT NULLPRIMARYKEY一意な Trace 識別子parentSpanIdtext親 Span の ID。最上位の Span の場合は nullnametextNOT NULL階層化された操作名(例:`workflow.myWorkflow.execute`、`http.request`、`database.query`)traceIdtextNOT NULL関連する Span をグループ化するルート Trace 識別子scopetextNOT NULLSpan を作成したライブラリ、パッケージ、サービス(例:`@mastra/core`、`express`、`pg`)kindintegerNOT NULL`INTERNAL`(0、プロセス内)、`CLIENT`(1、発信呼び出し)、`SERVER`(2、着信呼び出し)、`PRODUCER`(3、非同期ジョブ作成)、`CONSUMER`(4、非同期ジョブ処理)attributesjsonbSpan メタデータを格納するユーザー定義のキーと値のペアstatusjsonb`code`(UNSET=0、ERROR=1、OK=2)と任意の `message` を含む JSON オブジェクト。例: ```json { "code": 1, "message": "HTTP request failed with status 500" } ``` eventsjsonbSpan 中に発生したタイムスタンプ付きイベントlinksjsonb関連する他の Span へのリンクothertext文字列化された JSON 形式の追加 OpenTelemetry Span フィールド。例: ```json { "droppedAttributesCount": 2, "droppedEventsCount": 1, "instrumentationLibrary": "@opentelemetry/instrumentation-http" } ``` startTimebigintNOT NULLSpan 開始時の Unix エポックからの経過ナノ秒endTimebigintNOT NULLSpan 終了時の Unix エポックからの経過ナノ秒createdAttimestampNOT NULL