withMastra()
使用 Mastra 處理器及/或記憶體包裝 AI SDK 模型。
使用範例「使用範例」的直接連結
src/example.ts
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
處理器與記憶體的設定物件。
WithMastraOptions
inputProcessors?:
InputProcessor[]
在呼叫 LLM 前執行的輸入處理器。
outputProcessors?:
OutputProcessor[]
針對 LLM 回應執行的輸出處理器。
memory?:
WithMastraMemoryOptions
記憶體設定,可自動保存訊息記錄。
WithMastraMemoryOptions
storage:
MemoryStorage
用於保存訊息的記憶體儲存網域。請使用
await storage.getStore('memory') 從複合儲存取得。threadId:
string
用於保存對話的執行緒 ID。
resourceId?:
string
資源 ID(使用者/工作階段識別碼)。
lastMessages?:
number | false
要擷取的近期訊息數量,或以 false 停用。
semanticRecall?:
WithMastraSemanticRecallOptions
語意回想設定(以 RAG 為基礎的記憶體擷取)。
workingMemory?:
MemoryConfig['workingMemory']
工作記憶體設定(保存的使用者資料)。
readOnly?:
boolean
唯讀模式,可防止儲存新訊息。
傳回值「傳回值」的直接連結
傳回經過包裝的模型,可與 generateText、streamText、generateObject 及 streamObject 搭配使用。
串流行為「串流行為」的直接連結
實作 processOutputResult 的輸出處理器會在串流結束後執行。請完整消耗串流,以保存訊息記錄與語意回想資料。