跳至主要內容

withMastra()

使用 Mastra processors 及/或記憶體包裝 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
processors 及記憶體的設定物件。
WithMastraOptions

inputProcessors?:

InputProcessor[]
在呼叫 LLM 前執行的輸入 processors。

outputProcessors?:

OutputProcessor[]
對 LLM 回應執行的輸出 processors。

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
唯讀模式,可防止儲存新訊息。

傳回值
傳回值 的直接連結

傳回與 generateTextstreamTextgenerateObjectstreamObject 相容的已包裝模型。

串流行為
串流行為 的直接連結

實作 processOutputResult 的輸出 processors 會在串流結束後執行。請完整接收串流,以持久保存訊息記錄及語意回憶。