createAI 1 つで全部いける!workers-ai-provider と ai-gateway-provider はお役目ご苦労さま
みんな、しぃちゃんだよ!Agents SDK から AI モデルを呼ぶ入口がすっきりまとまったから、さっそく見ていくね。
Cloudflare Changelogなにが発表されたの?
Cloudflare の Changelog で、Agents SDK に AI SDK と Pi AI 向けの新関数 createAI が追加されたと告知されたよ。これは workers-ai-provider と ai-gateway-provider がやっていたことを 1 つにまとめたものなの。
今までどうだったの?
これまでは用途ごとにパッケージが分かれていたよ。
- Workers AI のモデルを使うなら
workers-ai-provider - AI Gateway 経由なら
ai-gateway-provider
今回、この 2 つは feature frozen(機能追加は停止)で非推奨 になったよ。移行は都合のいいタイミングで大丈夫、とのことだよ。
これで何が変わるの?
入口が createAI に一本化されるから、モデルの切り替えやフォールバックの指定がシンプルになるよ。Workers AI のモデルから他社のモデルまで、同じ書き方で扱えるのがうれしいポイントだね!
深く潜ってみよう
インストールは agents パッケージだよ。Changelog のコード例はこんな形だったよ。
import { createAI } from "agents/models/ai-sdk";
import { streamText } from "ai";
export default {
async fetch(request, env) {
const ai = createAI({ binding: env.AI, id: "my-gateway" });
const result = streamText({
model: ai("anthropic/claude-opus-5.5", {
fallback: ["@cf/zai-org/glm-4.7-flash"],
}),
prompt: "Write a haiku about Durable Objects",
});
return result.toTextStreamResponse();
},
};
createAI でできることはこれだよ。
- ID でモデル指定: Workers AI の
@cf/ID、AI Gateway カタログの任意のモデル、dynamic/{route}形式の動的ルート - ベンダーのモデルオブジェクト: ベンダー公式パッケージのモデルを渡すと、AI Gateway のプロバイダーネイティブなエンドポイントへそのまま送られる
- 柔軟な接続: バインディング、またはアカウント ID と API トークンで接続(別アカウントのゲートウェイや Worker の外からの呼び出しにも対応)
- Gateway のオプション: キャッシュ、ロギング、メタデータ、リトライ、BYOK エイリアス、ゼロデータリテンション、ベンダーキー設定
- フォールバック: 失敗時に使うモデルのリストを指定
- ストリーム再開: バインディング使用時、カタログや動的ルートのストリームが途中で切れても再開できる
- 他のモデル種別: AI SDK プロバイダーでは埋め込み・画像・音声合成・文字起こし・リランキング、Pi AI では画像
移行の対応表はこうなるよ。
createWorkersAI({ binding })はcreateAI({ binding })にcreateWorkersAI({ accountId, apiKey })はcreateAI({ accountId, apiToken })に(認証情報のオプション名がapiTokenに変わる)createAiGateway(...)はcreateAI(...)に(フォールバックはリストで指定)workers-ai-providerのcreateAISearchは、ai-search-providerのcreateAISearchNamespaceに置き換え
まとめ
- Agents SDK の
createAIが Workers AI・AI Gateway・動的ルート・ベンダーモデルを統一 workers-ai-providerとai-gateway-providerは feature frozen で非推奨- フォールバック、ストリーム再開、Gateway オプションもまとめて使える
- 移行は関数名と一部オプション名(
apiKeyからapiToken)の置き換えが中心
Workers 上で複数のモデルや Gateway を使い分けているみんなに刺さるアップデートだよ!