> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # AI SDK 이미 사용하고 계시다면[Vercel AI SDK](https://sdk.vercel.ai)직접적으로 다음과 같은 Mastra 기능을 추가하고 싶습니다.[프로세서](https://mastra.zisheng.pro/ko/docs/agents/processors)또는[Memory](https://mastra.zisheng.pro/ko/docs/memory/memory-processors)전체 Mastra Agent API로 전환하지 않고도[`withMastra()`](https://mastra.zisheng.pro/ko/reference/ai-sdk/with-mastra)이러한 기능으로 모든 AI SDK Model을 래핑할 수 있습니다. 이는 기존 AI SDK 코드를 유지하면서 입력/출력 처리, 대화 지속성 또는 콘텐츠 필터링을 추가하려는 경우에 유용합니다. > **팁:** AI SDK UI와 함께 Mastra를 사용하려는 경우(예: `useChat()`), [AI SDK UI 가이드](https://mastra.zisheng.pro/ko/guides/build-your-ui/ai-sdk-ui)를 참조하세요. ## 설치 `withMastra()` 함수를 사용하려면 먼저 `@mastra/ai-sdk`를 설치하세요. **npm**: ```bash npm install @mastra/ai-sdk@latest ``` **pnpm**: ```bash pnpm add @mastra/ai-sdk@latest ``` **Yarn**: ```bash yarn add @mastra/ai-sdk@latest ``` **Bun**: ```bash bun add @mastra/ai-sdk@latest ``` ## 예 ### 프로세서 포함 프로세서를 사용하면 메시지가 Model로 전송되기 전(`processInput`)과 응답을 받은 후(`processOutputResult`)에 메시지를 변환할 수 있습니다. 이 예제에서는 각 단계의 메시지 수를 기록하는 로깅 프로세서를 만든 다음, 이를 OpenAI Model에 래핑합니다. ```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 }, async processOutputResult({ messages }) { console.log('Output:', messages.length, 'messages') return messages }, } const model = withMastra(openai('gpt-5.4'), { inputProcessors: [loggingProcessor], outputProcessors: [loggingProcessor], }) const { text } = await generateText({ model, prompt: 'What is 2 + 2?', }) ``` ### Memory 포함 Memory는 LLM 호출 전에 저장소에서 이전 메시지를 자동으로 로드하고 이후에 새 메시지를 저장합니다. 이 예에서는 대화 기록을 유지하고 컨텍스트에 대한 마지막 10개 메시지를 로드하도록 libSQL 스토리지 백엔드를 구성합니다. ```typescript import { openai } from '@ai-sdk/openai' import { generateText } from 'ai' import { withMastra } from '@mastra/ai-sdk' import { LibSQLStore } from '@mastra/libsql' const storage = new LibSQLStore({ id: 'my-app', url: 'file:./data.db', }) await storage.init() const memoryStorage = await storage.getStore('memory') const model = withMastra(openai('gpt-5.4'), { memory: { storage: memoryStorage!, threadId: 'user-thread-123', resourceId: 'user-123', lastMessages: 10, }, }) const { text } = await generateText({ model, prompt: 'What did we talk about earlier?', }) ``` ### 프로세서 및 Memory 포함 프로세서와 Memory를 함께 결합할 수 있습니다. 입력 프로세서는 Memory가 기록 메시지를 로드한 후에 실행되고, 출력 프로세서는 Memory가 응답을 저장하기 전에 실행됩니다. ```typescript import { openai } from '@ai-sdk/openai' import { generateText } from 'ai' import { withMastra } from '@mastra/ai-sdk' import { LibSQLStore } from '@mastra/libsql' const storage = new LibSQLStore({ id: 'my-app', url: 'file:./data.db' }) await storage.init() const memoryStorage = await storage.getStore('memory') const model = withMastra(openai('gpt-5.4'), { inputProcessors: [myGuardProcessor], outputProcessors: [myLoggingProcessor], memory: { storage: memoryStorage!, threadId: 'thread-123', resourceId: 'user-123', lastMessages: 10, }, }) const { text } = await generateText({ model, prompt: 'Hello!', }) ``` ## 관련된 - [`withMastra()`](https://mastra.zisheng.pro/ko/reference/ai-sdk/with-mastra): API 참조`withMastra()` - [프로세서](https://mastra.zisheng.pro/ko/docs/agents/processors): 입력 및 출력 프로세서에 대해 알아봅니다. - [Memory](https://mastra.zisheng.pro/ko/docs/memory/overview): 마스트라의 Memory 시스템 개요 - [AI SDK UI](https://mastra.zisheng.pro/ko/guides/build-your-ui/ai-sdk-ui): Mastra Agent, Workflow 및 네트워크와 함께 AI SDK UI 후크 사용