> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # withMastra() 使用 Mastra 处理器和/或 memory 封装 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`): 处理器和 memory 的配置对象。 **options.inputProcessors** (`InputProcessor[]`): 在调用 LLM 前运行的 input processor。 **options.outputProcessors** (`OutputProcessor[]`): 对 LLM 响应运行的 output processor。 **options.memory** (`WithMastraMemoryOptions`): Memory 配置,用于启用消息历史记录的自动持久化。 **options.memory.storage** (`MemoryStorage`): 用于持久化消息的 memory storage domain。可通过 await storage.getStore('memory') 从 composite store 获取。 **options.memory.threadId** (`string`): 用于持久化对话的 thread ID。 **options.memory.resourceId** (`string`): Resource ID(用户/session 标识符)。 **options.memory.lastMessages** (`number | false`): 要检索的近期消息数量;设为 false 可禁用。 **options.memory.semanticRecall** (`WithMastraSemanticRecallOptions`): semantic recall 配置(基于 RAG 的 memory 检索)。 **options.memory.workingMemory** (`MemoryConfig['workingMemory']`): working memory 配置(持久化用户数据)。 **options.memory.readOnly** (`boolean`): 只读模式,可阻止保存新消息。 ## 返回值 封装后的模型,与 `generateText`、`streamText`、`generateObject` 和 `streamObject` 兼容。 ## 流式传输行为 实现 `processOutputResult` 的 output processor 会在 stream 结束后运行。请完整消费 stream,以持久化消息历史记录和 semantic recall。