Mastra、AI SDK v7 のサポートを継続し開発者体験を改善
本文の状態
日本語全文を表示中
詳細モードで約7分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Mastra Blog
Mastra は AI SDK v7 のリリース直後からサポートを開始し、Agent API を介してバージョン間の差異を非表示にすることで、開発者がコード変更なしでモデルプロバイダのアップグレードを可能にした。
AI深層分析を開く2026年8月19日 03:23
AI深層分析
キーポイント
AI SDK v7 の包括的サポート開始
Mastra は AI SDK v7 がリリースされた同日(2026 年 6 月 25 日)からサポートを開始し、以降もエンドツーエンドの開発者体験の向上を継続している。
バージョン差異の非表示化と互換性
@mastra/core が Agent API の背後で仕様の違いを隠蔽し、v5 から v7 までのサポートを維持することで、開発者がコードを変更せずにプロバイダをアップグレードできるようにした。
@mastra/core と @mastra/ai-sdk の機能分担
@mastra/core がランタイムやエージェント定義を担当し、@mastra/ai-sdk がフロントエンドのフック(useChat など)への適応を担うことで役割が明確に区分けされた。
画像生成とストリーミング機能の強化
@mastra/core 1.52.0 で導入された機能により、エージェントが生成した画像を .stream() メソッドからファイルとしてディスクに保存できるようになった。
AI SDK v7 を使用したツール定義
Agent に openai.tools.imageGeneration を設定することで、画像生成機能を直接統合できる。
重要な引用
Mastra supported AI SDK v7 from the day it was released, June 25, 2026.
@mastra/core hides the spec differences behind the Agent API and detects the spec to maintain support for v5, v6, and v7.
Upgrading your model providers from @ai-sdk/openai@2.x.x (v6) to @ai-sdk/openai@4.x.x (v7) won't require any Mastra code changes.
"imageGeneration: openai.tools.imageGeneration({ size: "1536x1024", quality: "high" })"
編集コメントを表示
編集コメント
このリリースは、急速に進化する AI SDK のバージョン間での互換性維持において、実用的な解決策を示すものとして評価できる。開発者が頻繁に発生するライブラリ更新の負担を軽減し、技術的負債の蓄積を防ぐ効果的なアプローチと言える。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
Mastra は、AI SDK v7 がリリースされた同日の 2026 年 6 月 25 日からサポートを開始しました。以来、私たちはエンドツーエンドの開発者体験をさらに向上させるためのサポートと改善を継続しています。
AI SDK v7 では、新しいプロバイダ仕様の「LanguageModelV4」が導入され、トップレベルの「reasoning」パラメータが追加されました。また、多くの API 名が変更されています。
@mastra/core は、仕様の違いを Agent API の背後に隠し、v5、v6、v7 へのサポート維持のために仕様を検出します。
Mastra のコードを変更することなく、モデルプロバイダーを @ai-sdk/openai@2.x.x (v6) から @ai-sdk/openai@4.x.x (v7) へアップグレードできます。
以下の Mastra パッケージで変更が行われています:
@mastra/core:ランタイム、エージェント定義、.stream()および.generate()の呼び出し、そしてmodelSettingsを処理します。
@mastra/ai-sdk: このパッケージは、Mastra エージェントをuseChat、useCompletion、またはuseObjectに対応させるためのルートハンドラやストリームハンドラ、変換機能などを処理します。
フロントエンド
お使いのブラウザでは動画タグに対応していません。
@mastra/core
@mastra/core の v7 サポートは段階的にリリースされ、モデルプロバイダーのサポート、推論制御、メッセージタイプ、マルチモーダルコンテンツが含まれています。
npm install @mastra/core画像サポート
エージェントが生成した画像は、.stream() からファイルとして返されるようになりました。これによりディスクへの保存が可能になります。これは PR #19430 で追加され、@mastra/core 1.52.0 に含まれています。
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
export const imageAgent = new Agent({
// ...
model: openai("gpt-5.6-sol"),
tools: {
imageGeneration: openai.tools.imageGeneration({
size: "1536x1024",
quality: "high"
})
}
});import { writeFileSync } from "fs";
import { imageAgent } from "./mastra/agents/image-agent";
const result = await imageAgent.stream("A cyberpunk neon green space squirrel");
for await (const chunk of result.fullStream) {
if (chunk.type === "tool-result" && chunk.payload.toolName === "imageGeneration") {
const base64 = chunk.payload.result.result;
writeFileSync("a-cyberpunk-neon-green-space-squirrel.png", Buffer.from(base64, "base64"));
}
}モデルプロバイダー
最新モデルを利用するには、@4.x.x のプロバイダーパッケージへアップグレードしてください。PR #18477 で追加され、@mastra/core 1.47.0 から利用可能になりました。
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
export const assistantAgent = new Agent({
// ...
model: openai("gpt-5.6-sol")
});推論制御
モデル設定の reasoning を .stream() に渡すことで、推論の強度を制御できるようになりました。これは PR #18500 で追加され、@mastra/core 1.47.0 から利用可能です。
const result = await assistantAgent.stream("Plan a 14-day trip to Tokyo in November with a mix of culture and food.", {
modelSettings: { reasoning: "high" }
});(原文の技術表記: modelSettings.reasoning)
メッセージの型キャスト
.generate() や .stream() を呼び出す際は、メッセージペイロードに UIMessage または ModelMessage を型として指定してください。
Mastra の AI SDK v7 サポートは、@mastra/core 1.50.0 にて追加されました(PR #18997)。
https://github.com/mastra-ai/mastra/pull/18997
import type { UIMessage, ModelMessage } from "ai";
const uiMessages: UIMessage[] = [{ id: "1", role: "user", parts: [{ type: "text", text: "Hello!" }] }];
const stream = await assistantAgent.stream({ messages: uiMessages });
const modelMessages: ModelMessage[] = [{ role: "user", content: "Hello!" }];
const result = await assistantAgent.generate({ messages: modelMessages });マルチモーダルプロンプト
.generate() にファイル添付を送信する際、v7 のファイルパート形状に正規化されます。これは PR #19316 で追加され、@mastra/core 1.51.0 から利用可能です。
const result = await assistantAgent.generate({
messages: [
{
role: "user",
content: [
{ type: "text", text: "What's in this image?" },
{ type: "file", data: imageBase64, mediaType: "image/png" }
]
}
]
});ツール結果メディア
ツールが返した画像を、@4.x.x モデルで直接表示・確認できるようになりました。これは PR #19755 で追加され、@mastra/core 1.53.0 から利用可能です。
import { createTool } from "@mastra/core/tools";
export const screenshotTool = createTool({
id: "screenshot",
description: "Take a screenshot of the current page.",
execute: async () => ({
content: [{ type: "image", data: buffer.toString("base64"), mimeType: "image/png" }]
})
});@mastra/ai-sdk の v7 サポートには、useChat、useCompletion、useObject 向けのルートハンドラ、ストリームハンドラ、およびコンバータが含まれています。
npm install @mastra/ai-sdkルートハンドラ
Mastra サーバーに POST エンドポイントを登録し、エージェント、ネットワーク、またはワークフローをストリーミング配信します。レスポンスを AI SDK v7 の形式でフォーマットするには、version: "v7" を指定してください。この機能は PR #21720 で追加され、@mastra/ai-sdk 1.9.0 に含まれています。
chatRoute
chatRoute は、エージェントからのチャットをストリーミング配信する POST エンドポイントを作成します:
import { Mastra } from "@mastra/core";
import { chatRoute } from "@mastra/ai-sdk";
export const mastra = new Mastra({
// ...
server: {
apiRoutes: [
chatRoute({
path: "/chat",
agent: "assistant-agent",
version: "v7"
})
]
}
});workflowRoute
workflowRoute は、ワークフローの実行をストリーミング配信する POST エンドポイントを作成します:
import { Mastra } from "@mastra/core";
import { workflowRoute } from "@mastra/ai-sdk";
export const mastra = new Mastra({
// ...
server: {
apiRoutes: [
workflowRoute({
path: "/workflow",
workflow: "my-workflow",
version: "v7"
})
]
}
});Stream handlers
独自の HTTP エンドポイントから、エージェントやネットワーク、ワークフローのストリームを出力できます。version: "v7" を指定すると、返却されるのは V7UIMessageStream です。これは PR #21720 で追加され、@mastra/ai-sdk 1.9.0 から利用可能です。
handleChatStream
handleChatStream は、エージェントからのチャット出力をストリームします:
import { handleChatStream } from "@mastra/ai-sdk";
import { createUIMessageStreamResponse } from "ai";
import { mastra } from "@/src/mastra";
export async function POST(req: Request) {
const params = await req.json();
const stream = await handleChatStream({
mastra,
agentId: "assistant-agent",
params,
version: "v7"
});
return createUIMessageStreamResponse({ stream });
}handleNetworkStream
handleNetworkStream は、エージェントネットワークからの出力をストリームします:
import { handleNetworkStream } from "@mastra/ai-sdk";
import { createUIMessageStreamResponse } from "ai";
import { mastra } from "@/src/mastra";
export async function POST(req: Request) {
const params = await req.json();
const stream = await handleNetworkStream({
mastra,
agentId: "assistant-agent",
params,
version: "v7"
});
return createUIMessageStreamResponse({ stream });
}handleWorkflowStream - TBD
handleWorkflowStream は、ワークフローからの出力をストリームします:
import { handleWorkflowStream } from "@mastra/ai-sdk";
import { createUIMessageStreamResponse } from "ai";
import { mastra } from "@/src/mastra";
export async function POST(req: Request) {
const params = await req.json();
const stream = await handleWorkflowStream({
mastra,
workflowId: "assistant-workflow",
params,
version: "v7"
});
return createUIMessageStreamResponse({ stream });
}コンバーター
AI SDK UI の形状に .stream() やエージェントのメッセージ出力を変換するには、version: "v7" を指定して AI SDK v7 向けにフォーマットします。これは PR #21720 で追加され、@mastra/ai-sdk 1.9.0 から利用可能です。
toAISdkStream
toAISdkStream は、.stream() の結果を AI SDK 用の UI メッセージストリームに変換します。
import { toAISdkStream } from "@mastra/ai-sdk";
const stream = toAISdkStream(mastraAgentStream, { version: "v7" });toAISdkMessage
toAISdkMessages は、エージェントのメッセージを AI SDK 用の UI メッセージに変換します。
import { toAISdkMessages } from "@mastra/ai-sdk";
const uiMessages = toAISdkMessages(mastraMessages, { version: "v7" });詳細情報や完全な設定オプションについては、以下をご覧ください:
原文を表示
Mastra supported AI SDK v7 from the day it was released, June 25, 2026. Since then we've continued to support and improve the overall end-to-end developer experience.
AI SDK v7 introduced a new provider spec (LanguageModelV4), a top-level reasoning parameter, and a number of API renames. @mastra/core hides the spec differences behind the Agent API and detects the spec to maintain support for v5, v6, and v7. Upgrading your model providers from @ai-sdk/openai@2.x.x (v6) to @ai-sdk/openai@4.x.x (v7) won't require any Mastra code changes.
Changes have been made to the following Mastra packages:
- @mastra/core: Handles the runtime, agent definitions, .stream() / .generate() calls, and modelSettings.
- @mastra/ai-sdk: Handles route handlers, stream handlers, and converters that adapt a Mastra agent to useChat, useCompletion, or useObject on the frontend.
Your browser does not support the video tag.
@mastra/core
v7 support in @mastra/core was released in stages and includes model provider support, reasoning control, message types, and multimodal content.
npm install @mastra/coreImage support
Agent-generated images now return from .stream() as files you can save to disk. Added in PR #19430, @mastra/core 1.52.0:
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
export const imageAgent = new Agent({
// ...
model: openai("gpt-5.6-sol"),
tools: {
imageGeneration: openai.tools.imageGeneration({
size: "1536x1024",
quality: "high"
})
}
});import { writeFileSync } from "fs";
import { imageAgent } from "./mastra/agents/image-agent";
const result = await imageAgent.stream("A cyberpunk neon green space squirrel");
for await (const chunk of result.fullStream) {
if (chunk.type === "tool-result" && chunk.payload.toolName === "imageGeneration") {
const base64 = chunk.payload.result.result;
writeFileSync("a-cyberpunk-neon-green-space-squirrel.png", Buffer.from(base64, "base64"));
}
}Model providers
Upgrade to a @4.x.x provider package to access the latest models. Added in PR #18477, @mastra/core 1.47.0:
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
export const assistantAgent = new Agent({
// ...
model: openai("gpt-5.6-sol")
});Reasoning control
Pass modelSettings.reasoning to .stream() to control reasoning effort. Added in PR #18500, @mastra/core 1.47.0:
const result = await assistantAgent.stream("Plan a 14-day trip to Tokyo in November with a mix of culture and food.", {
modelSettings: { reasoning: "high" }
});Typecast messages
Type message payloads with UIMessage or ModelMessage when calling .generate() or .stream(). Added in PR #18997, @mastra/core 1.50.0:
import type { UIMessage, ModelMessage } from "ai";
const uiMessages: UIMessage[] = [{ id: "1", role: "user", parts: [{ type: "text", text: "Hello!" }] }];
const stream = await assistantAgent.stream({ messages: uiMessages });
const modelMessages: ModelMessage[] = [{ role: "user", content: "Hello!" }];
const result = await assistantAgent.generate({ messages: modelMessages });Multimodal prompts
Send file attachments to .generate(), normalized to v7's file part shape. Added in PR #19316, @mastra/core 1.51.0:
const result = await assistantAgent.generate({
messages: [
{
role: "user",
content: [
{ type: "text", text: "What's in this image?" },
{ type: "file", data: imageBase64, mediaType: "image/png" }
]
}
]
});Tool-result media
Tool-returned images can now be viewed and inspected by @4.x.x models. Added in PR #19755, @mastra/core 1.53.0:
import { createTool } from "@mastra/core/tools";
export const screenshotTool = createTool({
id: "screenshot",
description: "Take a screenshot of the current page.",
execute: async () => ({
content: [{ type: "image", data: buffer.toString("base64"), mimeType: "image/png" }]
})
});v7 support in @mastra/ai-sdk includes route handlers, stream handlers, and converters for useChat, useCompletion, and useObject.
npm install @mastra/ai-sdkRoute handlers
Register a POST endpoint on your Mastra server that streams an agent, network, or workflow — pass version: "v7" to format the response for AI SDK v7. Added in PR #21720, @mastra/ai-sdk 1.9.0.
chatRoute
chatRoute creates a POST endpoint that streams chat from an agent:
import { Mastra } from "@mastra/core";
import { chatRoute } from "@mastra/ai-sdk";
export const mastra = new Mastra({
// ...
server: {
apiRoutes: [
chatRoute({
path: "/chat",
agent: "assistant-agent",
version: "v7"
})
]
}
});workflowRoute
workflowRoute creates a POST endpoint that streams workflow execution:
import { Mastra } from "@mastra/core";
import { workflowRoute } from "@mastra/ai-sdk";
export const mastra = new Mastra({
// ...
server: {
apiRoutes: [
workflowRoute({
path: "/workflow",
workflow: "my-workflow",
version: "v7"
})
]
}
});Stream handlers
Stream agents, networks, or workflows from your own HTTP endpoint — pass version: "v7" to get back a V7UIMessageStream. Added in PR #21720, @mastra/ai-sdk 1.9.0.
handleChatStream
handleChatStream streams chat output from an agent:
import { handleChatStream } from "@mastra/ai-sdk";
import { createUIMessageStreamResponse } from "ai";
import { mastra } from "@/src/mastra";
export async function POST(req: Request) {
const params = await req.json();
const stream = await handleChatStream({
mastra,
agentId: "assistant-agent",
params,
version: "v7"
});
return createUIMessageStreamResponse({ stream });
}handleNetworkStream
handleNetworkStream streams output from an agent network:
import { handleNetworkStream } from "@mastra/ai-sdk";
import { createUIMessageStreamResponse } from "ai";
import { mastra } from "@/src/mastra";
export async function POST(req: Request) {
const params = await req.json();
const stream = await handleNetworkStream({
mastra,
agentId: "assistant-agent",
params,
version: "v7"
});
return createUIMessageStreamResponse({ stream });
}handleWorkflowStream - TBD
handleWorkflowStream streams output from a workflow:
import { handleWorkflowStream } from "@mastra/ai-sdk";
import { createUIMessageStreamResponse } from "ai";
import { mastra } from "@/src/mastra";
export async function POST(req: Request) {
const params = await req.json();
const stream = await handleWorkflowStream({
mastra,
workflowId: "assistant-workflow",
params,
version: "v7"
});
return createUIMessageStreamResponse({ stream });
}Converters
Convert the output of .stream() or an agent's messages into AI SDK UI shapes — pass version: "v7" to format the output for AI SDK v7. Added in PR #21720, @mastra/ai-sdk 1.9.0.
toAISdkStream
toAISdkStream converts a .stream() result into an AI SDK UI-message stream:
import { toAISdkStream } from "@mastra/ai-sdk";
const stream = toAISdkStream(mastraAgentStream, { version: "v7" });toAISdkMessage
toAISdkMessages converts an agent's messages into AI SDK UI messages:
import { toAISdkMessages } from "@mastra/ai-sdk";
const uiMessages = toAISdkMessages(mastraMessages, { version: "v7" });For more information and full configuration options, see:
- AI SDK UI
- chatRoute
- networkRoute
- workflowRoute
- handleChatStream
- handleNetworkStream
- handleWorkflowStream
- toAISdkStream
- toAISdkMessages
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み