> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # Memory.요약쓰레드() 그만큼`.summarizeThread()`메서드는 스레드의 대화를 한 번에 요약합니다. 스토리지에서 스레드의 메시지를 로드하고 이를 구동하는 동일한 Observer 배관을 통해 증류합니다.[관찰 기억](https://mastra.zisheng.pro/ko/reference/memory/observational-memory): Agent에 관찰 Memory가 연결되지 않은 독립형 호출입니다. 메시지는 최신 항목부터 `lastMessages` 및 `maxInputTokens`의 제한에 따라 페이지 단위로 불러오므로, 긴 스레드를 요약할 때 저장소에서 전체 기록을 읽지 않습니다. Memory에는 아무것도 다시 기록되지 않습니다. 요약과 추출된 값은 사용자에게 반환되며 각 추출기의 `onExtracted` hook에도 전달되므로, 자체 데이터베이스 등 저장 위치를 직접 결정할 수 있습니다. 세션이 끝나고 통화가 종료된 음성 통화처럼 전체 대화의 요약이나 구조화된 추출이 필요할 때 이 기능을 사용하세요. 이미 보유한 메시지를 스레드에서 불러오지 않고 사용하려면 독립 실행형 [`summarizeConversation()`](https://mastra.zisheng.pro/ko/reference/memory/summarizeConversation) 함수를 대신 사용하세요. 이 함수는 `threadId` 대신 `messages`를 사용하며 나머지 옵션은 같습니다. ## 사용예 ```typescript const result = await memory.summarizeThread({ model: 'openai/gpt-5-mini', threadId: 'thread-123', instructions: 'Summarize this voicemail call for the business owner.', }) ``` ## 매개변수 **threadId** (`string`): 요약할 스레드의 고유 식별자입니다. **model** (`string | LanguageModel | DynamicModel`): '\_\_GATEWAY\_OPENAI\_MODEL\_MINI\_\_' 같은 라우터 문자열 등 요약을 실행하는 Model입니다. **resourceId** (`string`): 스레드를 소유한 리소스의 ID입니다. 제공하면 스레드 소유권을 검증합니다. 추출기 컨텍스트에도 전달됩니다. **lastMessages** (`number`): 스레드의 마지막 N개 메시지만 요약합니다. 기본적으로 maxInputTokens의 제한 내에서 전체 스레드를 불러옵니다. **maxInputTokens** (`number`): 수집된 메시지가 이 예상 토큰 수를 초과하면 이전 메시지 불러오기를 중단합니다. 최신 메시지는 항상 포함됩니다. (Default: `1000000`) **instructions** (`string`): 집중할 내용이나 요약의 대상 독자 등 요약기의 시스템 Prompt에 추가할 지침입니다. **extract** (`Extractor[]`): 대화에 실행할 추출기입니다. Zod 스키마가 있는 추출기는 후속 구조화 출력 호출로 실행되고, 스키마가 없는 추출기는 인라인으로 추출됩니다. 각 추출기의 onExtracted hook은 추출된 값과 함께 호출됩니다. **requestContext** (`RequestContext`): 요약기 Model과 추출기 hook에 전달되는 요청 컨텍스트입니다. **abortSignal** (`AbortSignal`): 요약 호출을 취소하는 신호입니다. ## 보고 **summary** (`string`): 대화에서 추출한 핵심 관찰을 밀도 높은 글머리 기호 형식으로 제공합니다. **extracted** (`Record`): extract 추출기가 생성한 값이며 추출기 slug를 키로 사용합니다. **extractionFailures** (`{ slug: string; error: string }[]`): 유효한 값을 생성하지 못한 추출기와 실패 이유입니다. 하나 이상의 추출기가 실패한 경우에만 존재합니다. **usage** (`{ inputTokens?: number; outputTokens?: number; totalTokens?: number }`): 요약 호출의 토큰 사용량입니다. ## 확장된 사용 예 다음 예에서는 완료된 음성 통화를 요약하고 애플리케이션 자체 데이터베이스에 구조화된 레코드를 저장합니다. ```typescript import { Extractor } from '@mastra/memory' import { z } from 'zod' import { memory } from './mastra/memory' import { callRecords } from './db' const callSummary = new Extractor({ name: 'call-summary', instructions: 'Return a concise summary of the call.', schema: z.object({ summary: z.string(), sentiment: z.enum(['positive', 'neutral', 'negative']), requestedServices: z.array(z.string()), }), metadataKeyPath: false, // don't persist into memory metadata — the hook owns storage onExtracted: async ({ current, threadId, resourceId }) => { await callRecords.upsert({ callId: threadId, callerId: resourceId, record: current }) }, }) export async function onCallEnd(threadId: string, resourceId: string) { await memory.summarizeThread({ model: 'openai/gpt-5-mini', threadId, resourceId, instructions: 'Summarize this voicemail call for the business owner.', extract: [callSummary], }) } ``` ### 관련된 - [요약대화()](https://mastra.zisheng.pro/ko/reference/memory/summarizeConversation) - [Memory 클래스 참조](https://mastra.zisheng.pro/ko/reference/memory/memory-class) - [관찰 기억](https://mastra.zisheng.pro/ko/reference/memory/observational-memory) - [.상기하다()](https://mastra.zisheng.pro/ko/reference/memory/recall)