1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare Workers AI × Kimi K2.5入門 — エッジでフロンティアLLMを動かすエージェント構築

1
Last updated at Posted at 2026-03-23

Cloudflare Workers AI × Kimi K2.5 エッジ推論の概念図

はじめに

2026年3月19日、Cloudflareは Workers AI にフロンティア規模のオープンソースLLMを初めて搭載した と発表した。搭載されたのは Moonshot AI が開発した Kimi K2.5 — 1兆パラメータの Mixture-of-Experts(MoE)アーキテクチャを持ち、256Kトークンのコンテキストウィンドウ、マルチターンツール呼び出し、ビジョン入力、構造化出力をサポートするモデルである。

従来、フロンティア規模のLLMをプロダクションで運用するには、GPU調達・推論エンジン最適化・スケーリング設計といった専門知識が必要だった。Workers AI はこれらをすべて抽象化し、APIを1回呼ぶだけでCloudflareのグローバルエッジネットワーク上でフロンティアLLMを実行できる環境を提供する。

この記事で学べること

  • Kimi K2.5のアーキテクチャとベンチマーク性能
  • Workers AI での API 実装方法(TypeScript / Python / cURL)
  • プリフィックスキャッシュとセッションアフィニティによるコスト最適化
  • Cloudflare Agents SDK を使ったステートフルなAIエージェント構築

対象読者

  • AIエージェントの構築・運用に関心があるエンジニア
  • LLM推論のコストやレイテンシに課題を感じている開発者
  • Cloudflare Workers をすでに利用している、または検討中の方

TL;DR

  • Kimi K2.5 は1Tパラメータ / 32Bアクティブの超スパースMoEモデル。SWE-Bench Verified 76.8%、AIME 2025 96.1% を達成
  • Workers AI 上で256Kコンテキスト・ツール呼び出し・ビジョン入力がすべて利用可能
  • プロプライエタリモデル比で 77%のコスト削減 。入力 $0.60/Mトークン、キャッシュ済み入力 $0.10/Mトークン
  • Agents SDK と組み合わせることで、Durable Objects ベースのステートフルAIエージェントをエッジにデプロイできる

Workers AIのエッジ推論アーキテクチャ

Kimi K2.5の技術的全貌

モデルアーキテクチャ

Kimi K2.5は、Moonshot AI が GitHub で公開 しているオープンウェイトモデルである。公式のモデルカードによると、主要なスペックは以下のとおりである。

項目 仕様
総パラメータ数 1T(1兆)
アクティブパラメータ数 32B(トークンあたり)
アーキテクチャ Mixture-of-Experts(MoE)
エキスパート数 384(トークンあたり8選択)
アテンション機構 Multi-head Latent Attention(MLA)
アテンション隠れ次元 7,168
レイヤー数 61(うち1層が密結合)
コンテキストウィンドウ 256,000トークン
語彙サイズ 160,000
活性化関数 SwiGLU
ビジョンエンコーダ MoonViT(400Mパラメータ)
量子化 INT4(QAT適用)

384エキスパートという構成は、DeepSeek-V3の256エキスパートより50%多い。この超スパース設計により、1兆パラメータを持ちながらもトークンあたりの計算コストを32Bパラメータ相当に抑えている。

ベンチマーク性能

公式の技術レポートによると、Kimi K2.5は以下のベンチマークで高い性能を示す。

ベンチマーク スコア 分野
SWE-Bench Verified 76.8% ソフトウェアエンジニアリング
SWE-Bench Multilingual 73.0% 多言語コーディング
LiveCodeBench v6 85.0% ライブコーディング
AIME 2025 96.1% 数学推論
HMMT 2025 95.4% 数学推論
Humanity's Last Exam(ツール使用) 50.2% 総合推論
MMMU-Pro 78.5% マルチモーダル推論
MathVision 84.2% 視覚的数学推論
MathVista 90.1% 視覚的数学推論

SWE-Bench Verified 76.8% はコーディング特化モデルに匹敵する水準であり、汎用モデルとしては極めて高いスコアである。

Kimi K2.5のベンチマーク性能

Workers AI での実装ガイド

Workers AI 上のKimi K2.5は、モデルID @cf/moonshotai/kimi-k2.5 で利用できる。アクセス方法は3つある。

  1. Workers Binding(env.AI.run())— Cloudflare Workers 内から直接呼び出し
  2. REST API — 任意のHTTPクライアントから呼び出し
  3. OpenAI互換エンドポイント(/v1/chat/completions)— 既存のOpenAI SDKをそのまま利用

TypeScript(Workers Binding)

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const response = await env.AI.run(
      "@cf/moonshotai/kimi-k2.5",
      {
        messages: [
          {
            role: "system",
            content: "あなたはTypeScriptのエキスパートです。"
          },
          {
            role: "user",
            content: "Zodを使ったバリデーションの例を示してください。"
          }
        ],
        max_completion_tokens: 2048,
        temperature: 0.7
      }
    );
    return Response.json(response);
  }
};

