跳至主要內容

儲存空間概觀

Mastra 儲存空間以 domain 組織。每個 domain 都擁有一組資料表或 collection。視 adapter 與設定而定,你可以使用所有 domain,或只使用其中一部分。

儲存 domain
「儲存 domain」的直接連結

MastraCompositeStore 可以路由下列 domain key:

並非每個儲存 adapter 都會實作所有 domain。只要 adapter 套件匯出對應的 domain 類別,複合儲存空間就能讓你為各 domain 混用不同 adapter。

Domain說明
memory對話持久化:訊息、thread 與資源(包括 working memory)。
workflows用於暫停與繼續執行的 Workflow run snapshot。
workflowDefinitions持久化的動態 Workflow 定義(beta)。啟動時載入並即時註冊。
scores評估執行所產生的評估分數記錄。
observability供可觀測性 exporter 與 Studio 使用的 Trace 和 span。
datasets實驗使用的 dataset 記錄、版本化項目與 dataset 版本。
experiments實驗執行與各項目的實驗結果。

下列 schema 定義涵蓋 memoryworkflowsscoresobservability 中有文件說明、以資料庫為基礎的內建資料表。其他 domain 與非資料庫 adapter 則使用各實作專屬的儲存結構。

核心 schema
「核心 schema」的直接連結

儲存對話訊息及其 metadata。每則訊息都屬於一個 thread,並包含實際內容,以及傳送者角色與訊息型別的 metadata。

id
uuidv4
PRIMARYKEY
NOT NULL
訊息的唯一識別碼(格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
thread_id
uuidv4
FK → threads.id
NOT NULL
父 thread 參照
resourceId
uuidv4
CAN BE NULL
擁有此訊息之資源的 ID
content
text
NOT NULL
V2 格式的訊息內容 JSON。範例:{ format: 2, parts: [...] }
role
text
NOT NULL
user | assistant 列舉值
createdAt
timestamp
NOT NULL
用於排列 thread 訊息

訊息的 content 欄位包含符合 MastraMessageContentV2 型別的 JSON 物件;此型別的設計與 AI SDK 的 UIMessage 訊息結構緊密對應。

format
integer
NOT NULL
訊息格式版本(目前為 2)
parts
array (JSON)
NOT NULL
訊息部分的陣列(文字、Tool 呼叫、檔案、推理等)。此陣列中的項目結構會依 type 而異。
experimental_attachments
array (JSON)
CAN BE NULL
選用的檔案附件陣列
content
text
CAN BE NULL
選用的訊息主要文字內容
toolInvocations
array (JSON)
CAN BE NULL
選用的陣列,用於彙整 Tool 呼叫與結果
reasoning
object (JSON)
CAN BE NULL
關於 assistant 回應背後推理過程的選用資訊
annotations
object (JSON)
CAN BE NULL
選用的其他 metadata 或註解