跳至主要內容

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

傳回值
「傳回值」的直接連結

傳回經過包裝的模型,可與 generateTextstreamTextgenerateObjectstreamObject 搭配使用。

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

實作 processOutputResult 的輸出處理器會在串流結束後執行。請完整消耗串流,以保存訊息記錄與語意回想資料。