[{"data":1,"prerenderedAt":1149},["ShallowReactive",2],{"content-/cloudflare-os-model-setup":3,"all-pages-for-dir":1126,"related-/cloudflare-os-model-setup":1127,"og-image-/cloudflare-os-model-setup":1148},{"id":4,"title":5,"body":6,"category":1109,"concepts":1109,"description":1110,"extension":1111,"meta":1112,"navigation":1113,"ogImage":1109,"path":1114,"project_name":1109,"published":1115,"publishedAt":1116,"seo":1117,"source":1109,"stem":1118,"tags":1119,"todo":1109,"unpublished":1115,"updatedAt":1116,"__hash__":1125},"pages/2026-08/2026-08-10/cloudflare-os-model-setup.md","Cloudflare OS に生成AIをどう入れるか — Codex の定額枠は使えない",{"type":7,"value":8,"toc":1076},"minimark",[9,13,27,30,33,41,53,56,61,64,120,123,126,129,133,146,158,161,174,227,238,251,255,258,267,270,277,288,295,299,302,305,309,312,318,322,325,332,335,338,344,348,354,357,366,375,378,382,385,388,392,395,402,408,412,415,418,421,428,431,435,438,447,451,454,460,464,467,470,474,487,490,493,496,502,505,508,511,527,530,534,537,581,599,613,617,620,686,690,697,700,704,707,823,830,834,837,840,848,855,881,888,892,911,918,921,924,950,953,956,982,988,991,1072],[10,11,5],"h1",{"id":12},"cloudflare-os-に生成aiをどう入れるか-codex-の定額枠は使えない",[14,15,16,17,26],"p",{},"Cloudflare が 2026年8月4日に ",[18,19,25],"a",{"href":20,"target":21,"rel":22},"https://blog.cloudflare.com/cloudflare-os/","_blank",[23,24],"noopener","noreferrer","Cloudflare OS"," をオープンソースで公開した。社員全員にAIエージェントと作業場を配るための基盤で、Apache-2.0 ライセンス、GitHub からそのまま自社の Cloudflare アカウントへデプロイできる。",[14,28,29],{},"組織にAIエージェントを入れる土台としては筋がいい。権限の設計が「エージェントには最初から何も渡さない」から始まっていて、鍵を配って回る運用にならない。",[14,31,32],{},"ただ、導入を考えると最初に詰まるのがモデルの調達だ。ChatGPT のプランには Codex の利用枠が含まれている。あれを組織の共有バックエンドに流用できれば、推論代を月額に固定できる。そう考えたくなる。",[14,34,35,36,40],{},"結論から言うと、",[37,38,39],"strong",{},"Cloudflare OS の推論のバックエンドとしては使えない","。Codex の枠と Cloudflare OS の推論経路は、認証のしくみが別物になっている。",[14,42,43,44,48,49,52],{},"ただし「Codex がまったく使えない」という話ではない。Claude Code から ",[45,46,47],"code",{},"codex exec"," を呼ぶような、",[37,50,51],{},"手元の端末で自分のアカウントで動かす形なら定額枠は生きる","。境目がどこにあるのかも含めて、順に見ていく。",[14,54,55],{},"なお筆者はまだ自社環境へのデプロイを完了していない。以下の手順は公開されているドキュメントとリポジトリの記載に基づくもので、実機で通したものではない。",[57,58,60],"h2",{"id":59},"cloudflare-os-は3つの部品でできている","Cloudflare OS は3つの部品でできている",[14,62,63],{},"まず対象の輪郭をはっきりさせておく。Cloudflare OS は3つの層からなる。",[65,66,67,83],"table",{},[68,69,70],"thead",{},[71,72,73,77,80],"tr",{},[74,75,76],"th",{},"層",[74,78,79],{},"実体",[74,81,82],{},"役割",[84,85,86,98,109],"tbody",{},[71,87,88,92,95],{},[89,90,91],"td",{},"ワークスペース",[89,93,94],{},"Durable Object",[89,96,97],{},"会話・文書作成・コード実行の場。自社の用語や手順を文脈として持たせる",[71,99,100,103,106],{},[89,101,102],{},"Gatekeeper",[89,104,105],{},"サービスごとの Worker",[89,107,108],{},"GitHub や Google などへの接続を仲介する。OAuth と認証情報を保持し、ポリシーを適用して読み取りを記録する",[71,110,111,114,117],{},[89,112,113],{},"Gadget",[89,115,116],{},"Dynamic Worker",[89,118,119],{},"社員が自分用に作る小さなアプリ。サンドボックスで動き、既定では何にもアクセスできない",[14,121,122],{},"肝は真ん中の Gatekeeper だ。エージェントに API キーやデータベースの認証情報を直接渡さず、「この資源にこの条件で触れてよい」という権限だけを渡す。誰が何を読んだかは記録に残る。",[14,124,125],{},"Cloudflare 社内では2026年5月から全社員が使っていて、エンジニア以外の部署でも文書やスライドの作成に使われているという。",[14,127,128],{},"マネージド版はダッシュボードから提供される予定になっているが、時期は明示されていない。今すぐ試すなら自分のアカウントへデプロイする形になる。",[57,130,132],{"id":131},"推論はすべて-ai-gateway-を通る","推論はすべて AI Gateway を通る",[14,134,135,136,145],{},"ここが本題の入口になる。Cloudflare OS では、",[37,137,138,139,144],{},"推論の呼び出しがすべて ",[18,140,143],{"href":141,"target":21,"rel":142},"https://developers.cloudflare.com/ai-gateway/",[23,24],"Cloudflare AI Gateway"," を経由する","。迂回する設定はない。",[147,148,149,154],"figure",{},[150,151],"img",{"src":152,"alt":153},"/images/cloudflare-os-model-setup/figure-01.svg","Cloudflare OS の推論はすべて AI Gateway を経由してモデル提供元に届き、認証はAPIキーによる従量課金になる。一方 Codex の定額枠は開発者の端末で Codex CLI が ChatGPT にログインする別経路にあり、Claude Code から codex を呼ぶ場合もこの経路を通る。本人の端末で本人のアカウントを使うから成り立つ",[155,156,157],"figcaption",{},"図1: モデルの差し込み口は AI Gateway の1か所で、そこに入るのは API キーである",[14,159,160],{},"これは制約であると同時に、組織で使うときの利点でもある。管理者は推論費用がどこで発生しているかを1か所で把握でき、予算の上限とレート制限をかけられる。全社員に配る基盤としては、この一元管理があるかないかで運用の重さが変わる。",[14,162,163,164,169,170,173],{},"設定は ",[18,165,168],{"href":166,"target":21,"rel":167},"https://github.com/cloudflare/cloudflare-os-starter",[23,24],"スターターリポジトリ"," の ",[45,171,172],{},"deployment.jsonc"," に集約されている。AI に関わる部分はここだ。",[175,176,181],"pre",{"className":177,"code":178,"language":179,"meta":180,"style":180},"language-jsonc shiki shiki-themes vitesse-light vitesse-light","\"aiGateway\": {\n  \"enabled\": false,\n  \"name\": \"\u003CAI_GATEWAY_NAME>\",\n  \"accountId\": \"\u003CAI_GATEWAY_ACCOUNT_ID>\",\n  \"providers\": [\"anthropic\", \"openai\", \"google\", \"cloudflare\"],\n  \"workersAi\": { \"mode\": \"gateway\", \"gateway\": \"\u003CWORKERS_AI_GATEWAY_NAME>\" }\n}\n","jsonc","",[45,182,183,191,197,203,209,215,221],{"__ignoreMap":180},[184,185,188],"span",{"class":186,"line":187},"line",1,[184,189,190],{},"\"aiGateway\": {\n",[184,192,194],{"class":186,"line":193},2,[184,195,196],{},"  \"enabled\": false,\n",[184,198,200],{"class":186,"line":199},3,[184,201,202],{},"  \"name\": \"\u003CAI_GATEWAY_NAME>\",\n",[184,204,206],{"class":186,"line":205},4,[184,207,208],{},"  \"accountId\": \"\u003CAI_GATEWAY_ACCOUNT_ID>\",\n",[184,210,212],{"class":186,"line":211},5,[184,213,214],{},"  \"providers\": [\"anthropic\", \"openai\", \"google\", \"cloudflare\"],\n",[184,216,218],{"class":186,"line":217},6,[184,219,220],{},"  \"workersAi\": { \"mode\": \"gateway\", \"gateway\": \"\u003CWORKERS_AI_GATEWAY_NAME>\" }\n",[184,222,224],{"class":186,"line":223},7,[184,225,226],{},"}\n",[14,228,229,230,233,234,237],{},"既定は ",[45,231,232],{},"enabled: false","。有効にしたうえで、",[45,235,236],{},"providers"," に並んでいる提供元の認証情報を別途登録する。並んでいるのは Anthropic、OpenAI、Google、そして Cloudflare 自身の Workers AI である。",[14,239,240,241,246,247,250],{},"エージェントの中身には、",[18,242,245],{"href":243,"target":21,"rel":244},"https://pi.dev/docs/latest/providers",[23,24],"Pi"," というコーディングエージェントのコア（",[45,248,249],{},"pi-agent-core","）が使われている。多数のモデル提供元を1つのインターフェースで扱えるライブラリで、Cloudflare OS が「好きなモデルを使える」と言えるのはこれが土台にあるからだ。この点は後で効いてくるので覚えておいてほしい。",[57,252,254],{"id":253},"codex-の定額枠が入らない理由","Codex の定額枠が入らない理由",[14,256,257],{},"さて本題である。",[14,259,260,261,266],{},"OpenAI の Codex は、ChatGPT の Free / Plus / Pro / Business / Enterprise のいずれのプランにも含まれている。追加料金なしで、プランに含まれる枠の範囲で使える。",[18,262,265],{"href":263,"target":21,"rel":264},"https://learn.chatgpt.com/docs/auth",[23,24],"公式ドキュメント","にも、ChatGPT でサインインした場合は「枠を使い切るまでトークン単位の請求は発生しない」と明記されている。",[14,268,269],{},"一方、API キーで認証した場合は OpenAI Platform の標準料金で全トークンが課金され、プランの枠には一切触れない。",[14,271,272,273,276],{},"この2つは",[37,274,275],{},"別勘定","である。そして AI Gateway が扱えるのは後者、つまり API キーの方だけだ。",[14,278,279,280,283,284,287],{},"理由は経路にある。ChatGPT のプランに含まれる枠は OAuth でサインインして使う。Codex CLI、IDE 拡張、ブラウザ版といった「Codex のクライアント」から入ることを前提にした認証で、取得したトークンは端末の ",[45,281,282],{},"~/.codex/auth.json"," に置かれる。AI Gateway は ",[45,285,286],{},"api.openai.com"," に対する中継役なので、この経路には接続点がない。",[14,289,290,291,294],{},"企業向けには Codex access token という仕組みがあり、",[45,292,293],{},"CODEX_ACCESS_TOKEN"," を環境変数から渡してヘッドレスでログインできる。ただしこれも Codex CLI に食わせるためのもので、AI Gateway の OpenAI 経路に流し込めるものではない。一般的な API 呼び出しには Platform の API キーを使うよう案内されている。",[296,297,298],"h3",{"id":298},"規約の面でも成立しない",[14,300,301],{},"仮に技術的な回避策を見つけたとしても、運用に載せられない。OpenAI の規約はアカウントの共有を禁じている。複数の社員が同じ認証情報で同時にアクセスすれば、異常な利用として検知され、機能制限やアカウント停止につながる。",[14,303,304],{},"組織で使うなら席（seat）を人数分買うのが正しい形で、そのために ChatGPT Business や Enterprise がある。1人分の定額を全社で分け合う設計は、そもそも想定されていない。",[296,306,308],{"id":307},"anthropic-側も同じというよりもっと明快","Anthropic 側も同じ、というよりもっと明快",[14,310,311],{},"Claude で代替できないかとも考えたが、こちらはさらにはっきりしている。Pi のドキュメントには、Claude Pro / Max のサブスクリプション認証について「サードパーティのハーネスからの利用は追加利用分として扱われ、Claude のプラン上限ではなくトークン単位で課金される」と書かれている。",[14,313,314,315],{},"つまり Claude Code 以外のツールから使うと、定額枠から引かれずに従量課金になる。",[37,316,317],{},"定額の枠を外部のエージェント基盤に流用する道は、OpenAI 側にも Anthropic 側にも用意されていない。",[296,319,321],{"id":320},"pi-の-cli-なら使えるという紛らわしい事実","Pi の CLI なら使える、という紛らわしい事実",[14,323,324],{},"ここで最初に触れた Pi の話が効いてくる。",[14,326,327,328,331],{},"Pi の CLI 版は ",[45,329,330],{},"/login"," を実行すると、ChatGPT Plus / Pro の Codex 枠を OAuth で使える。ドキュメントには OpenAI から公式に認められた方式だと書かれている。GitHub Copilot、xAI、OpenRouter なども同様に扱える。",[14,333,334],{},"だからこう考えたくなる。「Cloudflare OS は Pi を使っているのだから、同じことができるのでは？」",[14,336,337],{},"できない。Pi の CLI は開発者の端末で動くプログラムで、OAuth トークンをそのローカルのファイルに置く。Cloudflare OS は Workers の上で動く共有ワークスペースで、推論は AI Gateway を通す。同じライブラリを土台にしていても、動く場所と認証の経路が違う。",[14,339,340,343],{},[37,341,342],{},"Codex の定額枠を使いたいなら、それは各開発者が自分の端末で自分のアカウントで使うもの","であって、組織の共有基盤の燃料にはならない。ここを混同したまま導入を計画すると、後から前提が崩れる。",[57,345,347],{"id":346},"ツールとして呼べばいいのではという筋","ツールとして呼べばいいのでは、という筋",[14,349,350,351,353],{},"ここで当然の疑問が出る。Claude Code は ",[45,352,47],{}," を子プロセスとして呼べる。これは OpenAI 公式のヘッドレス実行機能で、ChatGPT にログインした状態のままスクリプトから走らせられる。CI でも Docker の中でも SSH 越しでも動く。",[14,355,356],{},"だったら Cloudflare OS も、モデルを直接叩くのではなく codex CLI をツールとして呼べばいいのではないか。",[14,358,359,360,365],{},"筋としては通っている。技術的にも道はある。Cloudflare は2026年4月に Containers と ",[18,361,364],{"href":362,"target":21,"rel":363},"https://developers.cloudflare.com/sandbox/",[23,24],"Sandbox SDK"," を正式提供にした。Workers から隔離されたコンテナを起動し、その中で任意の Linux バイナリを走らせられる。codex CLI を置くこと自体はできる。",[147,367,368,372],{},[150,369],{"src":370,"alt":371},"/images/cloudflare-os-model-setup/figure-03.svg","Codex を使う3つの形の比較。Cloudflare OS の推論そのものに使う道は AI Gateway が API キーしか受け取れないため選択肢に入らない。自分の端末から Claude Code などで呼ぶ形は本人が本人の枠を使うので公式の使い方。Cloudflare の Sandbox から呼ぶ形は技術的には動くが認証と規約の壁が残り自作になる",[155,373,374],{},"図3: 同じ Codex でも、どこで誰のアカウントで動かすかで扱いが変わる",[14,376,377],{},"ただし壁が3つ残る。",[296,379,381],{"id":380},"壁1-cloudflare-os-の標準ランタイムはコンテナではない","壁1: Cloudflare OS の標準ランタイムはコンテナではない",[14,383,384],{},"公開されている資料を読む限り、Cloudflare OS のコード実行は Dynamic Workers、つまり V8 の isolate で動く。JavaScript の実行環境であって、Linux のバイナリを起動する場所ではない。",[14,386,387],{},"Sandbox を使いたければ、それを呼び出す Gadget なり Gatekeeper なりを自分で書くことになる。標準機能として用意されているものではない。",[296,389,391],{"id":390},"壁2-誰のアカウントで動かすのか","壁2: 誰のアカウントで動かすのか",[14,393,394],{},"これが本質的な問題になる。",[14,396,397,398,401],{},"Claude Code から codex を呼ぶ形が成り立つのは、",[37,399,400],{},"開発者本人の端末で、本人がログインした認証情報を使っている","からだ。1人が自分の枠を使っているだけなので、何も引っかからない。",[14,403,404,405,407],{},"サーバー側に持っていくと、この前提が崩れる。全社員のリクエストを1つのアカウントで処理すれば、それはアカウントの共有であって規約に反する。社員ごとのアカウントで動かすなら、1人ずつの認証情報をサーバー側に預かって出し入れする仕組みが要る。OpenAI 自身、認証情報のファイル（",[45,406,282],{},"）はパスワードと同様に扱うこと、信頼できる実行環境でのみ使うことを求めている。",[296,409,411],{"id":410},"壁3-公式が推奨していない","壁3: 公式が推奨していない",[14,413,414],{},"非対話モードのドキュメントには、自動化には API キーを使うのが既定だと書かれている。発行とローテーションが簡単だからだ。ChatGPT アカウントでの認証については「自分の Codex アカウントとして実行する必要が特にある場合にのみ、この道を使え」とある。",[14,416,417],{},"公式の想定は「自動化なら API キー」であって、定額枠をサーバーに持ち込む使い方は例外として扱われている。",[296,419,420],{"id":420},"まかなえる範囲も限られる",[14,422,423,424,427],{},"仮にこれらを越えて Sandbox で codex を動かしたとしても、",[37,425,426],{},"定額枠でまかなえるのは codex に投げた作業だけ","になる。社員がワークスペースで交わす日常の会話、文書の作成、Gadget の生成といった Cloudflare OS 本体の推論は、これまでどおり AI Gateway を通って従量課金される。",[14,429,430],{},"推論費用を月額に固定したい、という当初の狙いには届かない。",[57,432,434],{"id":433},"では何を使うか-3通りの入れ方","では何を使うか — 3通りの入れ方",[14,436,437],{},"定額の道がないと分かったところで、現実的な選択肢を整理する。3通りある。",[147,439,440,444],{},[150,441],{"src":442,"alt":443},"/images/cloudflare-os-model-setup/figure-02.svg","モデル代の払い方は3通りある。自分の鍵を預けるBYOKはモデル提供元へ直接支払い、支払いを1本にするUnified BillingはCloudflareへ前払いし手数料5パーセント、Workers AIはCloudflareへGPU利用料を従量で払う。いずれも従量課金で定額の枠はない",[155,445,446],{},"図2: どれを選んでも従量課金になる。固定できるのは支払い先と上限だけである",[296,448,450],{"id":449},"自分の-api-キーを預けるbyok","① 自分の API キーを預ける（BYOK）",[14,452,453],{},"OpenAI や Anthropic の API キーを Cloudflare のダッシュボードに登録し、ゲートウェイの設定から参照する方式。キーは Secrets Store に暗号化して保管される。リクエストごとにキーを載せる必要がなくなり、ローテーションも1か所で済む。",[14,455,456,457],{},"すでに各社と法人契約があるなら、これが最短で、いちばん素直だ。",[37,458,459],{},"迷ったらここから始めるのがよい。",[296,461,463],{"id":462},"支払いを-cloudflare-にまとめるunified-billing","② 支払いを Cloudflare にまとめる（Unified Billing）",[14,465,466],{},"Cloudflare が提供元の認証情報を持ち、前払いのクレジットから引き落とす方式。手数料が 5% 乗るが、請求書が1本にまとまる。2026年8月7日からは Workers AI の推論費用も同じクレジットで払えるようになった。",[14,468,469],{},"経理の手間を減らしたい組織には向く。ただし対応している提供元は限られる。",[296,471,473],{"id":472},"workers-ai-を使う","③ Workers AI を使う",[14,475,476,477,169,479,482,483,486],{},"Cloudflare が管理する GPU 上で公開モデルを動かす。支払いは Cloudflare への従量課金に一本化される。",[45,478,172],{},[45,480,481],{},"workersAi.mode"," を ",[45,484,485],{},"direct"," にすればゲートウェイを介さず直接呼ぶこともできる。",[14,488,489],{},"社内文書の要約や分類のように、最新の商用モデルを必要としない作業を安く回すのに向く。逆に、込み入った推論を任せたいなら①か②が要る。",[296,491,492],{"id":492},"上限は自分で決められる",[14,494,495],{},"3つとも従量課金だが、青天井ではない。AI Gateway に予算の上限とレート制限を設定でき、部署や用途ごとにリクエストの流し先を切り替える動的ルーティングもある（利用にはゲートウェイの認証を有効にし、BYOK でキーを保管しておく必要がある）。",[14,497,498,501],{},[37,499,500],{},"定額プランは買えないが、使いすぎない仕組みは作れる。"," 組織導入で本当に必要なのは後者のはずで、そこは基盤側が引き受けてくれる。",[57,503,504],{"id":504},"セットアップの手順",[14,506,507],{},"ここからは実際に動かすまでの流れになる。スターターリポジトリの手順に沿って書く。",[296,509,510],{"id":510},"前提として要るもの",[512,513,514,518,521,524],"ul",{},[515,516,517],"li",{},"Cloudflare アカウントと、有効なゾーン（独自ドメイン）",[515,519,520],{},"Node.js 24 と pnpm 11",[515,522,523],{},"Workers、KV、R2、Browser Rendering、Dynamic Worker Loaders が使えること",[515,525,526],{},"AI 関連（Workers AI / AI Gateway）は任意",[14,528,529],{},"ドメインが要るのは、サインインに Cloudflare Access を使うためだ。",[296,531,533],{"id":532},"_1-手元で動かして中身を見る","1. 手元で動かして中身を見る",[14,535,536],{},"デプロイの前に、ローカルで触っておくと判断が早い。",[175,538,542],{"className":539,"code":540,"language":541,"meta":180,"style":180},"language-bash shiki shiki-themes vitesse-light vitesse-light","git clone https://github.com/cloudflare/cloudflare-os.git\ncd cloudflare-os\npnpm install\npnpm run-local\n","bash",[45,543,544,557,566,574],{"__ignoreMap":180},[184,545,546,550,554],{"class":186,"line":187},[184,547,549],{"class":548},"senZ8","git",[184,551,553],{"class":552},"sdGka"," clone",[184,555,556],{"class":552}," https://github.com/cloudflare/cloudflare-os.git\n",[184,558,559,563],{"class":186,"line":193},[184,560,562],{"class":561},"sz8Xr","cd",[184,564,565],{"class":552}," cloudflare-os\n",[184,567,568,571],{"class":186,"line":199},[184,569,570],{"class":548},"pnpm",[184,572,573],{"class":552}," install\n",[184,575,576,578],{"class":186,"line":205},[184,577,570],{"class":548},[184,579,580],{"class":552}," run-local\n",[14,582,583,586,587,590,591,594,595,598],{},[45,584,585],{},"http://localhost:8787"," が立ち上がる。",[45,588,589],{},"wrangler"," と ",[45,592,593],{},"workerd"," で動くので本番用ではないが、どういうものかは分かる。データは ",[45,596,597],{},".wrangler"," 配下に置かれる。",[14,600,601,602,590,605,608,609,612],{},"開発しながら触るなら ",[45,603,604],{},"pnpm dev-server",[45,606,607],{},"pnpm dev-client"," を並行して起動し、",[45,610,611],{},"http://localhost:3000"," を開く。",[296,614,616],{"id":615},"_2-自社アカウントへの配置を準備する","2. 自社アカウントへの配置を準備する",[14,618,619],{},"スターターを使う。",[175,621,623],{"className":539,"code":622,"language":541,"meta":180,"style":180},"git clone https://github.com/cloudflare/cloudflare-os-starter.git\ncd cloudflare-os-starter\ngit submodule update --init\npnpm install\npnpm --dir cloudflare-os install\npnpm exec wrangler login\n",[45,624,625,634,641,655,661,673],{"__ignoreMap":180},[184,626,627,629,631],{"class":186,"line":187},[184,628,549],{"class":548},[184,630,553],{"class":552},[184,632,633],{"class":552}," https://github.com/cloudflare/cloudflare-os-starter.git\n",[184,635,636,638],{"class":186,"line":193},[184,637,562],{"class":561},[184,639,640],{"class":552}," cloudflare-os-starter\n",[184,642,643,645,648,651],{"class":186,"line":199},[184,644,549],{"class":548},[184,646,647],{"class":552}," submodule",[184,649,650],{"class":552}," update",[184,652,654],{"class":653},"snbK4"," --init\n",[184,656,657,659],{"class":186,"line":205},[184,658,570],{"class":548},[184,660,573],{"class":552},[184,662,663,665,668,671],{"class":186,"line":211},[184,664,570],{"class":548},[184,666,667],{"class":653}," --dir",[184,669,670],{"class":552}," cloudflare-os",[184,672,573],{"class":552},[184,674,675,677,680,683],{"class":186,"line":217},[184,676,570],{"class":548},[184,678,679],{"class":552}," exec",[184,681,682],{"class":552}," wrangler",[184,684,685],{"class":552}," login\n",[296,687,689],{"id":688},"_3-サインインの経路を作る","3. サインインの経路を作る",[14,691,692,693,696],{},"Cloudflare Access で self-hosted のアプリケーションを作り、ワークショップ用のホスト名（",[45,694,695],{},"os.example.com"," のような、自社ゾーン内の名前）を割り当てる。作成後に表示される audience tag を控えておく。",[14,698,699],{},"Zero Trust は50ユーザーまで無料で、それを超えると1人あたり月額7ドル（年払い）になる。小さな組織なら当面は無料枠に収まる。",[296,701,703],{"id":702},"_4-deploymentjsonc-を埋める","4. deployment.jsonc を埋める",[14,705,706],{},"設定はこのファイル1つに集約されている。",[175,708,710],{"className":177,"code":709,"language":179,"meta":180,"style":180},"{\n  \"accountId\": \"\u003CCLOUDFLARE_ACCOUNT_ID>\",\n  \"workers\": {\n    \"workshop\": { \"name\": \"\u003CWORKSHOP_WORKER_NAME>\", \"route\": { \"customDomain\": \"os.example.com\" } },\n    \"context\": { \"name\": \"\u003CCONTEXT_WORKER_NAME>\" },\n    \"customGatekeeper\": { \"name\": \"\u003CCUSTOM_GATEKEEPER_WORKER_NAME>\" },\n    \"errorReporter\": { \"name\": \"\u003CERROR_REPORTER_WORKER_NAME>\" }\n  },\n  \"access\": {\n    \"issuer\": \"https://\u003CTEAM_NAME>.cloudflareaccess.com\",\n    \"audience\": \"\u003CACCESS_AUDIENCE>\",\n    \"admins\": [\"\u003CADMIN_EMAIL>\"]\n  },\n  \"aiGateway\": { \"enabled\": true, \"providers\": [\"anthropic\", \"openai\"] },\n  \"resources\": {\n    \"blueprintsKvNamespaceId\": null,\n    \"avatarsKvNamespaceId\": null,\n    \"blueprintContentBucket\": null\n  }\n}\n",[45,711,712,717,722,727,732,737,742,747,753,759,765,771,777,782,788,794,800,806,812,818],{"__ignoreMap":180},[184,713,714],{"class":186,"line":187},[184,715,716],{},"{\n",[184,718,719],{"class":186,"line":193},[184,720,721],{},"  \"accountId\": \"\u003CCLOUDFLARE_ACCOUNT_ID>\",\n",[184,723,724],{"class":186,"line":199},[184,725,726],{},"  \"workers\": {\n",[184,728,729],{"class":186,"line":205},[184,730,731],{},"    \"workshop\": { \"name\": \"\u003CWORKSHOP_WORKER_NAME>\", \"route\": { \"customDomain\": \"os.example.com\" } },\n",[184,733,734],{"class":186,"line":211},[184,735,736],{},"    \"context\": { \"name\": \"\u003CCONTEXT_WORKER_NAME>\" },\n",[184,738,739],{"class":186,"line":217},[184,740,741],{},"    \"customGatekeeper\": { \"name\": \"\u003CCUSTOM_GATEKEEPER_WORKER_NAME>\" },\n",[184,743,744],{"class":186,"line":223},[184,745,746],{},"    \"errorReporter\": { \"name\": \"\u003CERROR_REPORTER_WORKER_NAME>\" }\n",[184,748,750],{"class":186,"line":749},8,[184,751,752],{},"  },\n",[184,754,756],{"class":186,"line":755},9,[184,757,758],{},"  \"access\": {\n",[184,760,762],{"class":186,"line":761},10,[184,763,764],{},"    \"issuer\": \"https://\u003CTEAM_NAME>.cloudflareaccess.com\",\n",[184,766,768],{"class":186,"line":767},11,[184,769,770],{},"    \"audience\": \"\u003CACCESS_AUDIENCE>\",\n",[184,772,774],{"class":186,"line":773},12,[184,775,776],{},"    \"admins\": [\"\u003CADMIN_EMAIL>\"]\n",[184,778,780],{"class":186,"line":779},13,[184,781,752],{},[184,783,785],{"class":186,"line":784},14,[184,786,787],{},"  \"aiGateway\": { \"enabled\": true, \"providers\": [\"anthropic\", \"openai\"] },\n",[184,789,791],{"class":186,"line":790},15,[184,792,793],{},"  \"resources\": {\n",[184,795,797],{"class":186,"line":796},16,[184,798,799],{},"    \"blueprintsKvNamespaceId\": null,\n",[184,801,803],{"class":186,"line":802},17,[184,804,805],{},"    \"avatarsKvNamespaceId\": null,\n",[184,807,809],{"class":186,"line":808},18,[184,810,811],{},"    \"blueprintContentBucket\": null\n",[184,813,815],{"class":186,"line":814},19,[184,816,817],{},"  }\n",[184,819,821],{"class":186,"line":820},20,[184,822,226],{},[14,824,825,826,829],{},"ストレージの各 ID は ",[45,827,828],{},"null"," のままにしておくと Wrangler が作ってくれる。既存のものを使うなら ID を書く。",[296,831,833],{"id":832},"_5-モデルの鍵を登録する","5. モデルの鍵を登録する",[14,835,836],{},"ダッシュボードで AI > AI Gateway を開き、対象のゲートウェイの Provider Keys から提供元の API キーを登録する。Secrets Store の秘密が自動で作られる。",[14,838,839],{},"API から作る場合は命名規則がある。",[175,841,846],{"className":842,"code":844,"language":845},[843],"language-text","{gateway_id}_{provider_slug}_{alias}\n","text",[45,847,844],{"__ignoreMap":180},[14,849,850,851,854],{},"たとえば ",[45,852,853],{},"my-gateway_anthropic_default"," となる。アプリケーション側からは、提供元のキーではなくゲートウェイのトークンを渡す形になる。",[175,856,858],{"className":539,"code":857,"language":541,"meta":180,"style":180},"curl ... -H 'cf-aig-authorization: Bearer {CF_AIG_TOKEN}'\n",[45,859,860],{"__ignoreMap":180},[184,861,862,865,868,871,875,878],{"class":186,"line":187},[184,863,864],{"class":548},"curl",[184,866,867],{"class":552}," ...",[184,869,870],{"class":653}," -H",[184,872,874],{"class":873},"sMJiu"," '",[184,876,877],{"class":552},"cf-aig-authorization: Bearer {CF_AIG_TOKEN}",[184,879,880],{"class":873},"'\n",[14,882,883,884,887],{},"用途ごとに鍵を分けるなら ",[45,885,886],{},"cf-aig-byok-alias"," ヘッダで別名を指定する。ただし既定の別名が見つからない場合は Unified Billing 側にフォールバックする挙動になっているので、両方を有効にしているときは意図しない請求先に流れないか確認しておきたい。",[296,889,891],{"id":890},"_6-検証してデプロイする","6. 検証してデプロイする",[175,893,895],{"className":539,"code":894,"language":541,"meta":180,"style":180},"pnpm check\npnpm deploy\n",[45,896,897,904],{"__ignoreMap":180},[184,898,899,901],{"class":186,"line":187},[184,900,570],{"class":548},[184,902,903],{"class":552}," check\n",[184,905,906,908],{"class":186,"line":193},[184,907,570],{"class":548},[184,909,910],{"class":552}," deploy\n",[14,912,913,914,917],{},"デプロイ後の確認は3点。ホスト名にアクセスして Access の認証が要求されること、",[45,915,916],{},"/admin"," を開いて自分のメールアドレスが管理者として認識されていること、Gatekeeper が動作すること。",[57,919,920],{"id":920},"費用の見積もり方",[14,922,923],{},"推論代のほかにかかるものを整理しておく。",[512,925,926,932,938,944],{},[515,927,928,931],{},[37,929,930],{},"Zero Trust",": 50ユーザーまで無料。超過分は1人あたり月額7ドル（年払い）",[515,933,934,937],{},[37,935,936],{},"Workers、KV、R2 ほか",": 従量課金。開発者向け製品はまとめた「開発者プラン」がなく、それぞれの使用量で課金される",[515,939,940,943],{},[37,941,942],{},"AI Gateway 自体",": すべてのプランで利用可能。無料枠がある",[515,945,946,949],{},[37,947,948],{},"推論",": 選んだ経路に応じて各提供元、または Cloudflare へ",[14,951,952],{},"読めないのは推論代だけで、それも上限を設定できる。まず小さな部署で回して単価を掴んでから広げるのが安全だろう。",[57,954,955],{"id":955},"まとめ",[512,957,958,961,964,970,973,976,979],{},[515,959,960],{},"Cloudflare OS の推論は例外なく AI Gateway を通る。モデルの差し込み口はここ1か所しかない",[515,962,963],{},"ChatGPT のプランに含まれる Codex の枠は OAuth の別経路にあり、AI Gateway からは呼べない",[515,965,966,967,969],{},"Claude Code から ",[45,968,47],{}," を呼ぶ形で定額枠が生きるのは、本人の端末で本人のアカウントを使っているからだ。ここをサーバーに持っていくと前提が崩れる",[515,971,972],{},"Sandbox SDK でコンテナを立てれば codex CLI を Cloudflare 上で動かすこと自体はできる。ただし Cloudflare OS の標準機能ではなく、認証と規約の壁が残り、公式も自動化には API キーを勧めている",[515,974,975],{},"仮に動かせても、定額でまかなえるのは codex に投げた作業だけで、ワークスペースの会話は従量課金のまま",[515,977,978],{},"実際の選択肢は、自分の API キーを預けるか、支払いを Cloudflare にまとめるか、Workers AI で済ませるかの3つ。すでに法人契約があるなら1つ目から始めるのが早い",[515,980,981],{},"定額にはできないが、予算の上限とレート制限で使いすぎは止められる。組織導入で本当に要るのはそちらのはずだ",[14,983,984,985,987],{},"Codex や Claude Code の定額枠は、開発者ひとりの生産性を上げる道具として設計されている。組織全員に配るエージェント基盤の燃料として使うものではない。手元で ",[45,986,47],{}," を呼ぶ運用はそのまま続ければよく、共有基盤の推論費用は基盤側の予算管理で締める。この2つを分けて考えるのが、いちばん摩擦が少ない。",[57,989,990],{"id":990},"出典",[512,992,993,999,1006,1013,1019,1026,1033,1040,1046,1053,1059,1066],{},[515,994,995],{},[18,996,998],{"href":20,"target":21,"rel":997},[23,24],"Cloudflare OS: an open platform for agents, apps, and work（Cloudflare Blog）",[515,1000,1001],{},[18,1002,1005],{"href":1003,"target":21,"rel":1004},"https://www.cloudflare.com/press/press-releases/2026/cloudflare-os-is-the-first-ai-workspace-built-around-how-companies-actually-work/",[23,24],"Cloudflare OS Is the First AI Workspace Built Around How Companies Actually Work（プレスリリース）",[515,1007,1008],{},[18,1009,1012],{"href":1010,"target":21,"rel":1011},"https://github.com/cloudflare/cloudflare-os",[23,24],"cloudflare/cloudflare-os（GitHub）",[515,1014,1015],{},[18,1016,1018],{"href":166,"target":21,"rel":1017},[23,24],"cloudflare/cloudflare-os-starter（GitHub）",[515,1020,1021],{},[18,1022,1025],{"href":1023,"target":21,"rel":1024},"https://developers.cloudflare.com/ai-gateway/configuration/bring-your-own-keys/",[23,24],"BYOK (Store Keys)（Cloudflare AI Gateway docs）",[515,1027,1028],{},[18,1029,1032],{"href":1030,"target":21,"rel":1031},"https://developers.cloudflare.com/ai-gateway/features/dynamic-routing/",[23,24],"Dynamic routing（Cloudflare AI Gateway docs）",[515,1034,1035],{},[18,1036,1039],{"href":1037,"target":21,"rel":1038},"https://developers.cloudflare.com/changelog/post/2026-08-07-workers-ai-unified-billing/",[23,24],"Workers AI and AI Gateway unify model access and billing（Changelog）",[515,1041,1042],{},[18,1043,1045],{"href":263,"target":21,"rel":1044},[23,24],"Authentication（Codex ドキュメント）",[515,1047,1048],{},[18,1049,1052],{"href":1050,"target":21,"rel":1051},"https://learn.chatgpt.com/docs/non-interactive-mode",[23,24],"Non-interactive mode（Codex ドキュメント）",[515,1054,1055],{},[18,1056,1058],{"href":362,"target":21,"rel":1057},[23,24],"Sandbox SDK Overview（Cloudflare docs）",[515,1060,1061],{},[18,1062,1065],{"href":1063,"target":21,"rel":1064},"https://developers.cloudflare.com/changelog/post/2026-04-13-containers-sandbox-ga/",[23,24],"Containers and Sandboxes are now generally available（Changelog）",[515,1067,1068],{},[18,1069,1071],{"href":243,"target":21,"rel":1070},[23,24],"Providers（Pi Coding Agent ドキュメント）",[1073,1074,1075],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}",{"title":180,"searchDepth":193,"depth":193,"links":1077},[1078,1079,1080,1085,1091,1097,1106,1107,1108],{"id":59,"depth":193,"text":60},{"id":131,"depth":193,"text":132},{"id":253,"depth":193,"text":254,"children":1081},[1082,1083,1084],{"id":298,"depth":199,"text":298},{"id":307,"depth":199,"text":308},{"id":320,"depth":199,"text":321},{"id":346,"depth":193,"text":347,"children":1086},[1087,1088,1089,1090],{"id":380,"depth":199,"text":381},{"id":390,"depth":199,"text":391},{"id":410,"depth":199,"text":411},{"id":420,"depth":199,"text":420},{"id":433,"depth":193,"text":434,"children":1092},[1093,1094,1095,1096],{"id":449,"depth":199,"text":450},{"id":462,"depth":199,"text":463},{"id":472,"depth":199,"text":473},{"id":492,"depth":199,"text":492},{"id":504,"depth":193,"text":504,"children":1098},[1099,1100,1101,1102,1103,1104,1105],{"id":510,"depth":199,"text":510},{"id":532,"depth":199,"text":533},{"id":615,"depth":199,"text":616},{"id":688,"depth":199,"text":689},{"id":702,"depth":199,"text":703},{"id":832,"depth":199,"text":833},{"id":890,"depth":199,"text":891},{"id":920,"depth":193,"text":920},{"id":955,"depth":193,"text":955},{"id":990,"depth":193,"text":990},null,"組織にAIエージェントを配る基盤として公開された Cloudflare OS について、推論がどの経路を通るか、ChatGPT プランに含まれる Codex の枠を流用できるか、実際に何を用意すればデプロイできるかを公開情報から整理した。","md",{},true,"/cloudflare-os-model-setup",false,"2026-08-10T00:00:00.000Z",{"title":5,"description":1110},"2026-08/2026-08-10/cloudflare-os-model-setup",[1120,1121,1122,1123,1124],"Cloudflare","AIエージェント","Codex","LLM","組織導入","W5Zrs2xWc_Ss-piW5r_C3cWR-ebmRZNkkuWB4YakZMw",[],[1128,1132,1136,1140,1144],{"title":1129,"path":1130,"publishedAt":1131},"CloudflareのMonetization Gateway ｜ Googleより「決済のVisa」に近い理由","/cloudflare-monetization-gateway-x402","2026-07-08T00:00:00.000Z",{"title":1133,"path":1134,"publishedAt":1135},"Codex SDK と App Server は何が嬉しいのか","/codex-sdk-app-server-notes","2026-05-18T00:00:00.000Z",{"title":1137,"path":1138,"publishedAt":1139},"2026年5月13日の開発日記 - 教科書プロジェクト立ち上げ・都道府県クイズ・デプロイ高速化","/2026-05-13-diary","2026-05-13T00:00:00.000Z",{"title":1141,"path":1142,"publishedAt":1143},"電源を切ると直るバグを追う — ThinkPadキーボードのスクロールだけが死ぬ理由","/thinkpad-trackpoint-scroll-dies-after-sleep","2026-08-11T00:00:00.000Z",{"title":1145,"path":1146,"publishedAt":1147},"「7月28日のMCP更新でAIの自律SEOが現実になった」は本当か","/mcp-2026-07-28-autonomous-seo-fact-check","2026-08-04T00:00:00.000Z","https://log.eurekapu.com/og/blog/cloudflare-os-model-setup.png?v=2026-08-10T00%3A00%3A00.000Z&title=Cloudflare%20OS%20%E3%81%AB%E7%94%9F%E6%88%90AI%E3%82%92%E3%81%A9%E3%81%86%E5%85%A5%E3%82%8C%E3%82%8B%E3%81%8B%20%E2%80%94%20Codex%20%E3%81%AE%E5%AE%9A%E9%A1%8D%E6%9E%A0%E3%81%AF%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84&author=Kei%20Komatsu&sig=f094f57820f01a14",1786424457169]