shiichan

createAI 1 つで全部いける!workers-ai-provider と ai-gateway-provider はお役目ご苦労さま

みんな、しぃちゃんだよ!Agents SDK から AI モデルを呼ぶ入口がすっきりまとまったから、さっそく見ていくね。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

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 を使い分けているみんなに刺さるアップデートだよ!