toAISdkMessages()
Converts messages from input formats to AI SDK UI message format. toAISdkMessages() keeps the existing AI SDK v5/default behavior. If your app is typed against AI SDK v6, pass version: 'v6'.
version: 'v6' uses the MessageList AI SDK v6 UI output path. MessageList input detection and ingestion remain unchanged.
Usage exampleDirect link to Usage example
import { toAISdkMessages } from '@mastra/ai-sdk/ui'
import { useChat } from 'ai/react'
// Stored messages from your database, memory, or API
const storedMessages = [
{ id: '1', role: 'user', content: 'Hello', parts: [{ type: 'text', text: 'Hello' }] },
{
id: '2',
role: 'assistant',
content: 'Hi there!',
parts: [{ type: 'text', text: 'Hi there!' }],
},
]
export default function Chat() {
const { messages } = useChat({
initialMessages: toAISdkMessages(storedMessages, { version: 'v6' }),
})
return (
<div>
{messages.map(message => (
<div key={message.id}>
{message.role}: {message.parts.map(part => (part.type === 'text' ? part.text : null))}
</div>
))}
</div>
)
}
ParametersDirect link to Parameters
messages:
options.version?:
'v5' for the existing default behavior. Pass 'v6' when your app is typed against AI SDK v6 useChat() message types. Pass 'v7' when your app is typed against AI SDK v7.ReturnsDirect link to Returns
Returns an array of AI SDK UIMessage objects typed for the selected version.
id:
role:
parts:
metadata?:
Terminal error partsDirect link to Terminal error parts
When a v2 agent reaches a terminal failure, Mastra stores the failed assistant turn with an error part. The stored payload contains only the error name and message:
const terminalErrorPart = {
type: 'error',
error: {
name: 'Error',
message: 'The model request failed.',
},
}
toAISdkMessages() preserves this part in AI SDK UI messages so your application can render failed turns from history. Mastra removes error parts when it converts messages into provider prompts. An assistant message containing only an error part is omitted from the next model request.
ExamplesDirect link to Examples
Using the default AI SDK v5 typesDirect link to Using the default AI SDK v5 types
import { toAISdkMessages } from '@mastra/ai-sdk/ui'
const messages = toAISdkMessages(['Hello', 'How can I help you today?'])
Returning AI SDK v6 message typesDirect link to Returning AI SDK v6 message types
import { toAISdkMessages } from '@mastra/ai-sdk/ui'
const messages = toAISdkMessages(['Hello', 'How can I help you today?'], {
version: 'v6',
})
Loading messages with Mastra clientDirect link to Loading messages with Mastra client
import { MastraClient } from '@mastra/client-js'
import { toAISdkMessages } from '@mastra/ai-sdk/ui'
const client = new MastraClient()
const { messages } = await client.listThreadMessages('thread-id', { agentId: 'myAgent' })
const uiMessages = toAISdkMessages(messages)