Python(REST API)

import requests

ACCOUNT_ID = "your-account-id"
AUTH_TOKEN = "your-auth-token"

response = requests.post(
    f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/moonshotai/kimi-k2.5",
    headers={"Authorization": f"Bearer {AUTH_TOKEN}"},
    json={
        "messages": [
            {"role": "user", "content": "PythonでFastAPIのCRUDエンドポイントを実装してください。"}
        ],
        "max_completion_tokens": 2048,
        "temperature": 0.7
    }
)

result = response.json()
print(result["result"]["response"])

cURL

curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/ai/run/@cf/moonshotai/kimi-k2.5" \
  -X POST \
  -H "Authorization: Bearer $AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "Rustのエラーハンドリングのベストプラクティスを解説してください。"}
    ],
    "max_completion_tokens": 2048
  }'

ストリーミングレスポンス

リアルタイムにトークンを受信するには、stream: true を指定する。

const stream = await env.AI.run(
  "@cf/moonshotai/kimi-k2.5",
  {
    messages: [
      { role: "user", content: "非同期処理の設計パターンを解説してください。" }
    ],
    stream: true
  }
);

return new Response(stream, {
  headers: { "Content-Type": "text/event-stream" }
});

ツール呼び出し(Function Calling)

Kimi K2.5はマルチターンのツール呼び出しをサポートしており、外部APIとの連携が可能である。

const response = await env.AI.run(
  "@cf/moonshotai/kimi-k2.5",
  {
    messages: [
      { role: "user", content: "東京の現在の天気を教えてください。" }
    ],
    tools: [
      {
        type: "function",
        function: {
          name: "get_weather",
          description: "指定した都市の現在の天気を取得する",
          parameters: {
            type: "object",
            properties: {
              city: {
                type: "string",
                description: "都市名(例: Tokyo)"
              }
            },
            required: ["city"]
          }
        }
      }
    ],
    tool_choice: "auto"
  }
);

構造化出力(JSON Schema)

response_format パラメータを使用することで、出力を指定したJSON Schemaに厳密に準拠させることができる。

const response = await env.AI.run(
  "@cf/moonshotai/kimi-k2.5",
  {
    messages: [
      { role: "user", content: "TypeScriptの主要なデザインパターンを3つ挙げてください。" }
    ],
    response_format: {
      type: "json_schema",
      json_schema: {
        name: "design_patterns",
        strict: true,
        schema: {
          type: "object",
          properties: {
            patterns: {
              type: "array",
              items: {
                type: "object",
                properties: {
                  name: { type: "string" },
                  description: { type: "string" },
                  use_case: { type: "string" }
                },
                required: ["name", "description", "use_case"]
              }
            }
          },
          required: ["patterns"]
        }
      }
    }
  }
);

料金体系とコスト最適化

基本料金

Cloudflareの公式ドキュメントによると、Kimi K2.5の料金は以下のとおりである。

項目 料金(100万トークンあたり)
入力トークン $0.60
キャッシュ済み入力トークン $0.10
出力トークン $3.00

プリフィックスキャッシュの活用

Workers AI はプリフィックスキャッシュをサポートしており、同一セッション内の共通プレフィックス(システムプロンプトや過去の会話履歴)を再利用できる。キャッシュ済みトークンは $0.10/Mトークン で処理されるため、通常の入力トークン($0.60/Mトークン)と比較して 約83%のコスト削減 になる。

キャッシュを有効活用するには、リクエストに x-session-affinity ヘッダーを付与する。

const response = await env.AI.run(
  "@cf/moonshotai/kimi-k2.5",
  {
    messages: conversationHistory
  },
  {
    headers: {
      "x-session-affinity": sessionId  // セッション固有のID
    }
  }
);

このヘッダーにより、同一セッションのリクエストが同じモデルインスタンスにルーティングされ、プリフィックスキャッシュのヒット率が向上する。

コスト削減の実績

Cloudflareの公式ブログによると、同社内部でKimi K2.5をセキュリティレビューエージェントに採用した結果、日次70億トークン以上を処理するワークロードで プロプライエタリモデル比77%のコスト削減 を達成した。年間換算で約240万ドルの節約に相当するとしている。

非同期バッチAPI

大量のリクエストを処理する場合は、非同期バッチAPIが有用である。Cloudflareはプルベースのキューイングシステムを採用しており、キャパシティが利用可能になった時点でリクエストを自動処理する。公式ドキュメントによると、通常5分以内に実行されるが、トラフィック状況によって変動する。

プリフィックスキャッシュによるコスト最適化フロー

Agents SDKと組み合わせたエージェント構築

