Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

OpenCode

最終更新 Markdown で表示Agent セットアップ

OpenCode は、カスタムプロバイダー設定に対応するオープンソースのコーディングエージェントです。組み込みプロバイダーを AI Gateway に向けると、OpenCode からのモデルリクエストを観測・制御できます。

前提条件

開始前に次が必要です。

ゲートウェイトークンで接続する

この方法では、認証済みゲートウェイ とそのゲートウェイトークンも必要です。トークンには Run 権限が必要です。Cloudflare のアカウント ID も必要です。確認方法は アカウント ID とゾーン ID を見つける を参照してください。

  1. ゲートウェイトークンを CF_AIG_TOKEN 環境変数に設定します。次のコマンドは現在のセッション向けです。永続化するには、シェルのプロファイルに追加します。

    <CF_AIG_TOKEN> をゲートウェイトークンに置き換えます。

    export CF_AIG_TOKEN="<CF_AIG_TOKEN>"
    $env:CF_AIG_TOKEN = "<CF_AIG_TOKEN>"
  2. プロジェクトルートに opencode.json を作成します。<ACCOUNT_ID><GATEWAY_ID> を、アカウント ID とゲートウェイスラッグに置き換えます。

    opencode.jsonjson
    {
      "$schema": "https://opencode.ai/config.json",
      "share": "disabled",
      "disabled_providers": ["opencode"],
      "enabled_providers": ["anthropic", "openai", "google", "xai"],
      "provider": {
        "anthropic": {
          "name": "Anthropic through Cloudflare AI Gateway",
          "options": {
            "baseURL": "https://gateway.ai.cloudflare.com/v1/<ACCOUNT_ID>/<GATEWAY_ID>/anthropic/v1",
            "apiKey": "",
            "headers": {
              "cf-aig-authorization": "Bearer {env:CF_AIG_TOKEN}"
            }
          }
        },
        "openai": {
          "name": "OpenAI through Cloudflare AI Gateway",
          "options": {
            "baseURL": "https://gateway.ai.cloudflare.com/v1/<ACCOUNT_ID>/<GATEWAY_ID>/openai",
            "apiKey": "",
            "headers": {
              "cf-aig-authorization": "Bearer {env:CF_AIG_TOKEN}"
            }
          }
        },
        "google": {
          "name": "Google AI Studio through Cloudflare AI Gateway",
          "options": {
            "baseURL": "https://gateway.ai.cloudflare.com/v1/<ACCOUNT_ID>/<GATEWAY_ID>/google-ai-studio/v1beta",
            "apiKey": "",
            "headers": {
              "cf-aig-authorization": "Bearer {env:CF_AIG_TOKEN}"
            }
          }
        },
        "xai": {
          "name": "xAI through Cloudflare AI Gateway",
          "options": {
            "baseURL": "https://gateway.ai.cloudflare.com/v1/<ACCOUNT_ID>/<GATEWAY_ID>/grok/v1",
            "apiKey": "",
            "headers": {
              "cf-aig-authorization": "Bearer {env:CF_AIG_TOKEN}"
            }
          }
        }
      }
    }

    apiKey の値は空のままにします。プロバイダーの認証情報は、Unified Billing または保存済みプロバイダーキー経由で AI Gateway が供給します。default エイリアスなしの保存キーを使う場合は、そのプロバイダーの headers オブジェクトに cf-aig-byok-alias ヘッダー を追加します。使わないプロバイダーは削除します。その他の設定は OpenCode providers を参照してください。

  3. OpenCode を起動し、設定済みのプロバイダーとモデルを選びます。

    opencode

トラフィックが AI Gateway に届いているかは、動作確認 を参照してください。

Cloudflare Access と使う

ゲートウェイが Cloudflare Access で保護されている場合、OpenCode はゲートウェイトークンの代わりに、有効期限の短い Access トークンで認証できます。設定を中央でホストし、ユーザーはログインコマンド 1 つで接続することもできます。

この構成には、AI Gateway の カスタムドメイン、各ユーザー端末の cloudflared、設定ファイル 2 つの公開 HTTPS 配置先が必要です。カスタムドメイン付きの R2 バケット を使えます。

ファイルには設定だけがあり、認証情報は含みません。Single Redirect が、AI Gateway カスタムドメインへの /.well-known/opencode リクエストを、ディスカバリーファイルへ送ります。

ユーザーは、グローバル設定またはプロジェクト設定でリモート設定を上書きできます。組織全体の設定を強制するには、OpenCode managed settings を参照してください。

次の例では、AI Gateway ドメインに ai.example.com、設定ホストに config.example.com を使います。両方のホスト名を自分の値に置き換えてください。

  1. OpenCode プロジェクトの外で、ゲートウェイトークンで接続するopencode.json をコピーします。各プロバイダーの baseURL を次の値に置き換えます。

    プロバイダー Base URL
    Anthropic https://ai.example.com/anthropic/v1
    OpenAI https://ai.example.com/openai
    Google https://ai.example.com/google-ai-studio/v1beta
    xAI https://ai.example.com/grok/v1

    各プロバイダーの headers オブジェクトを、次の値に置き換えます。

    {
      "cf-access-token": "{env:TOKEN}",
      "X-Requested-With": "XMLHttpRequest"
    }
  2. opencode.json を公開 HTTPS ホストへアップロードします。その URL が、認証なしで想定どおりの JSON を返すことを確認します。

    R2 を使う場合は、オブジェクトをバケットにアップロードし、カスタムドメインを接続 します。例のファイルは https://config.example.com/opencode.json で取得できる必要があります。

    プロジェクト設定やグローバルな OpenCode 設定に、別コピーを残さないでください。ローカル設定はリモート設定より優先され、あとからのホスト側更新が適用されなくなります。

  3. opencode ディスカバリーファイルを作成します。remote_config.url に、opencode.json の公開 URL を設定します。

    opencodejson
    {
      "auth": {
        "command": [
          "cloudflared",
          "access",
          "login",
          "--no-verbose",
          "-app=https://ai.example.com/"
        ],
        "env": "TOKEN"
      },
      "remote_config": {
        "url": "https://config.example.com/opencode.json"
      }
    }

    OpenCode は認証コマンドを実行し、その出力を {env:TOKEN} として使えます。その値を、リモートのプロバイダー設定に代入します。

  4. opencode を公開 HTTPS ホストへアップロードします。https://config.example.com/opencode が、認証なしでディスカバリー JSON を返すことを確認します。

  5. AI Gateway カスタムドメインのゾーンで、次の設定の Single Redirect を作成 します。

    • Rule name: OpenCode discovery
    • Custom filter expression: (http.host eq "ai.example.com" and http.request.uri.path eq "/.well-known/opencode")
    • Target URL: https://config.example.com/opencode
    • Status code: 302
    • Preserve query string: Off
  6. 有効な Access セッションがないブラウザーで、https://ai.example.com/.well-known/opencode を開きます。Access のプロンプトなしでディスカバリー JSON が返ることを確認します。

  7. OpenCode を接続するには、次を実行します。

    opencode auth login https://ai.example.com

    求められたら Access のログインを完了します。OpenCode は得られた認証情報をローカルに保存し、リモート設定を読み込みます。Access セッションが切れたら、同じコマンドを再実行します。

  8. OpenCode を起動し、設定済みのプロバイダーとモデルを選びます。

    opencode

役に立ちましたか?