> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # withMastra() 使用 Mastra 處理器及/或記憶體包裝 AI SDK 模型。 ## 使用範例 ```typescript import { openai } from '@ai-sdk/openai' import { generateText } from 'ai' import { withMastra } from '@mastra/ai-sdk' import type { Processor } from '@mastra/core/processors' const loggingProcessor: Processor<'logger'> = { id: 'logger', async processInput({ messages }) { console.log('Input:', messages.length, 'messages') return messages }, } const model = withMastra(openai('gpt-5.4'), { inputProcessors: [loggingProcessor], }) const { text } = await generateText({ model, prompt: 'What is 2 + 2?', }) ``` ## 參數 **model** (`LanguageModelV2 | LanguageModelV3`): 任何 AI SDK v5 或 v6 語言模型(例如 openai('gpt-5.4')、anthropic('claude-opus-4-6'))。 **options** (`WithMastraOptions`): 處理器與記憶體的設定物件。 **options.inputProcessors** (`InputProcessor[]`): 在呼叫 LLM 前執行的輸入處理器。 **options.outputProcessors** (`OutputProcessor[]`): 針對 LLM 回應執行的輸出處理器。 **options.memory** (`WithMastraMemoryOptions`): 記憶體設定,可自動保存訊息記錄。 **options.memory.storage** (`MemoryStorage`): 用於保存訊息的記憶體儲存網域。請使用 await storage.getStore('memory') 從複合儲存取得。 **options.memory.threadId** (`string`): 用於保存對話的執行緒 ID。 **options.memory.resourceId** (`string`): 資源 ID(使用者/工作階段識別碼)。 **options.memory.lastMessages** (`number | false`): 要擷取的近期訊息數量,或以 false 停用。 **options.memory.semanticRecall** (`WithMastraSemanticRecallOptions`): 語意回想設定(以 RAG 為基礎的記憶體擷取)。 **options.memory.workingMemory** (`MemoryConfig['workingMemory']`): 工作記憶體設定(保存的使用者資料)。 **options.memory.readOnly** (`boolean`): 唯讀模式,可防止儲存新訊息。 ## 傳回值 傳回經過包裝的模型,可與 `generateText`、`streamText`、`generateObject` 及 `streamObject` 搭配使用。 ## 串流行為 實作 `processOutputResult` 的輸出處理器會在串流結束後執行。請完整消耗串流,以保存訊息記錄與語意回想資料。