> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # summarizeConversation() スタンドアロンの `summarizeConversation()` 関数は、会話を一度の呼び出しで要約します。渡したメッセージを、[Observational Memory](https://mastra.zisheng.pro/ja/reference/memory/observational-memory) を支えるものと同じ Observer の仕組みで要約します。Agent に Observational Memory を関連付ける必要はなく、ストレージの読み書きも行いません。 Memory には何も書き戻されません。要約と抽出された値は、呼び出し元(および各 Extractor の `onExtracted` Hook)へ返されるため、独自のデータベースなど、保存先を自分で決められます。 メッセージがすでに手元にあり、要約対象を明示的に制御したい場合に使います。ID で識別される保存済みスレッドには、メッセージを自動的に読み込む [`Memory.summarizeThread()`](https://mastra.zisheng.pro/ja/reference/memory/summarizeThread) を使ってください。 ## 使用例 ```typescript import { summarizeConversation } from '@mastra/memory' const result = await summarizeConversation({ model: 'openai/gpt-5-mini', messages, instructions: 'Summarize this voicemail call for the business owner.', }) ``` ## パラメータ **model** (`string | LanguageModel | DynamicModel`): 要約を実行するモデル。'\_\_GATEWAY\_OPENAI\_MODEL\_MINI\_\_' のようなルーター文字列などを指定します。 **messages** (`MastraDBMessage[]`): 要約する会話。空の場合、モデルを呼び出さずに空の結果を返します。 **instructions** (`string`): 要約対象の重点や要約の対象読者など、Summarizer のシステムプロンプトに追加する指示。 **extract** (`Extractor[]`): 会話に対して実行する Extractor。Zod スキーマを持つ Extractor は、後続の構造化出力呼び出しとして実行されます。スキーマのない Extractor はインラインで抽出されます。各 Extractor の onExtracted Hook は、抽出された値を受け取って実行されます。 **threadId** (`string`): 会話が属するスレッド。デフォルトでは、messages で最初に見つかった threadId を使います。Extractor の Context に渡されます。 **resourceId** (`string`): 会話が属するリソース(ユーザー)。デフォルトでは、messages で最初に見つかった resourceId を使います。Extractor の Context に渡されます。 **memory** (`Memory`): Extractor の Context に転送する Memory インスタンス。Memory.summarizeThread() 経由で呼び出す場合は自動的に設定されます。 **mastra** (`Mastra`): カスタム Gateway モデルの解決に使う Mastra インスタンス。Memory.summarizeThread() 経由で呼び出す場合は自動的に設定されます。 **requestContext** (`RequestContext`): Summarizer モデルと Extractor Hook に転送する Request Context。 **abortSignal** (`AbortSignal`): 要約呼び出しをキャンセルするための Signal。 ## 戻り値 **summary** (`string`): 会話から抽出・集約された観察結果。情報量の多い箇条書き形式で返されます。 **extracted** (`Record`): extract の Extractor が生成した値。Extractor の slug をキーとします。 **extractionFailures** (`{ slug: string; error: string }[]`): 有効な値を生成できなかった Extractor とその理由。1 つ以上の Extractor が失敗した場合にのみ存在します。 **usage** (`{ inputTokens?: number; outputTokens?: number; totalTokens?: number }`): 要約呼び出しの Token 使用量。 ## 詳細な使用例 次の例では、アプリケーションがすでに保持しているメッセージから進行中の音声セッションを要約し、構造化レコードを抽出します。 ```typescript import { summarizeConversation, Extractor } from '@mastra/memory' import type { MastraDBMessage } from '@mastra/core/agent' import { z } from 'zod' import { sessionRecords } from './db' const sessionSummary = new Extractor({ name: 'session-summary', instructions: 'Return a concise summary of the session.', schema: z.object({ summary: z.string(), sentiment: z.enum(['positive', 'neutral', 'negative']), followUps: z.array(z.string()), }), metadataKeyPath: false, // don't persist into memory metadata — the hook owns storage onExtracted: async ({ current, threadId }) => { await sessionRecords.upsert({ sessionId: threadId, record: current }) }, }) export async function onSessionEnd(messages: MastraDBMessage[]) { const { summary, extracted, extractionFailures } = await summarizeConversation({ model: 'openai/gpt-5-mini', messages, instructions: 'Summarize this support session for the account manager.', extract: [sessionSummary], }) if (extractionFailures?.length) { console.warn('Some extractors failed', extractionFailures) } return { summary, extracted } } ``` ### 関連項目 - [.summarizeThread()](https://mastra.zisheng.pro/ja/reference/memory/summarizeThread) - [Memory クラスのリファレンス](https://mastra.zisheng.pro/ja/reference/memory/memory-class) - [Observational Memory](https://mastra.zisheng.pro/ja/reference/memory/observational-memory)