> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # Memory 클래스 그만큼`Memory`클래스는 Mastra의 대화 기록 및 스레드 기반 메시지 저장을 관리하기 위한 안정적인 시스템을 제공합니다. 이는 대화의 지속적인 저장, 의미론적 검색 기능 및 효율적인 메시지 검색을 가능하게 합니다. 대화 기록을 위한 저장소 공급자를 구성해야 하며, 의미적 회상을 활성화하는 경우 벡터 저장소와 임베더도 제공해야 합니다. ## 사용예 ```typescript import { Memory } from '@mastra/memory' import { Agent } from '@mastra/core/agent' export const agent = new Agent({ id: 'test-agent', name: 'test-agent', instructions: 'You are an agent with memory.', model: 'openai/gpt-5.6-sol', memory: new Memory({ options: { workingMemory: { enabled: true, }, }, }), }) ``` > **노트:** Agent에서 `workingMemory`를 활성화하려면 기본 Mastra 인스턴스에 스토리지 Provider가 구성되어 있어야 합니다. 자세한 내용은 [Mastra 클래스](https://mastra.zisheng.pro/ko/reference/core/mastra-class)를 참조하세요. ## 생성자 매개변수 **storage** (`MastraCompositeStore`): Memory 데이터를 영구 저장하기 위한 스토리지 구현입니다. 제공하지 않으면 기본값은 new DefaultStorage({ config: { url: "file:memory.db" } })입니다. **vector** (`MastraVector | false`): 의미 체계 검색 기능을 위한 벡터 저장소입니다. 벡터 작업을 비활성화하려면 false로 설정합니다. **embedder** (`EmbeddingModel | EmbeddingModelV2`): 벡터 임베딩을 위한 임베더 인스턴스입니다. 의미 체계 회상을 활성화할 때 필요합니다. **options** (`MemoryConfig`): Memory 구성 옵션입니다. **options.lastMessages** (`number | false`): 컨텍스트에 포함할 가장 최근 메시지 수입니다. 메시지 기록 기능 전체를 비활성화하려면 false로 설정합니다(메시지가 컨텍스트에 로드되거나 저장되지 않음). 제한 없이 모든 메시지를 조회하려면 Number.MAX\_SAFE\_INTEGER를 사용합니다. 새 메시지를 저장하지 않고 메시지만 로드하려면 readOnly 옵션을 사용합니다. **options.readOnly** (`boolean`): When true, prevents memory from saving new messages and provides working memory as read-only context (without the updateWorkingMemory tool). Useful for read-only operations like previews, internal routing agents, or sub agents that should reference but not modify memory. **options.semanticRecall** (`boolean | { topK: number; messageRange: number | { before: number; after: number }; scope?: 'thread' | 'resource' }`): 메시지 기록에서 의미 체계 검색을 활성화합니다. 불리언 또는 구성 옵션이 포함된 객체일 수 있습니다. 활성화하려면 벡터 저장소와 임베더를 모두 구성해야 합니다. topK의 기본값은 4이고, messageRange의 기본값은 {before: 1, after: 1}입니다. **options.workingMemory** (`WorkingMemory`): 작업 Memory 기능의 구성입니다. { enabled: boolean; template?: string; schema?: ZodObject\ | JSONSchema7; scope?: 'thread' | 'resource' }이거나, 비활성화하려면 { enabled: boolean }일 수 있습니다. **options.observationalMemory** (`boolean | ObservationalMemoryOptions`): 긴 컨텍스트의 Agent형 Memory를 위한 Observational Memory를 활성화합니다. 기본값을 사용하려면 true로 설정하고, 토큰 예산, Model 및 범위를 사용자 정의하려면 구성 객체를 전달합니다. 구성에 관한 자세한 내용은 Observational Memory 레퍼런스를 참조하세요. **options.generateTitle** (`boolean | { model: DynamicArgument; instructions?: DynamicArgument }`): 대화 기록을 바탕으로 스레드 제목을 자동 생성할지 제어합니다. 불리언 또는 사용자 정의 Model과 지침이 포함된 객체일 수 있습니다. ## 보고 **memory** (`Memory`): 지정된 구성으로 생성된 새 Memory 인스턴스입니다. ## 확장된 사용 예 ```typescript import { Memory } from '@mastra/memory' import { Agent } from '@mastra/core/agent' import { LibSQLStore, LibSQLVector } from '@mastra/libsql' export const agent = new Agent({ name: 'test-agent', instructions: 'You are an agent with memory.', model: 'openai/gpt-5.6-sol', memory: new Memory({ storage: new LibSQLStore({ id: 'test-agent-storage', url: 'file:./working-memory.db', }), vector: new LibSQLVector({ id: 'test-agent-vector', url: 'file:./vector-memory.db', }), options: { lastMessages: 10, semanticRecall: { topK: 3, messageRange: 2, scope: 'resource', }, workingMemory: { enabled: true, }, generateTitle: true, }, }), }) ``` ## 인덱스 구성이 포함된 PostgreSQL ```typescript import { Memory } from '@mastra/memory' import { Agent } from '@mastra/core/agent' import { ModelRouterEmbeddingModel } from '@mastra/core/llm' import { PgStore, PgVector } from '@mastra/pg' export const agent = new Agent({ name: 'pg-agent', instructions: 'You are an agent with optimized PostgreSQL memory.', model: 'openai/gpt-5.6-sol', memory: new Memory({ storage: new PgStore({ id: 'pg-agent-storage', connectionString: process.env.DATABASE_URL, }), vector: new PgVector({ id: 'pg-agent-vector', connectionString: process.env.DATABASE_URL, }), embedder: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'), options: { lastMessages: 20, semanticRecall: { topK: 5, messageRange: 3, scope: 'resource', indexConfig: { type: 'hnsw', // Use HNSW for better performance metric: 'dotproduct', // Optimal for OpenAI embeddings m: 16, // Number of bi-directional links efConstruction: 64, // Construction-time candidate list size }, }, workingMemory: { enabled: true, }, }, }), }) ``` ### 관련된 - [Memory 시작하기](https://mastra.zisheng.pro/ko/docs/memory/overview) - [의미적 회상](https://mastra.zisheng.pro/ko/docs/memory/semantic-recall) - [작업기억](https://mastra.zisheng.pro/ko/docs/memory/working-memory) - [관찰 기억](https://mastra.zisheng.pro/ko/docs/memory/observational-memory) - [Memory 프로세서](https://mastra.zisheng.pro/ko/docs/memory/memory-processors) - [생성스레드](https://mastra.zisheng.pro/ko/reference/memory/createThread) - [상기하다](https://mastra.zisheng.pro/ko/reference/memory/recall) - [getThreadById](https://mastra.zisheng.pro/ko/reference/memory/getThreadById) - [목록스레드](https://mastra.zisheng.pro/ko/reference/memory/listThreads) - [삭제메시지](https://mastra.zisheng.pro/ko/reference/memory/deleteMessages) - [클론스레드](https://mastra.zisheng.pro/ko/reference/memory/cloneThread) - [복제 유틸리티 방법](https://mastra.zisheng.pro/ko/reference/memory/clone-utilities)