메시지 기록
그만큼MessageHistory는하이브리드 프로세서메시지 기록의 검색과 지속성을 모두 처리합니다. 입력 시 스토리지에서 기록 메시지를 가져와서 대화 앞에 추가합니다. 출력 시 새 메시지를 스토리지에 유지합니다.
사용예사용예에 대한 직접 링크
import { MessageHistory } from '@mastra/core/processors'
const processor = new MessageHistory({
storage: memoryStorage,
lastMessages: 50,
})
생성자 매개변수생성자 매개변수에 대한 직접 링크
options:
MessageHistoryOptions
메시지 기록 프로세서의 구성 옵션
MessageHistoryOptions
storage:
MemoryStorage
메시지를 검색하고 유지하는 스토리지 인스턴스
lastMessages?:
number
검색할 기록 메시지의 최대 개수입니다. 지정하지 않으면 모든 메시지를 검색합니다.
보고보고에 대한 직접 링크
id:
string
'message-history'로 설정되는 프로세서 식별자
name:
string
'MessageHistory'로 설정되는 프로세서 표시 이름
processInput:
(args: { messages: MastraDBMessage[]; messageList: MessageList; abort: (reason?: string) => never; tracingContext?: TracingContext; requestContext?: RequestContext }) => Promise<MessageList | MastraDBMessage[]>
스토리지에서 기록 메시지를 가져와 메시지 목록에 추가합니다.
processOutputResult:
(args: { messages: MastraDBMessage[]; messageList: MessageList; abort: (reason?: string) => never; tracingContext?: TracingContext; requestContext?: RequestContext }) => Promise<MessageList>
시스템 메시지를 제외하고 새 메시지(사용자 입력 및 어시스턴트 응답)를 스토리지에 유지합니다.
확장된 사용 예확장된 사용 예에 대한 직접 링크
src/mastra/agents/memory-agent.ts
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,
}),
],
})
행동행동에 대한 직접 링크
입력 처리입력 처리에 대한 직접 링크
- 요청 컨텍스트에서
threadId를 가져옵니다. - 스토리지에서 기록 메시지를 가져옵니다(생성 날짜 기준 내림차순).
- 시스템 메시지를 필터링합니다(데이터베이스에 저장하면 안 됨).
- ID별 중복을 방지하면서 기록 메시지를 수신 메시지와 병합합니다.
- 기록 메시지에
source: 'memory'태그를 추가합니다.
출력 처리출력 처리에 대한 직접 링크
- 요청 컨텍스트에서
threadId를 가져옵니다. - Memory 구성에
readOnly가 설정되어 있으면 유지를 건너뜁니다. - 메시지에서 불완전한 Tool 호출을 필터링합니다.
- 새 사용자 입력 및 어시스턴트 응답 메시지를 스토리지에 유지합니다.
- 스레드의
updatedAt타임스탬프를 업데이트합니다.