ストレージの概要
Mastra ストレージはドメイン単位で構成されます。各ドメインは一連のテーブルまたはコレクションを所有します。使用するアダプターと設定に応じて、すべてのドメインまたは一部のドメインのみを使用できます。
ストレージドメインストレージドメインへの直接リンク
MastraCompositeStore は、次のドメインキーを振り分けられます。
すべてのストレージアダプターがすべてのドメインを実装しているわけではありません。対応するドメインクラスをアダターパッケージがエクスポートしていれば、複合ストレージによってドメインごとにアダプターを組み合わせられます。
| ドメイン | 説明 |
|---|---|
memory | 会話の永続化:メッセージ、スレッド、リソース(ワーキングメモリを含む)。 |
workflows | 一時停止と再開に使用する Workflow 実行スナップショット。 |
workflowDefinitions | 永続化された動的 Workflow 定義(ベータ版)。起動時に読み込まれ、ライブ登録されます。 |
scores | Eval 実行による評価スコアレコード。 |
observability | Observability Exporter と Studio が使用する Trace と Span。 |
datasets | 実験で使用するデータセットレコード、バージョン管理された項目、データセットバージョン。 |
experiments | 実験の実行と項目ごとの実験結果。 |
以下のスキーマ定義は、memory、workflows、scores、observability について文書化された、組み込みのデータベースベースのテーブルを対象としています。その他のドメインと非データベースアダプターは、実装固有のストレージ構造を使用します。
コアスキーマコアスキーマへの直接リンク
- メッセージ
- スレッド
- リソース
- Workflow
- Eval
- Trace
会話メッセージとそのメタデータを保存します。各メッセージはスレッドに属し、実際の内容に加えて、送信者のロールとメッセージタイプに関するメタデータを含みます。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx){ format: 2, parts: [...] }user | assistant の列挙型メッセージの content 列には、MastraMessageContentV2 型に準拠する JSON オブジェクトが格納されます。この型は、AI SDK の UIMessage メッセージ構造に厳密に合わせるよう設計されています。
type によって異なります。関連するメッセージをグループ化し、リソースに関連付けます。会話に関するメタデータを含みます。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx){
"category": "support",
"priority": 1
}リソース単位のワーキングメモリに使用するユーザー固有データを保存します。各リソースはユーザーまたはエンティティを表し、そのユーザーのすべての会話スレッドにわたってワーキングメモリを永続化できます。
{
"preferences": {
"language": "en",
"timezone": "UTC"
},
"tags": [
"premium",
"beta-user"
]
}Workflow で suspend() が呼び出されると、その状態が次の形式で保存されます。resume() が呼び出されると、その状態が復元されます。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx){
"value": {
"currentState": "running"
},
"context": {
"stepResults": {},
"attempts": {},
"triggerData": {}
},
"activePaths": [],
"runId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": 1648176000000
}Agent の出力に対してメトリクスを実行した Eval 結果を保存します。
{
"score": 0.95,
"details": {
"reason": "Response accurately reflects source material",
"citations": [
"page 1",
"page 3"
]
}
}xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)監視とデバッグのために OpenTelemetry Trace を記録します。
workflow.myWorkflow.execute、http.request、database.query)@mastra/core、express、pg)INTERNAL(0、プロセス内)、CLIENT(1、発信呼び出し)、SERVER(2、着信呼び出し)、PRODUCER(3、非同期ジョブ作成)、CONSUMER(4、非同期ジョブ処理)code(UNSET=0、ERROR=1、OK=2)と任意の message を含む JSON オブジェクト。例:{
"code": 1,
"message": "HTTP request failed with status 500"
}{
"droppedAttributesCount": 2,
"droppedEventsCount": 1,
"instrumentationLibrary": "@opentelemetry/instrumentation-http"
}