はじめに
以下の記事を書くきっかけになった話についての記事で、具体的には Mastra で Vercel AI SDK 4(v4)ではなく v5 を使うという話です。
●【Node.js】 Vercel AI SDK 5 でのモデル指定関連の機能を試す: グローバルプロバイダーのカスタマイズ - Qiita
https://qiita.com/youtoy/items/f5b49fe5b709da22a6fc
Mastra のお試しを久しぶりにやろうとして、Vercel AI SDK の v4・v5 の周りの話が出てきたので、Mastra のお試しをやる前に上記を試した流れがありました。
Mastra で Vercel AI SDK 5(v5)を使う話
今回、過去のお試しで使った(記事も書いたりしていた) Mastra について、これまでの Vercel AI SDK 4 がベースになっているものと、最近の v5 がベースのもの(記事執筆時点でベータ版)をそれぞれ使ってみる、ということをやります。
●Vercel AI SDKとの使用
https://mastra.ai/ja/docs/frameworks/agentic-uis/ai-sdk
この画像に出ているように、AI SDK v5 (beta) という内容や、以下のVercel AI SDK 5 の公式情報にリンクなどした形の移行ガイドが公式で掲載されていたりします。
記事執筆時点では、上記のページで「プレリリース状態: Mastraのai-v5タグはプレリリース版であり、バグが含まれる可能性があります」という記載があるので、Mastra側としては Vercel AI SDK 5 との組み合わせはベータ版になっている状況のようです。
(Vercel AI SDK 5 の正式リリースが直近のようなので、もう少しすると正式版になるかも、とも思いつつ)
Vercel側での記載
ちなみに Vercel側の公式ドキュメントの「Community Frameworks > Mastra」の部分](https://vercel.com/docs/ai-gateway/community-frameworks/mastra)を見ていくと、その中の 「Upgrade dependencies という部分」では、以下の v5 の内容が記載されている状況でした。
試してみる
さっそく試してみます。
内部的に Vercel AI SDK 4 が使われているものと、Vercel AI SDK 5 が使われているうものとを、それぞれ試してみます。
パッケージのインストール
パッケージのインストールについて、情報を見てみます。移行戦略 > 依存関係のアップグレード」という部分を見てみると、v5関連は以下となっています。
インストール用のコマンドは、npm の場合は以下でした。
npm install mastra@ai-v5 @mastra/core@ai-v5 @mastra/memory@ai-v5
ちなみに、過去のお試しの 1つをピックアップしてみると、npm でのパッケージのインストールは以下のようになっていました。
●Mastra でシンプルな MCPクライアント・MCPホストの機能を作って Node.js で実行(自作MCPサーバーと組み合わせる) - Qiita
https://qiita.com/youtoy/items/062165c2918cfdbc5590
コアのパッケージは「 @mastra/core
⇒ @mastra/core@ai-v5
」となるようです。また、プロバイダーのパッケージは、後で少し補足しますが「 @ai-sdk/openai@1
⇒ @ai-sdk/openai
」となるようです。
v5用のインストール
v5用のインストールは以下のとおりです。
npm install @mastra/core@ai-v5 @ai-sdk/openai
先ほどの @mastra/core@ai-v5
というものを使っています。ちなみに npm ls
を実行して得られる情報は以下の通りです。
v4用のインストール
次に v4用のインストールです。
npm install @mastra/core @ai-sdk/openai@1
こちらは @ai-sdk/openai@1
という指定を使っています。これは @1
を使わなかった場合に以下のエラーが出たためです。
どうやら記事執筆時点の @mastra/core
を使うと、内部的には Vercel AI SDK 4 が使われており、その場合に @ai-sdk/openai
でインストールされる v2 と互換性がない状態になるようでした。それで @ai-sdk/openai
の v1 を指定してインストールしてみました。
こちらで npm ls
を実行して得られる情報は以下の通りです。
追加の下準備
パッケージのインストールをした後は、APIキーの設定も行っておきます。
今回は OpenAI のプロバイダーを使うので、環境変数 OPENAI_API_KEY に OpenAI の APIキーをセットしておきます。
お試し用のコードと実行結果
今回のお試し用のコードは、以下のとおりです。コードは v5用と v4用は共通で、内容はシンプルなエージェントを使った受け答えにしています。
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
(async () => {
const agent = new Agent({
name: "Simple Agent",
instructions: "ユーザーの質問に対して、シンプルに答えてください。",
model: openai("o4-mini"),
});
const response = await agent.generate("あなたは誰?3行で答えて。");
console.log(response.text);
})();
以下に実行結果を示します。
v5 の出力
v5 の出力は以下となりました。
問題なく回答が得られています。
v4 の出力
次に v4 の出力で、内容は以下となりました。
こちらも問題なく回答が得られています。
今回の内容は以上になります。