본문으로 건너뛰기

스토리지 개요

Mastra 스토리지는 도메인으로 구성됩니다. 각 도메인은 테이블 또는 컬렉션 집합을 소유합니다. 어댑터 및 구성에 따라 모든 도메인을 사용할 수도 있고 하위 집합만 사용할 수도 있습니다.

스토리지 도메인
스토리지 도메인에 대한 직접 링크

MastraCompositeStore다음 도메인 키를 라우팅할 수 있습니다.

모든 스토리지 어댑터가 모든 도메인을 구현하는 것은 아닙니다. 복합 스토리지를 사용하면 어댑터 패키지가 해당 도메인 클래스를 내보낼 때 도메인당 어댑터를 혼합할 수 있습니다.

도메인설명
memory대화 영속성: 메시지, 스레드 및 리소스(작업 Memory 포함).
workflows일시 중지 및 재개에 사용되는 Workflow 실행 스냅샷.
workflowDefinitions영속화된 동적 Workflow 정의(베타). 부팅 시 로드되고 런타임에 등록됩니다.
scoresEvals 실행의 평가 점수 레코드.
observabilityObservability 내보내기 및 Studio에서 사용하는 Trace와 스팬.
datasets실험에 사용되는 데이터세트 레코드, 버전이 지정된 항목 및 데이터세트 버전.
experiments실험 실행 및 항목별 실험 결과.
아래 스키마 정의에서는 memory, workflows, scores, observability에 대해 문서화된 기본 제공 데이터베이스 지원 테이블을 다룹니다. 다른 도메인과 데이터베이스 이외의 어댑터는 구현별 저장소 구조를 사용합니다.

핵심 스키마
핵심 스키마에 대한 직접 링크

대화 메시지와 해당 메타데이터를 저장합니다. 각 메시지는 스레드에 속하며 보낸 사람 역할 및 메시지 유형에 대한 메타데이터와 함께 실제 콘텐츠를 포함합니다.

id
uuidv4
PRIMARYKEY
NOT NULL
메시지의 고유 식별자입니다(형식: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
thread_id
uuidv4
FK → threads.id
NOT NULL
상위 스레드 참조입니다.
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
스레드 메시지 순서를 정하는 데 사용됩니다.

메시지의 content 열에는 AI SDK UIMessage 메시지 구조와 긴밀하게 일치하도록 설계된 MastraMessageContentV2 타입의 JSON 객체가 포함됩니다.

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
어시스턴트 응답의 추론 과정에 관한 선택적 정보입니다.
annotations
object (JSON)
CAN BE NULL
선택적 추가 메타데이터 또는 주석입니다.