Cloudflareは Workers AI と並行して、 Agents SDK を提供している。公式ドキュメントによると、Agents SDK は Durable Objects をベースとした永続的・ステートフルなAIエージェント実行環境であり、以下の機能を持つ。

  • 永続的な状態管理: エージェントごとに固有のストレージとライフサイクル
  • リアルタイム通信: WebSocket ベースの双方向通信
  • スケジューリング: cron、遅延実行、特定時刻実行
  • ツール定義: サーバーサイド / クライアントサイドのツール
  • 人間承認フロー: human-in-the-loop の承認ステップ

スターターテンプレートのセットアップ

Agents SDK のスターターテンプレートは、デフォルトでKimi K2.5を使用するよう構成されている。

npx create-cloudflare@latest --template cloudflare/agents-starter
cd agents-starter
npm install
npm run dev

http://localhost:5173 でAIチャットエージェントが起動する。

エージェントの定義例

以下は、コードレビューを行うエージェントの実装例である。

import { Agent } from "@cloudflare/agents";

export class CodeReviewAgent extends Agent {
  async onMessage(message: string) {
    const response = await this.env.AI.run(
      "@cf/moonshotai/kimi-k2.5",
      {
        messages: [
          {
            role: "system",
            content: `あなたはシニアソフトウェアエンジニアです。
提出されたコードをレビューし、改善点を指摘してください。
セキュリティ・パフォーマンス・可読性の3軸で評価します。`
          },
          { role: "user", content: message }
        ],
        tools: [
          {
            type: "function",
            function: {
              name: "search_documentation",
              description: "関連するドキュメントを検索する",
              parameters: {
                type: "object",
                properties: {
                  query: { type: "string" }
                },
                required: ["query"]
              }
            }
          }
        ],
        max_completion_tokens: 4096
      }
    );

    return response;
  }
}

他プロバイダーとの併用

Agents SDKは Workers AI 以外のプロバイダーにも対応している。OpenAI、Anthropic、Google Gemini などのAPIキーを設定することで、タスクに応じてモデルを切り替えることが可能である。

主要プロバイダーとの比較

Workers AI + Kimi K2.5 の位置づけを、主要なLLM APIプロバイダーと比較する。

項目 Workers AI (Kimi K2.5) OpenAI (GPT-5.4) Anthropic (Claude Opus 4.6) Together AI (Kimi K2.5)
入力料金(/Mトークン) $0.60 $2.50 $5.00 $0.50
出力料金(/Mトークン) $3.00 $15.00 $25.00 $2.80
コンテキスト長 256K 200K 1M 256K
ツール呼び出し 対応 対応 対応 対応
ビジョン入力 対応 対応 対応 対応
エッジ推論 対応 非対応 非対応 非対応
セッションアフィニティ 対応 非対応 非対応 非対応
OpenAI互換API 対応 - 非対応 対応

Workers AI の最大の差別化ポイントは エッジ推論 である。Cloudflareのグローバルネットワーク上でモデルが実行されるため、ユーザーに近い地点から低レイテンシでレスポンスを返すことができる。

また、Workers AI はCloudflareの他サービス(Workers、Durable Objects、R2、D1、Queues)とネイティブに統合されている。AIエージェントのバックエンド全体をCloudflareプラットフォーム上に構築できる点は、他のLLM APIにはない強みである。

注意点と制約

レート制限

Workers AI にはレート制限が存在する。高スループットのワークロードでは、非同期バッチAPIの活用を検討すべきである。

モデルの特性

Kimi K2.5はコーディングと数学推論に強いが、すべてのタスクでプロプライエタリモデルを上回るわけではない。用途に応じてモデルを選定することが重要である。

セルフホスティングとの比較

Kimi K2.5はオープンウェイトモデルであるため、自前のGPU上でもデプロイできる。ただし、フルモデルのデプロイには少なくとも4基のH200 GPUが必要であり、Cloudflareの公式ブログで解説されているInfireエンジンやカスタムカーネルの最適化を自力で再現するのは容易ではない。GPU管理のオーバーヘッドを避けたい場合は、Workers AI の利用が合理的な選択となる。

まとめ

  • Cloudflare Workers AI にフロンティア規模のLLMが搭載されたことで、 GPU管理なしでエッジ上のAIエージェント構築 が可能になった
  • Kimi K2.5は1Tパラメータ / 32BアクティブのMoEモデルで、SWE-Bench Verified 76.8%、AIME 2025 96.1% と高い性能を持つ
  • プリフィックスキャッシュとセッションアフィニティにより、 プロプライエタリモデル比77%のコスト削減 が可能
  • Agents SDK との統合により、Durable Objectsベースの永続的AIエージェントをエッジにデプロイできる
  • OpenAI互換APIをサポートしているため、既存のワークフローからの移行障壁は低い

フロンティアLLMの推論基盤がエッジに到達したことで、AIエージェントの構築・デプロイの選択肢が広がった。コスト効率とレイテンシの両面で恩恵を受けられるWorkersエコシステムは、エージェント開発の新たな選択肢として注目に値する。

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?