Cloudflare の Clef とは?Jev との違いをまとめてみた

Cloudflare の Clef とは?Jev との違いをまとめてみた

Cloudflare Workers AIで新しくリリースされた「Clef」というdecision modelについて、既存のJevとの違いや実際の動作比較をまとめました。
2026.10.04

こんにちは、けーまです。

2026年10月1日に、Cloudflare Workers AI で Clef という decision model が公開されました。
TypeSafe の Jev と同じ系統のモデルで、API も互換性があります。

この記事では、Clef の概要や Jev との違いを整理しつつ、同じ質問を両方に投げてレスポンスを比較した結果をまとめました。

1. Clef とは

Clef は、Cloudflare の Workers AI チームが初めて自社で学習させたモデルで、2026年10月1日に次の2つが公開されました。

モデル 位置づけ ベースモデル 料金(入力100万トークン)
Clef 精度を重視する大きいモデル Qwen3.8-27B $0.24
Clef-flash 速度を重視する小さいモデル Qwen3.5-9B $0.09

料金は各モデルページ(Models: clef | Cloudflare Workers AI docs、Models: clef-flash | Cloudflare Workers AI docs)に記載されているものです。
どちらも重みが Apache 2.0 ライセンスで Hugging Face(Cloudflare/clef、Cloudflare/clef-flash)に公開されており、手元の GPU で動かすこともできます。

Clef は、TypeSafe社の Jev と同じく、文章を生成するのではなく、質問ごとに選択肢の確率を返す decision model です。
入力として状態(state)と型付きの質問を受け取り、例えば「この問い合わせは緊急か」「どのチームが担当すべきか」といった問いに確率で回答します。

質問の型は3種類あります。

  • noul:yes/no の質問。yes の確率を返す

  • choice:決めた選択肢から1つ選ぶ。選んだ選択肢、選択肢ごとの確率、確信度を返す

  • score:順序のある段階で評価する。確率で重み付けしたスコアと、段階ごとの確率を返す

2. Jev との違い

項目 Clef Jev
提供元 Cloudflare(Workers AI) TypeSafe
入力 テキスト・JSON と画像(1リクエスト4枚まで) テキスト・JSON のみ
質問数(1リクエスト) 64問まで 上限の記載なし
コンテキスト 64K トークン 1リクエスト64K、state と最長の質問で32K
料金(入力100万トークン) $0.24(flash は $0.09) $0.042
重み 公開(Apache 2.0) 非公開
API System One 互換 System One

モデルページの概要には動画にも対応していると書かれていますが、API のパラメーターにあるのは images だけで、動画の渡し方は書かれていません。

一番大きな違いは、画像を入力できる点です。
Jev は画像を受け取れないため、書類の画像を扱うなら先に OCR でテキスト化する必要がありますが、Clef は画像をそのまま判断材料として渡せます。
一方、料金は Jev のほうが安く、clef は Jev の約6倍です。

画像は URL ではなく、リクエストの images に埋め込んで渡します。
私の検証では、base64 にした画像を次のような data URL の形で並べて送り、PNG で通ることを確認しました。

"images": ["data:image/png;base64,iVBORw0KGgo..."]

モデルページには次の上限が書かれています。

項目 上限
枚数 1リクエスト4枚まで
形式 PNG、JPEG、WebP
1枚のサイズ 4MiB かつ 16メガピクセルまで
画像の合計 デコード後 8MiB まで
リクエスト全体 13MiB まで
URL での指定 不可

モデルページの原文では、画像は state の前に配置され、上記の上限があると説明されています。

Optional embedded PNG, JPEG, or WebP images placed before the state (max 4; 4 MiB and 16 megapixels each, 8 MiB total decoded; whole request body max 13 MiB). Remote URLs are not accepted.

引用元: Models: clef | Cloudflare Workers AI docs

API には互換性があり、Jev から切り替える際に変更するのは、エンドポイント、API キー、model の3点だけです。
同じ質問を Jev と Clef にそれぞれ送ってみます。

Jev に送る場合:

curl https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Checkout has been failing for every customer for the last hour.",
    "questions": { "urgent": { "type": "noul", "instructions": "Is this support request urgent?" } }
  }'
{"model":"jev-1.13.0","answers":{"urgent":{"type":"noul","noul":0.97}},"usage":{"input_tokens":284,"output_tokens":20}}

Clef に送る場合($CLOUDFLARE_AUTH_TOKEN は Workers AI の権限を持つ Cloudflare の API トークン):

curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run/@cf/cloudflare/clef \
  -H "Authorization: Bearer $CLOUDFLARE_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "clef",
    "state": "Checkout has been failing for every customer for the last hour.",
    "questions": { "urgent": { "type": "noul", "instructions": "Is this support request urgent?" } }
  }'
{"result":{"model":"clef","answers":{"urgent":{"type":"noul","noul":0.9917}},"usage":{"input_tokens":154,"output_tokens":0}},"success":true,"errors":[],"messages":[]}

リクエストの内容は model の指定以外まったく同じですが、レスポンスの構造が異なります。

Jev はルート直下に answers を返すのに対し、REST API で呼んだ Clef は全体を result でラップし、同じ階層に success や errors を含めて返します。
REST API で Jev 用のコードを流用する場合は、answers を参照する前に result を取り出す処理を追加する必要があります。

3. 同じ質問を投げてみた

Clef のモデルページに載っているサンプルと同じ state と質問を、Jev(jev-1.13.0)、clef、clef-flash に5回ずつ投げました。

state は「1時間前から、すべての顧客で決済が失敗し続けている」というサポートへの問い合わせです。
これに対して、3つの型を1つずつ使った3問を、1回のリクエストでまとめて聞いています。

リクエストは次のとおりです(日本語のコメントは説明用で、実際に送る JSON には含めません)。

{
  "model": "clef", // Jev なら "jev-latest"、clef-flash なら "clef-flash"
  // 判断の材料(状態):1時間前から、すべての顧客で決済が失敗し続けている
  "state": "Checkout has been failing for every customer for the last hour.",
  "questions": {
    "urgent": {
      "type": "noul", // yes/no の質問。yes の確率を返す
      "instructions": "Is this support request urgent?" // この問い合わせは緊急か
    },
    "team": {
      "type": "choice", // 選択肢から1つ選ぶ
      "instructions": "Which team should handle this request?", // どのチームが担当すべきか
      "criteria": {
        "billing": "Payments, invoices, and refunds", // 支払い・請求・返金
        "technical": "Outages, errors, and configuration", // 障害・エラー・設定
        "sales": "Plans and upgrades" // プラン・アップグレード
      }
    },
    "severity": {
      "type": "score", // 順序のある段階で評価する
      "instructions": "How severe is the customer impact?", // 顧客への影響はどのくらい深刻か
      // 0:影響なし、1:軽微、2:重大、3:致命的
      "criteria": ["No impact", "Minor", "Major", "Critical"]
    }
  }
}
項目 Jev clef clef-flash
緊急か(yes の確率) 0.96〜0.97 0.9906 0.9551
担当チーム(technical の確率) technical(0.99〜1.0) technical(0.8088) technical(0.9355)
深刻度(0〜3) 2.99 2.9573 2.7182
5回の結果のばらつき 小数第2位で揺れた 5回とも同一 5回とも同一
入力トークン 402 346 346
実行時間(中央値) 0.238秒(238ms) 0.478秒(478ms) 0.294秒(294ms)
料金(1リクエスト、1ドル150円で換算) $0.0000169(約0.0025円) $0.0000830(約0.0125円) $0.0000311(約0.0047円)

3つのモデルとも判定結果自体は一致しましたが、確率の値と桁数に違いが出ました。
Jev は確率を小数第2位まで返し、5回の試行の中で 0.96 と 0.97 が入れ替わりました。
clef と clef-flash は小数第4位まで返し、5回とも完全に同じ値でした。

実行時間は、私の検証環境では Jev が最も短くなりました。
ただし、実行タイミングやネットワーク状況、サーバーの負荷によって変動するため、今回の少ない試行回数で単純に比較することはできません。実行時間は、0.2〜0.5秒前後の範囲に収まっており、人間の体感としてはほとんど差がない水準と考えられます。
なお、Cloudflare が公表しているモデル側の処理時間(中央値)は clef 209.3ms、clef-flash 38.8ms、Jev 524.1ms です(Changelog | Cloudflare Docs)。

4. まとめ

Clef は Jev と同じ API で扱える decision model で、画像を入力できる点と重みが公開されている点が Jev との大きな違いです。
テキストだけの判断であれば料金の安い Jev、書類やスクリーンショットのような画像も判断材料に含めたいなら Clef が向いています。
Clef を使う際は、まず clef-flash で速度や精度を確かめ、不足があれば clef に引き上げる順で試すのが良さそうです。

参考

この記事をシェアする

関連記事