libSQL 스토리지
libSQL로컬 및 원격 배포를 모두 지원하는 오픈 소스 SQLite 호환 데이터베이스입니다. 메시지 기록, Workflow 스냅샷, 추적 및 평가 점수를 저장하는 데 사용할 수 있습니다.
의미 기반 회상이나 기존 RAG와 같은 벡터 기능은 임베딩과 벡터 검색을 지원하는 libSQL Vector를 사용하세요.
설치설치에 대한 직접 링크
스토리지 공급자는 별도의 패키지로 설치해야 합니다.
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/libsql@latest
pnpm add @mastra/libsql@latest
yarn add @mastra/libsql@latest
bun add @mastra/libsql@latest
용법용법에 대한 직접 링크
import { LibSQLStore } from '@mastra/libsql'
import { Mastra } from '@mastra/core'
const mastra = new Mastra({
storage: new LibSQLStore({
id: 'libsql-storage',
url: 'file:./storage.db',
}),
})
Agent 수준 파일 저장소:
import { Memory } from '@mastra/memory'
import { Agent } from '@mastra/core/agent'
import { LibSQLStore } from '@mastra/libsql'
export const agent = new Agent({
id: 'example-agent',
memory: new Memory({
storage: new LibSQLStore({
id: 'libsql-storage',
url: 'file:./agent.db',
}),
}),
})
파일 스토리지는 임시 파일 시스템을 사용하는 서버리스 플랫폼에서 작동하지 않습니다. 서버리스 배포에는 Turso 또는 다른 데이터베이스 엔진을 사용하세요.
원격 데이터베이스를 사용한 프로덕션:
storage: new LibSQLStore({
id: 'libsql-storage',
url: 'libsql://your-db-name.aws-ap-northeast-1.turso.io',
authToken: process.env.TURSO_AUTH_TOKEN,
})
로컬 개발 및 테스트를 위해 데이터를 Memory에 저장할 수 있습니다.
storage: new LibSQLStore({
id: 'libsql-storage',
url: ':memory:',
})
프로세스가 변경되면 Memory 내 저장소가 재설정됩니다. 개발에만 적합합니다.
옵션옵션에 대한 직접 링크
url:
:memory:, 파일 데이터베이스에는 file:filename.db, 원격 스토리지에는 libSQL 연결 문자열(예: libsql://your-database.turso.io)을 사용하세요.authToken?:
관리되는 테이블관리되는 테이블에 대한 직접 링크
스토리지 구현은 알림 수신함 레코드와 전달 메타데이터를 위한 mastra_notifications를 비롯하여 핵심 스토리지 테이블을 자동으로 생성합니다.
LibSQLStore다음을 통해 알림 저장소를 노출합니다.getStore('notifications').
초기화초기화에 대한 직접 링크
스토리지를 Mastra 클래스에 전달하면 핵심 스키마를 생성하도록 init()이 자동으로 호출됩니다.
import { Mastra } from '@mastra/core'
import { LibSQLStore } from '@mastra/libsql'
const storage = new LibSQLStore({
id: 'libsql-storage',
url: 'file:./storage.db',
})
const mastra = new Mastra({
storage, // init() called automatically
})
Mastra 없이 직접 저장소를 사용하는 경우init() explicitly:
import { LibSQLStore } from '@mastra/libsql'
const storage = new LibSQLStore({
id: 'libsql-storage',
url: 'file:./storage.db',
})
await storage.init()
// Access domain-specific stores via getStore()
const memoryStore = await storage.getStore('memory')
const thread = await memoryStore?.getThreadById({ threadId: '...' })
ObservabilityObservability에 대한 직접 링크
libSQL은 Observability을 지원하며 로컬 개발에 적합합니다. 디버깅 중 즉시 확인하려면 realtime Trace 전략을 사용하세요.
Trace 양이 많은 프로덕션 환경에서는 PostgreSQL 또는 복합 스토리지를 통한 ClickHouse를 사용하는 것이 좋습니다.