> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 메시지 기록 그만큼`MessageHistory`는**하이브리드 프로세서**메시지 기록의 검색과 지속성을 모두 처리합니다. 입력 시 스토리지에서 기록 메시지를 가져와서 대화 앞에 추가합니다. 출력 시 새 메시지를 스토리지에 유지합니다. ## 사용예 ```typescript import { MessageHistory } from '@mastra/core/processors' const processor = new MessageHistory({ storage: memoryStorage, lastMessages: 50, }) ``` ## 생성자 매개변수 **options** (`MessageHistoryOptions`): 메시지 기록 프로세서의 구성 옵션 **options.storage** (`MemoryStorage`): 메시지를 검색하고 유지하는 스토리지 인스턴스 **options.lastMessages** (`number`): 검색할 기록 메시지의 최대 개수입니다. 지정하지 않으면 모든 메시지를 검색합니다. ## 보고 **id** (`string`): 'message-history'로 설정되는 프로세서 식별자 **name** (`string`): 'MessageHistory'로 설정되는 프로세서 표시 이름 **processInput** (`(args: { messages: MastraDBMessage[]; messageList: MessageList; abort: (reason?: string) => never; tracingContext?: TracingContext; requestContext?: RequestContext }) => Promise`): 스토리지에서 기록 메시지를 가져와 메시지 목록에 추가합니다. **processOutputResult** (`(args: { messages: MastraDBMessage[]; messageList: MessageList; abort: (reason?: string) => never; tracingContext?: TracingContext; requestContext?: RequestContext }) => Promise`): 시스템 메시지를 제외하고 새 메시지(사용자 입력 및 어시스턴트 응답)를 스토리지에 유지합니다. ## 확장된 사용 예 ```typescript import { Agent } from '@mastra/core/agent' import { MessageHistory } from '@mastra/core/processors' import { PostgresStorage } from '@mastra/pg' const storage = new PostgresStorage({ connectionString: process.env.DATABASE_URL, }) export const agent = new Agent({ id: 'memory-agent', name: 'memory-agent', instructions: 'You are a helpful assistant with conversation memory', model: 'openai/gpt-5.6-sol', inputProcessors: [ new MessageHistory({ storage, lastMessages: 100, }), ], outputProcessors: [ new MessageHistory({ storage, }), ], }) ``` ## 행동 ### 입력 처리 1. 요청 컨텍스트에서 `threadId`를 가져옵니다. 2. 스토리지에서 기록 메시지를 가져옵니다(생성 날짜 기준 내림차순). 3. 시스템 메시지를 필터링합니다(데이터베이스에 저장하면 안 됨). 4. ID별 중복을 방지하면서 기록 메시지를 수신 메시지와 병합합니다. 5. 기록 메시지에 `source: 'memory'` 태그를 추가합니다. ### 출력 처리 1. 요청 컨텍스트에서 `threadId`를 가져옵니다. 2. Memory 구성에 `readOnly`가 설정되어 있으면 유지를 건너뜁니다. 3. 메시지에서 불완전한 Tool 호출을 필터링합니다. 4. 새 사용자 입력 및 어시스턴트 응답 메시지를 스토리지에 유지합니다. 5. 스레드의 `updatedAt` 타임스탬프를 업데이트합니다. ## 관련된 - [난간](https://mastra.zisheng.pro/ko/docs/agents/guardrails)