Vercel AI SDK v6とは?新機能(ToolLoopAgent・needsApproval)とv7との違い・移行【2026】

Vercel AI SDKは、TypeScriptでAIアプリを作るためのライブラリです。v6は2025年12月22日に正式版(GA)となり、AIエージェントを組むToolLoopAgentや、ツール実行に人の承認を挟むneedsApprovalが加わりました。ただし2026年6月25日にはv7も登場しており、「v6が最新」ではなくなっています。この記事では、v6の主要な新機能を実コードで解説し、v7との違い・移行・バージョンの選び方まで最新情報で整理します。

まとめ:Vercel AI SDK v6の要点

  • v6は2025年12月22日にGA。エージェント構築のToolLoopAgent、人間の承認を挟むneedsApproval、動的なCall Optionsが目玉。
  • ToolLoopAgentはツール呼び出しのループを制御するエージェント。停止条件はstopWhenで、既定はstepCountIs(20)
  • 一部の記事にあるprepareCallsというAPIは存在しない。動的なCall OptionsはcallOptionsSchemaprepareCallで行う。
  • v6は最新ではない。2026年6月25日にv7.0.0が出ており、npmのaiのlatestは7系。v6を使うならバージョンをピン留めする。
  • v7ではstepCountIsisStepCountに、onFinishonEndに変わるなど改称が多く、移行はcodemodで支援される。

Vercel AI SDK v6とは:v5からの位置づけ

Vercel AI SDKは、OpenAIやAnthropicなど複数のLLMを共通のインターフェースで扱い、チャットUIやストリーミング、ツール実行(function calling)をTypeScriptで書けるようにするライブラリです。npmのパッケージ名はaiで、プロバイダは@ai-sdk/openaiのように分かれています。

v6の最大のテーマは「エージェント」です。v5まではツール実行のループを自分で組む場面が多かったのに対し、v6ではエージェントを組む部品が標準化されました。v6.0.0のGAは2025年12月22日で、その後もv6系はパッチが継続しています(2026年7月時点で6.0.226など)。

v6の主要な新機能

v6で押さえるべき新機能は、エージェント・人間の承認・動的なCall Options・開発ツールの4つです。

機能 役割
ToolLoopAgent ツール呼び出しループの制御(旧Experimental_Agent後継)
needsApproval ツール実行前に人の承認を挟む
callOptionsSchema / prepareCall Call Optionsの動的な差し替え
@ai-sdk/devtools ローカルでの動作可視化(experimental)

注意したいのが、日本語の解説で見かけるprepareCallsという名前のAPIは実在しない点です。動的にCall Optionsを差し替えるのはcallOptionsSchemaでスキーマを定義し、prepareCallで組み立てる形です。古い記事のコードをそのまま写すと動きません。

セットアップとToolLoopAgentの基本構成

導入はai本体とプロバイダを入れるだけです。v6を使うならバージョンを明示します。

npm install ai@6 @ai-sdk/openai

エージェントはToolLoopAgentで組みます。instructionsに役割を書き、toolsに使わせるツールを渡し、stopWhenでループの停止条件を決めます。既定の停止条件は20ステップ(stepCountIs(20))です。

import { ToolLoopAgent, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const agent = new ToolLoopAgent({
  model: openai("gpt-5.6"),
  instructions: "ユーザーの依頼をツールで解決する",
  tools: { /* … */ },
  stopWhen: stepCountIs(20),
});

const result = await agent.generate({ prompt: "東京の天気を調べて" });

ToolLoopAgentは、モデルがツールを呼び、その結果を受けて次の判断をする——というループを、停止条件に達するまで自動で回します。無限ループを避けるため、stopWhenは必ず設計します。

needsApprovalによるHuman-in-the-Loop

ファイル削除や決済のような取り返しのつかない操作は、AIに任せきりにせず人の承認を挟みたくなります。v6では、ツール定義にneedsApprovalを付けるだけで承認フローに載せられます。

const tools = {
  deleteFile: tool({
    description: "指定パスのファイルを削除する",
    inputSchema: z.object({ path: z.string() }),
    needsApproval: true,
    execute: async ({ path }) => { /* 実処理 */ },
  }),
};

needsApprovalはブール値のほか、入力に応じて承認要否を返す関数も渡せます。UI側はuseChataddToolApprovalResponse({ id, approved, reason })で承認・却下を返し、tool-approval-requestのパートで承認待ちを表示します。危険な操作だけ承認を必須にする、といった出し分けが実装しやすくなっています。

v6の最新性とv7差分・ピン留め

実務では特にこの点でつまずきます。v6の情報だけを見て導入すると、インストール時に想定と違う版が入ります。2026年6月25日にv7.0.0が公開され、npmのaiのlatestタグは7系(2026年7月時点で7.0.x)に移っています。v6は現役でパッチも続いていますが、npm install aiと書くとv7が入るため、v6で固定するならai@6のようにピン留めが必要です。

v7では改称を中心に破壊的変更が入りました。主なものは次のとおりです。

v6 v7
stepCountIs isStepCount
system instructions
onFinish onEnd
onStepFinish onStepEnd
experimental_telemetry telemetry

移行はcodemodで支援され、npx @ai-sdk/codemod v7を実行すると多くの改称を自動置換できます。DevToolsを使いたい場合は@ai-sdk/devtoolsを入れ、npx @ai-sdk/devtoolslocalhost:4983から動作を確認できます(ローカル専用・experimental)。

バージョン選択の指針(新規v7/既存v6ピン留め)

新規プロジェクトなら、原則はv7で始めるのが妥当です。latestであり、今後の機能追加もv7系に乗ります。一方で、v6で作った既存プロジェクトを急いで上げる必要はありません。v6系はパッチが続いており、ai@6にピン留めして運用を続けられます。移行するときは、いきなり本番を上げず、npx @ai-sdk/codemod v7で機械的な改称を当ててから、generateObjectなど非推奨APIの置き換えを手で確認する、という順が安全です。v6の学習コストが無駄になるわけではなく、ToolLoopAgentneedsApprovalの考え方はv7でもそのまま活きます。

よくある質問

Vercel AI SDK v6はいつリリースされましたか?

v6.0.0の正式版(GA)は2025年12月22日です。その後もv6系はパッチが継続しています。ただし2026年6月25日にv7.0.0が出ており、最新はv7系です。

ToolLoopAgentとは何ですか?

ツール呼び出しのループを制御するエージェントで、旧Experimental_Agentの後継です。instructionsで役割、toolsでツール、stopWhenで停止条件を指定します。既定の停止条件はstepCountIs(20)です。

prepareCallsというAPIはありますか?

ありません。動的にCall Optionsを差し替えるのはcallOptionsSchemaprepareCallです。prepareCallsという記述は誤りなので、コードを写すときは注意してください。

v6のまま使い続けても大丈夫ですか?

大丈夫です。v6系はパッチが継続しています。ただしnpm install aiではv7が入るため、v6で固定するならai@6のようにバージョンをピン留めしてください。

v6からv7への移行方法は?

npx @ai-sdk/codemod v7で改称(stepCountIsisStepCountonFinishonEndなど)を自動置換できます。そのうえでgenerateObjectなど非推奨APIの手直しを確認します。より詳しくは、OpenUIの記事で整理しています。

関連記事

資料請求

RELATED POSTS 関連記事