メインコンテンツへスキップ
クイックスタート、QA ランナー、ユニット/統合スイート、Docker フローについては、 テストを参照してください。このページでは、ライブ(ネットワークに触れる)テストを扱います: モデルマトリクス、CLI バックエンド、ACP、メディアプロバイダー、認証情報の扱い。

ライブ: ローカルスモークコマンド

アドホックなライブチェックの前に、必要なプロバイダーキーをプロセス環境へエクスポートします。 安全なメディアスモーク:
pnpm openclaw infer tts convert --local --json \
  --text "OpenClaw live smoke." \
  --output /tmp/openclaw-live-smoke.mp3
安全な音声通話準備スモーク:
pnpm openclaw voicecall setup --json
pnpm openclaw voicecall smoke --to "+15555550123"
voicecall smoke は、--yes も指定されていない限りドライランです。実際に発信するつもりがある場合にのみ --yes を使ってください。Twilio、Telnyx、Plivo では、準備チェックが成功するには公開 Webhook URL が必要です。ローカル/プライベートの loopback URL は、これらのプロバイダーから到達できないため拒否されます。

ライブ: Android ノード capability スイープ

  • テスト: src/gateway/android-node.capabilities.live.test.ts
  • スクリプト: pnpm android:test:integration
  • 目的: 接続済み Android ノードが現在広告しているすべてのコマンドを呼び出し、コマンド契約の動作を検証します。
  • スコープ:
    • 事前条件付き/手動セットアップ(このスイートはアプリのインストール/実行/ペアリングを行いません)。
    • 選択した Android ノードに対するコマンドごとの gateway node.invoke 検証。
  • 必須の事前セットアップ:
    • Android アプリがすでに gateway に接続され、ペアリング済みであること。
    • アプリをフォアグラウンドに保つこと。
    • 成功を期待する capability について、権限/キャプチャ同意が付与されていること。
  • 任意のターゲット上書き:
    • OPENCLAW_ANDROID_NODE_ID または OPENCLAW_ANDROID_NODE_NAME
    • OPENCLAW_ANDROID_GATEWAY_URL / OPENCLAW_ANDROID_GATEWAY_TOKEN / OPENCLAW_ANDROID_GATEWAY_PASSWORD
  • Android セットアップの詳細: Android アプリ

ライブ: モデルスモーク(プロファイルキー)

ライブモデルテストは、失敗を分離できるように 2 つのレイヤーに分かれています:
  • 「直接モデル」は、指定されたキーでプロバイダー/モデルがそもそも応答できるかを示します。
  • 「Gateway スモーク」は、そのモデルで gateway+agent パイプライン全体が動作するかを示します(セッション、履歴、ツール、サンドボックスポリシーなど)。
以下の curated モデルリストは src/agents/live-model-filter.ts にあり、時間とともに変わります。このページではなく、そこの配列を信頼できる情報源として扱ってください。 MiniMax M3 は、デフォルトのプロバイダー/モデル参照として minimax/MiniMax-M3 を使います。

レイヤー 1: 直接モデル completion(gateway なし)

  • テスト: src/agents/models.profiles.live.test.ts
  • 目的:
    • 検出されたモデルを列挙する
    • getApiKeyForModel を使って認証情報があるモデルを選択する
    • モデルごとに小さな completion を実行する(必要に応じて対象を絞ったリグレッションも実行)
  • 有効化方法:
    • pnpm test:live(または Vitest を直接呼び出す場合は OPENCLAW_LIVE_TEST=1
    • このスイートを実際に実行するには OPENCLAW_LIVE_MODELS=modernsmall、または allmodern のエイリアス)を設定します。そうしない場合はスキップされるため、pnpm test:live 単体では gateway スモークに集中します。
  • モデルの選択方法:
    • OPENCLAW_LIVE_MODELS=modern は curated された高シグナル優先リストを実行します(ライブ: モデルマトリクスを参照)
    • OPENCLAW_LIVE_MODELS=small は curated された小型モデル優先リストを実行します
    • OPENCLAW_LIVE_MODELS=allmodern のエイリアスです
    • または OPENCLAW_LIVE_MODELS="openai/gpt-5.5,anthropic/claude-opus-4-6,..."(カンマ区切りの許可リスト)
    • ローカル Ollama の小型モデル実行はデフォルトで http://127.0.0.1:11434 を使います。LAN、カスタム、または Ollama Cloud エンドポイントの場合にのみ OPENCLAW_LIVE_OLLAMA_BASE_URL を設定します。
    • modern/all と small のスイープは、デフォルトで curated リストの長さを上限にします。選択プロファイルの網羅的なスイープには OPENCLAW_LIVE_MAX_MODELS=0 を設定し、より小さい上限には正の数を設定します。
    • 網羅的なスイープでは、直接モデルテスト全体のタイムアウトに OPENCLAW_LIVE_TEST_TIMEOUT_MS を使います。デフォルト: 60 分。
    • 直接モデルプローブはデフォルトで 20 並列で実行されます。上書きするには OPENCLAW_LIVE_MODEL_CONCURRENCY を設定します。
  • プロバイダーの選択方法:
    • OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(カンマ区切りの許可リスト)
  • キーの取得元:
    • デフォルト: プロファイルストアと env フォールバック
    • プロファイルストアのみに強制するには OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 を設定します
  • これが存在する理由:
    • 「プロバイダー API が壊れている / キーが無効」と「gateway agent パイプラインが壊れている」を分離します
    • 小さく分離されたリグレッションを含みます(例: OpenAI Responses/Codex Responses の reasoning replay + tool-call フロー)

レイヤー 2: Gateway + dev agent スモーク(「@openclaw」が実際に行うこと)

  • テスト: src/gateway/gateway-models.profiles.live.test.ts
  • 目的:
    • インプロセス gateway を起動する
    • agent:dev:* セッションを作成/パッチする(実行ごとにモデルを上書き)
    • キーがあるモデルを反復処理し、次を検証する:
      • 「意味のある」応答(ツールなし)
      • 実際のツール呼び出しが動作する(read プローブ)
      • 任意の追加ツールプローブ(exec+read プローブ)
      • OpenAI リグレッションパス(tool-call-only -> follow-up)が動作し続ける
  • プローブの詳細(失敗をすばやく説明できるように):
    • read プローブ: テストが workspace に nonce ファイルを書き込み、agent にそれを read して nonce をそのまま返すよう依頼します。
    • exec+read プローブ: テストが agent に一時ファイルへ nonce を exec で書き込ませ、その後それを read で読み戻させます。
    • 画像プローブ: テストが生成された PNG(cat + ランダム化されたコード)を添付し、モデルが cat <CODE> を返すことを期待します。
    • 実装参照: src/gateway/gateway-models.profiles.live.test.tstest/helpers/live-image-probe.ts
  • 有効化方法:
    • pnpm test:live(または Vitest を直接呼び出す場合は OPENCLAW_LIVE_TEST=1
  • モデルの選択方法:
    • デフォルト: curated された高シグナル(modern)優先リスト
    • OPENCLAW_LIVE_GATEWAY_MODELS=small は curated された小型モデルリストを gateway+agent パイプライン全体で実行します
    • OPENCLAW_LIVE_GATEWAY_MODELS=allmodern のエイリアスです
    • または、絞り込むために OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(またはカンマ区切りリスト)を設定します
    • modern/all と small の gateway スイープは、デフォルトで curated リストの長さを上限にします。選択スイープを網羅的に行うには OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0 を設定し、より小さい上限には正の数を設定します。
  • プロバイダーの選択方法(「OpenRouter のすべて」を避ける):
    • OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(カンマ区切りの許可リスト)
  • ツール + 画像プローブは、このライブテストでは常に有効です:
    • read プローブ + exec+read プローブ(ツール負荷)
    • モデルが画像入力サポートを広告している場合、画像プローブが実行されます
    • フロー(概要):
      • テストが「CAT」+ ランダムコードを含む小さな PNG を生成します(test/helpers/live-image-probe.ts
      • agent 経由で attachments: [{ mimeType: "image/png", content: "<base64>" }] として送信します
      • Gateway が添付を images[] に解析します(src/gateway/server-methods/agent.ts + src/gateway/chat-attachments.ts
      • 埋め込み agent がマルチモーダル user message をモデルへ転送します
      • 検証: 返信に cat + コードが含まれること(OCR 許容: 軽微な誤りは許容)
自分のマシンで何をテストできるか(および正確な provider/model id)を確認するには、次を実行します:
openclaw models list
openclaw models list --json

ライブ: CLI バックエンドスモーク(Claude、Gemini、またはその他のローカル CLI)

  • テスト: src/gateway/gateway-cli-backend.live.test.ts
  • 目的: デフォルト設定に触れずに、ローカル CLI バックエンドを使って Gateway + agent パイプラインを検証します。
  • バックエンド固有のスモークデフォルトは、所有 Plugin の cli-backend.ts 定義にあります。
  • 有効化:
    • pnpm test:live(または Vitest を直接呼び出す場合は OPENCLAW_LIVE_TEST=1
    • OPENCLAW_LIVE_CLI_BACKEND=1
  • デフォルト:
    • デフォルトのプロバイダー/モデル: claude-cli/claude-sonnet-4-6
    • コマンド/引数/画像の動作は、所有 CLI バックエンド Plugin メタデータから取得されます。
  • 上書き(任意):
    • OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6"
    • OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/claude"
    • OPENCLAW_LIVE_CLI_BACKEND_ARGS='["-p","--output-format","json"]'
    • 実際の画像添付を送信するには OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1(パスはプロンプトに注入されます)。Docker レシピではデフォルトでオフです。
    • プロンプト注入ではなく CLI 引数として画像ファイルパスを渡すには OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"
    • IMAGE_ARG が設定されている場合に画像引数の渡し方を制御するには OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(または "list")。
    • 2 ターン目を送信して resume フローを検証するには OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1
    • 選択したモデルが切り替え先をサポートしている場合、Claude Sonnet -> Opus の同一セッション継続性プローブにオプトインするには OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1。Docker レシピを含め、デフォルトではオフです。
    • MCP/tool loopback プローブにオプトインするには OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1。Docker レシピではデフォルトでオフです。
例:
  OPENCLAW_LIVE_CLI_BACKEND=1 \
  OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6" \
  pnpm test:live src/gateway/gateway-cli-backend.live.test.ts
安価な Gemini MCP 設定スモーク:
OPENCLAW_LIVE_TEST=1 \
  pnpm test:live src/agents/cli-runner/bundle-mcp.gemini.live.test.ts
これは Gemini に応答生成を求めません。OpenClaw が Gemini に渡すものと同じシステム設定を書き込み、その後 gemini --debug mcp list を実行して、保存済みの transport: "streamable-http" サーバーが Gemini の HTTP MCP 形状に正規化され、ローカルの streamable-HTTP MCP サーバーへ接続できることを証明します。 Docker レシピ:
pnpm test:docker:live-cli-backend
単一プロバイダーの Docker レシピ:
pnpm test:docker:live-cli-backend:claude
pnpm test:docker:live-cli-backend:claude-subscription
pnpm test:docker:live-cli-backend:gemini
注記:
  • Docker ランナーは scripts/test-live-cli-backend-docker.sh にあります。
  • リポジトリの Docker イメージ内で、非 root の node ユーザーとしてライブ CLI バックエンドスモークを実行します。
  • 所有 Plugin から CLI スモークメタデータを解決し、その後対応する Linux CLI パッケージ(@anthropic-ai/claude-code または @google/gemini-cli)を OPENCLAW_DOCKER_CLI_TOOLS_DIR のキャッシュ済み書き込み可能 prefix にインストールします(デフォルト: ~/.cache/openclaw/docker-cli-tools)。
  • codex-cli はもはやバンドルされた CLI バックエンドではありません。代わりに Codex app-server ランタイムで openai/* を使ってください(ライブ: Codex app-server ハーネススモークを参照)。
  • pnpm test:docker:live-cli-backend:claude-subscription には、claudeAiOauth.subscriptionType を含む ~/.claude/.credentials.json または claude setup-token からの CLAUDE_CODE_OAUTH_TOKEN による、ポータブルな Claude Code サブスクリプション OAuth が必要です。まず Docker 内で直接 claude -p を証明し、その後 Anthropic API キーの env var を保持せずに Gateway CLI バックエンドを 2 ターン実行します。このサブスクリプションレーンでは、Claude MCP/tool と画像プローブはデフォルトで無効です。これは、サインイン済みサブスクリプションの使用上限を消費し、Anthropic が OpenClaw のリリースなしに Claude Agent SDK / claude -p の課金およびレート制限動作を変更できるためです。
  • Claude と Gemini は、上記のフラグを通じて同じプローブセット(テキストターン、画像分類、MCP cron ツール呼び出し、モデル切り替え継続性)をサポートしますが、これらのプローブはいずれもデフォルトでは実行されません。必要に応じてフラグごとにオプトインしてください。

ライブ: APNs HTTP/2 プロキシ到達性

  • テスト: src/infra/push-apns-http2.live.test.ts
  • 目的: ローカル HTTP CONNECT プロキシ経由で Apple の sandbox APNs エンドポイントへトンネルし、APNs HTTP/2 検証リクエストを送信し、Apple の実際の 403 InvalidProviderToken 応答がプロキシパス経由で返ってくることを検証します。
  • 有効化:
    • OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts
  • 任意のタイムアウト:
    • OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000

ライブ: ACP bind スモーク(/acp spawn ... --bind here

  • テスト: src/gateway/gateway-acp-bind.live.test.ts
  • 目的: ライブ ACP エージェントで実際の ACP 会話バインドフローを検証する:
    • /acp spawn <agent> --bind here を送信する
    • 合成メッセージチャネル会話をその場でバインドする
    • 同じ会話で通常のフォローアップを送信する
    • フォローアップがバインド済み ACP セッションのトランスクリプトに到達することを検証する
  • 有効化:
    • pnpm test:live src/gateway/gateway-acp-bind.live.test.ts
    • OPENCLAW_LIVE_ACP_BIND=1
  • デフォルト:
    • Docker 内の ACP エージェント: claude,codex,gemini
    • 直接 pnpm test:live ... を実行する場合の ACP エージェント: claude
    • 合成チャネル: Slack DM 形式の会話コンテキスト
    • ACP バックエンド: acpx
  • オーバーライド:
    • OPENCLAW_LIVE_ACP_BIND_AGENT=claude
    • OPENCLAW_LIVE_ACP_BIND_AGENT=codex
    • OPENCLAW_LIVE_ACP_BIND_AGENT=droid
    • OPENCLAW_LIVE_ACP_BIND_AGENT=gemini
    • OPENCLAW_LIVE_ACP_BIND_AGENT=opencode
    • OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,gemini
    • OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND='npx -y @agentclientprotocol/claude-agent-acp@<version>'
    • OPENCLAW_LIVE_ACP_BIND_CODEX_MODEL=gpt-5.5
    • OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL=opencode/kimi-k2.6
    • OPENCLAW_LIVE_ACP_BIND_IMAGE_PROBE=1(または on/true/yes)で画像プローブを強制的にオンにする。それ以外の値は強制的にオフにする。opencode 以外のすべてのエージェントではデフォルトで実行される。
    • OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1
    • OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.5
  • 注記:
    • このレーンは、テストが外部配信を装わずにメッセージチャネルのコンテキストを添付できるよう、管理者専用の合成 originating-route フィールドを使って Gateway の chat.send サーフェスを使用する。
    • OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND が未設定の場合、テストは選択された ACP ハーネスエージェントについて、組み込み acpx plugin の内蔵エージェントレジストリを使用する。
    • バインド済みセッションの cron MCP 作成はデフォルトでベストエフォート。これは、外部 ACP ハーネスがバインド/画像の証明に合格した後に MCP 呼び出しをキャンセルできるため。バインド後 cron プローブを厳格にするには OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1 を設定する。
例:
OPENCLAW_LIVE_ACP_BIND=1 \
  OPENCLAW_LIVE_ACP_BIND_AGENT=claude \
  pnpm test:live src/gateway/gateway-acp-bind.live.test.ts
Docker レシピ:
pnpm test:docker:live-acp-bind
単一エージェントの Docker レシピ:
pnpm test:docker:live-acp-bind:claude
pnpm test:docker:live-acp-bind:codex
pnpm test:docker:live-acp-bind:droid
pnpm test:docker:live-acp-bind:gemini
pnpm test:docker:live-acp-bind:opencode
Docker 注記:
  • Docker ランナーは scripts/test-live-acp-bind-docker.sh にある。
  • デフォルトでは、ACP バインドスモークを集約ライブ CLI エージェントに対して順番に実行する: claudecodex、その後 gemini
  • マトリクスを絞るには、OPENCLAW_LIVE_ACP_BIND_AGENTS=claudeOPENCLAW_LIVE_ACP_BIND_AGENTS=codexOPENCLAW_LIVE_ACP_BIND_AGENTS=droidOPENCLAW_LIVE_ACP_BIND_AGENTS=gemini、または OPENCLAW_LIVE_ACP_BIND_AGENTS=opencode を使用する。
  • 一致する CLI 認証素材をコンテナにステージングし、要求されたライブ CLI(@anthropic-ai/claude-code@openai/codexhttps://app.factory.ai/cli 経由の Factory Droid、@google/gemini-cli、または opencode-ai)がなければインストールする。ACP バックエンド自体は、公式 acpx plugin の組み込み acpx/runtime パッケージである。
  • Droid Docker バリアントは設定用に ~/.factory をステージングし、FACTORY_API_KEY を転送し、その API キーを必須とする。これはローカルの Factory OAuth/keyring 認証がコンテナに移植できないためである。ACPX の内蔵 droid exec --output-format acp レジストリエントリを使用する。
  • OpenCode Docker バリアントは厳格な単一エージェント回帰レーンである。OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(デフォルト opencode/kimi-k2.6)から一時的な OPENCODE_CONFIG_CONTENT デフォルトモデルを書き込む。
  • 直接の acpx CLI 呼び出しは、Gateway 外で挙動を比較するための手動/回避策パスに限られる。Docker ACP バインドスモークは OpenClaw の組み込み acpx ランタイムバックエンドを実行する。

ライブ: Codex app-server ハーネススモーク

  • 目的: 通常の gateway agent メソッドを通じて、plugin 所有の Codex ハーネスを検証する:
    • バンドルされた codex plugin を読み込む
    • openai/gpt-5.5 を選択する。これはデフォルトで OpenAI エージェントターンを Codex 経由にルーティングする
    • Codex ハーネスを選択した状態で、最初の gateway エージェントターンを openai/gpt-5.5 に送信する
    • 同じ OpenClaw セッションに 2 回目のターンを送信し、app-server スレッドを再開できることを検証する
    • 同じ gateway コマンドパスを通じて /codex status/codex models を実行する
    • 任意で、Guardian レビュー付きの昇格シェルプローブを 2 つ実行する: 承認されるべき無害な コマンドと、拒否されてエージェントが聞き返すべき偽シークレットアップロード
  • テスト: src/gateway/gateway-codex-harness.live.test.ts
  • 有効化: OPENCLAW_LIVE_CODEX_HARNESS=1
  • デフォルトモデル: openai/gpt-5.5
  • 任意の画像プローブ: OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1
  • 任意の MCP/ツールプローブ: OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1
  • 任意の Guardian プローブ: OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1
  • このスモークは provider/model agentRuntime.id: "codex" を強制するため、壊れた Codex ハーネスが OpenClaw に黙ってフォールバックして合格することはできない。
  • 認証: ローカル Codex サブスクリプションログインからの Codex app-server 認証。Docker スモークでは、該当する場合に非 Codex プローブ向けの OPENAI_API_KEY も提供でき、 任意でコピーされた ~/.codex/auth.json~/.codex/config.toml も使用できる。
ローカルレシピ:
OPENCLAW_LIVE_CODEX_HARNESS=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/gpt-5.5 \
  pnpm test:live -- src/gateway/gateway-codex-harness.live.test.ts
Docker レシピ:
pnpm test:docker:live-codex-harness
Docker 注記:
  • Docker ランナーは scripts/test-live-codex-harness-docker.sh にある。
  • OPENAI_API_KEY を渡し、存在する場合は Codex CLI 認証ファイルをコピーし、書き込み可能なマウント済み npm プレフィックスに @openai/codex をインストールし、ソースツリーをステージングしてから、Codex ハーネスのライブテストのみを実行する。
  • Docker では画像、MCP/ツール、Guardian プローブがデフォルトで有効になる。より絞ったデバッグ 実行が必要な場合は、OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0 または OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0 または OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0 を設定する。
  • Docker は同じ明示的な Codex ランタイム設定を使用するため、レガシーエイリアスや OpenClaw フォールバックで Codex ハーネス回帰を隠すことはできない。

推奨ライブレシピ

狭く明示的な許可リストが最速で、最も不安定になりにくい:
  • 単一モデル、直接(gateway なし):
    • OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts
  • 小型モデルの直接プロファイル:
    • OPENCLAW_LIVE_MODELS=small pnpm test:live src/agents/models.profiles.live.test.ts
  • 小型モデルの gateway プロファイル:
    • OPENCLAW_LIVE_GATEWAY_MODELS=small pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Ollama Cloud API スモーク:
    • OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 OPENCLAW_LIVE_OLLAMA_BASE_URL=https://ollama.com OPENCLAW_LIVE_OLLAMA_MODEL=glm-5.1:cloud OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=0 pnpm test:live -- extensions/ollama/ollama.live.test.ts
  • 単一モデル、gateway スモーク:
    • OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • 複数 provider をまたぐツール呼び出し:
    • OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Z.AI Coding Plan GLM-5.2 直接スモーク:
    • ZAI_CODING_LIVE_TEST=1 pnpm test:live src/agents/zai.live.test.ts
  • Google フォーカス(Gemini API キー + Antigravity):
    • Gemini(API キー): OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3-flash-preview" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
    • Antigravity(OAuth): OPENCLAW_LIVE_GATEWAY_MODELS="google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-pro-high" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Google adaptive thinking スモーク(プライベート QA CLI からの qa manual - OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 とソースチェックアウトが必要。QA 概要を参照):
    • Gemini 3 動的デフォルト: OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-3.1-pro-preview --alt-model google/gemini-3.1-pro-preview --message '/think adaptive Reply exactly: GEMINI_ADAPTIVE_OK' --timeout-ms 180000
    • Gemini 2.5 動的予算: OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-2.5-flash --alt-model google/gemini-2.5-flash --message '/think adaptive Reply exactly: GEMINI25_ADAPTIVE_OK' --timeout-ms 180000
注記:
  • google/... は Gemini API(API キー)を使用する。
  • google-antigravity/... は Antigravity OAuth ブリッジ(Cloud Code Assist 形式のエージェントエンドポイント)を使用する。
  • google-gemini-cli/... はマシン上のローカル Gemini CLI を使用する(別個の認証 + ツール上の癖がある)。
  • Gemini API と Gemini CLI:
    • API: OpenClaw は HTTP 経由で Google のホスト型 Gemini API を呼び出す(API キー / プロファイル認証)。これは多くのユーザーが「Gemini」と呼ぶものを指す。
    • CLI: OpenClaw はローカルの gemini バイナリをシェル実行する。独自の認証を持ち、挙動が異なる場合がある(ストリーミング/ツール対応/バージョンのずれ)。

ライブ: モデルマトリクス(カバー範囲)

ライブはオプトインなので、固定の「CI モデルリスト」はない。OPENCLAW_LIVE_MODELS=modern / OPENCLAW_LIVE_GATEWAY_MODELS=modern(およびそれらの all エイリアス)は、src/agents/live-model-filter.tsHIGH_SIGNAL_LIVE_MODEL_PRIORITY から curated priority list をこの優先順で実行する:
Provider/model注記
anthropic/claude-opus-4-8
anthropic/claude-sonnet-4-6
anthropic/claude-opus-4-7
google/gemini-3.1-pro-previewGemini API
google/gemini-3-flash-previewGemini API
moonshot/kimi-k2.7-code
anthropic/claude-opus-4-6
deepseek/deepseek-v4-flash
deepseek/deepseek-v4-pro
minimax/MiniMax-M3
openai/gpt-5.5
openrouter/openai/gpt-5.2-chat
openrouter/minimax/minimax-m2.7
opencode-go/glm-5
openrouter/ai21/jamba-large-1.7
xai/grok-4.3
zai/glm-5.1
fireworks/accounts/fireworks/models/glm-5p1
minimax-portal/minimax-m3
curated 小型モデル リスト(OPENCLAW_LIVE_MODELS=small / OPENCLAW_LIVE_GATEWAY_MODELS=small)は、SMALL_LIVE_MODEL_PRIORITY から:
Provider/model
lmstudio/qwen/qwen3.5-9b
vllm/qwen/qwen3-8b
sglang/qwen/qwen3-8b
ollama/gemma3:4b
openrouter/qwen/qwen3.5-9b
openrouter/z-ai/glm-5.1
openrouter/z-ai/glm-5
zai/glm-5.1
modern リストに関する注記:
  • codexcodex-cli プロバイダーは、デフォルトのモダンスイープから除外されています(CLI バックエンド/ACP の動作を対象としており、上で個別にテストされています)。openai/gpt-5.5 自体はデフォルトで Codex アプリサーバーハーネス経由でルーティングされます。ライブ: Codex アプリサーバーハーネススモークを参照してください。
  • fireworksgoogleopenrouterxai は、モダンスイープで明示的にキュレーションされたモデル ID のみを実行します(「このプロバイダーの全モデル」への自動展開はありません)。
  • 画像プローブを実行するため、OPENCLAW_LIVE_GATEWAY_MODELS には画像対応モデル(Claude/Gemini/OpenAI 系の vision バリアントなど)を少なくとも 1 つ含めてください。
手動で選んだクロスプロバイダーセットに対して、ツール + 画像付きの Gateway スモークを実行します。
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
キュレーション済みリスト外の追加カバレッジ(任意、使用可能な「tools」対応モデルを選択):
  • Mistral: mistral/...
  • Cerebras: cerebras/...(アクセス権がある場合)
  • LM Studio: lmstudio/...(ローカル。ツール呼び出しは API モードに依存)

アグリゲーター / 代替 Gateway

キーが有効な場合、次の経由でもテストできます。
  • OpenRouter: openrouter/...(数百のモデル。ツール+画像対応候補を見つけるには openclaw models scan を使用)
  • OpenCode: Zen は opencode/...、Go は opencode-go/...(認証は OPENCODE_API_KEY / OPENCODE_ZEN_API_KEY 経由)
ライブマトリックスに含められる追加プロバイダー(認証情報/設定がある場合):
  • 組み込み: anthropiccerebrasgithub-copilotgooglegoogle-antigravitygoogle-gemini-cligoogle-vertexgroqmistralopenaiopenrouteropencodeopencode-goxaizai
  • models.providers 経由(カスタムエンドポイント): minimax(クラウド/API)に加えて、任意の OpenAI/Anthropic 互換プロキシ(LM Studio、vLLM、LiteLLM など)
ドキュメントに「all models」をハードコードしないでください。信頼できる一覧は、あなたのマシンで discoverModels(...) が返す内容と、利用可能なキーの組み合わせです。

認証情報(絶対にコミットしない)

ライブテストは CLI と同じ方法で認証情報を検出します。実務上の意味は次のとおりです。
  • CLI が動作する場合、ライブテストも同じキーを見つけるはずです。
  • ライブテストが「no creds」と表示する場合は、openclaw models list / モデル選択をデバッグするのと同じ方法でデバッグしてください。
  • エージェントごとの認証プロファイル: ~/.openclaw/agents/<agentId>/agent/auth-profiles.json(ライブテストで「profile keys」と呼ぶもの)
  • 設定: ~/.openclaw/openclaw.json(または OPENCLAW_CONFIG_PATH
  • レガシー OAuth ディレクトリ: ~/.openclaw/credentials/(存在する場合はステージング済みライブホームにコピーされますが、メインのプロファイルキー保存先ではありません)
  • ローカルライブ実行では、アクティブな設定(agents.*.workspace / agentDir のオーバーライドを除去)と各エージェントの auth-profiles.json をコピーします。そのエージェントディレクトリの残りはコピーしないため、workspace/sandboxes/ のデータがステージング済みホームに到達することはありません。加えて、レガシー credentials/ ディレクトリと、サポートされる外部 CLI 認証ファイル/ディレクトリ(.claude.json.claude/.credentials.json.claude/settings*.json.claude/backups.codex/auth.json.codex/config.toml.gemini.minimax)を一時テストホームにコピーします。
env キーに依存したい場合は、ローカルテストの前にそれらを export するか、 以下の Docker ランナーで明示的な OPENCLAW_PROFILE_FILE を使用してください。

Deepgram ライブ(音声文字起こし)

  • テスト: extensions/deepgram/audio.live.test.ts
  • 有効化: DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts

BytePlus コーディングプランライブ

  • テスト: extensions/byteplus/live.test.ts
  • 有効化: BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts
  • 任意のモデルオーバーライド: BYTEPLUS_CODING_MODEL=ark-code-latest

ComfyUI ワークフローメディアライブ

  • テスト: extensions/comfy/comfy.live.test.ts
  • 有効化: OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
  • スコープ:
    • バンドル済み comfy の画像、動画、music_generate パスを実行します
    • plugins.entries.comfy.config.<capability> が設定されていない限り、各 capability をスキップします
    • comfy ワークフロー送信、ポーリング、ダウンロード、Plugin 登録を変更した後に有用です

画像生成ライブ

  • テスト: test/image-generation.runtime.live.test.ts
  • コマンド: pnpm test:live test/image-generation.runtime.live.test.ts
  • ハーネス: pnpm test:live:media image
  • スコープ:
    • 登録済みのすべての画像生成プロバイダーPluginを列挙します
    • プローブ前に、すでに export されているプロバイダー env vars を使用します
    • デフォルトでは保存済み認証プロファイルよりもライブ/env API キーを優先するため、auth-profiles.json 内の古いテストキーが実際のシェル認証情報を隠しません
    • 使用可能な認証/プロファイル/モデルがないプロバイダーをスキップします
    • 設定済みの各プロバイダーを共有画像生成ランタイム経由で実行します。
      • <provider>:generate
      • プロバイダーが edit サポートを宣言している場合は <provider>:edit
  • 現在対象のバンドル済みプロバイダー:
    • deepinfra
    • fal
    • google
    • minimax
    • openai
    • openrouter
    • vydra
    • xai
  • 任意の絞り込み:
    • OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="openai,google,openrouter,xai"
    • OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="deepinfra"
    • OPENCLAW_LIVE_IMAGE_GENERATION_MODELS="openai/gpt-image-2,google/gemini-3.1-flash-image-preview,openrouter/google/gemini-3.1-flash-image-preview,xai/grok-imagine-image"
    • OPENCLAW_LIVE_IMAGE_GENERATION_CASES="google:flash-generate,google:pro-edit,openrouter:generate,xai:default-generate,xai:default-edit"
  • 任意の認証動作:
    • OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 でプロファイルストア認証を強制し、env のみのオーバーライドを無視します
出荷済み CLI パスについては、プロバイダー/ランタイムのライブテストが 成功した後に infer スモークを追加します。
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_INFER_CLI_TEST=1 pnpm test:live -- test/image-generation.infer-cli.live.test.ts
openclaw infer image providers --json
openclaw infer image generate \
  --model google/gemini-3.1-flash-image-preview \
  --prompt "Minimal flat test image: one blue square on a white background, no text." \
  --output ./openclaw-infer-image-smoke.png \
  --json
これは CLI 引数解析、設定/デフォルトエージェント解決、バンドル済み Plugin 有効化、共有画像生成ランタイム、ライブプロバイダー リクエストをカバーします。Plugin の依存関係は、ランタイム読み込み前に存在していることが期待されます。

音楽生成ライブ

  • テスト: extensions/music-generation-providers.live.test.ts
  • 有効化: OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts
  • ハーネス: pnpm test:live:media music
  • スコープ:
    • 共有バンドル済み音楽生成プロバイダーパスを実行します
    • 現在 falgoogleminimaxopenrouter を対象にしています
    • プローブ前に、すでに export されているプロバイダー env vars を使用します
    • デフォルトでは保存済み認証プロファイルよりもライブ/env API キーを優先するため、auth-profiles.json 内の古いテストキーが実際のシェル認証情報を隠しません
    • 使用可能な認証/プロファイル/モデルがないプロバイダーをスキップします
    • 利用可能な場合、宣言済みの両方のランタイムモードを実行します。
      • prompt のみの入力で generate
      • プロバイダーが capabilities.edit.enabled を宣言している場合は edit
    • comfy は独自の別ライブファイルを持ち、この共有スイープには含まれません
  • 任意の絞り込み:
    • OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"
    • OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"
  • 任意の認証動作:
    • OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 でプロファイルストア認証を強制し、env のみのオーバーライドを無視します

動画生成ライブ

  • テスト: extensions/video-generation-providers.live.test.ts
  • 有効化: OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
  • ハーネス: pnpm test:live:media video
  • スコープ:
    • alibababyteplusdeepinfrafalgoogleminimaxopenaiopenrouterpixverseqwenrunwaytogethervydraxai にわたって共有バンドル済み動画生成プロバイダーパスを実行します
    • デフォルトではリリース向けに安全なスモークパスを使用します。プロバイダーごとに 1 つの text-to-video リクエスト、1 秒のロブスタープロンプト、および OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS からのプロバイダーごとの操作上限(デフォルトは 180000)です
    • プロバイダー側のキュー遅延がリリース時間を支配することがあるため、デフォルトでは FAL をスキップします。明示的に実行するには OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal" を渡す(またはスキップリストをクリアする)してください
    • プローブ前に、すでに export されているプロバイダー env vars を使用します
    • デフォルトでは保存済み認証プロファイルよりもライブ/env API キーを優先するため、auth-profiles.json 内の古いテストキーが実際のシェル認証情報を隠しません
    • 使用可能な認証/プロファイル/モデルがないプロバイダーをスキップします
    • デフォルトでは generate のみを実行します
    • 利用可能な場合に宣言済みの transform モードも実行するには、OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1 を設定します。
      • プロバイダーが capabilities.imageToVideo.enabled を宣言し、選択したプロバイダー/モデルが共有スイープでバッファー backed のローカル画像入力を受け付ける場合は imageToVideo
      • プロバイダーが capabilities.videoToVideo.enabled を宣言し、選択したプロバイダー/モデルが共有スイープでバッファー backed のローカル動画入力を受け付ける場合は videoToVideo
    • 共有スイープで現在宣言済みだがスキップされる imageToVideo プロバイダー:
      • vydra(バッファー backed のローカル画像入力はこのレーンではサポートされていません)
    • プロバイダー固有の Vydra カバレッジ:
      • OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts
      • このファイルは veo3 text-to-video に加えて、デフォルトでリモート画像 URL fixture を使用する kling image-to-video レーンを実行します(オーバーライドするには OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URL)。
    • 現在の videoToVideo ライブカバレッジ:
      • 選択したモデルが gen4_aleph に解決される場合のみ runway
    • 共有スイープで現在宣言済みだがスキップされる videoToVideo プロバイダー:
      • alibabagoogleopenaiqwenxai。これらのパスは現在、バッファー backed のローカル入力ではなくリモート http(s) 参照 URL を必要とするためです
  • 任意の絞り込み:
    • OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="deepinfra,google,openai,runway"
    • OPENCLAW_LIVE_VIDEO_GENERATION_MODELS="google/veo-3.1-fast-generate-preview,openai/sora-2,runway/gen4_aleph"
    • FAL を含むデフォルトスイープの全プロバイダーを含めるには OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS=""
    • アグレッシブなスモーク実行のため、各プロバイダー操作上限を下げるには OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000
  • 任意の認証動作:
    • OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 でプロファイルストア認証を強制し、env のみのオーバーライドを無視します

メディアライブハーネス

  • コマンド: pnpm test:live:media
  • エントリーポイント: test/e2e/qa-lab/media/hosted-media-provider-live.ts。これは選択された suite ごとに pnpm test:live -- <suite-test-file> を実行するため、Heartbeat と quiet-mode の動作は他の pnpm test:live 実行と一貫します。
  • 目的:
    • 共有の画像、音楽、動画ライブ suite を 1 つのリポジトリネイティブなエントリーポイントから実行します
    • 不足しているプロバイダー env vars を ~/.profile から自動読み込みします
    • デフォルトで、現在使用可能な認証を持つプロバイダーに各 suite を自動的に絞り込みます
  • フラグ:
    • --providers <csv> グローバルプロバイダーフィルター。--image-providers / --music-providers / --video-providers はフィルターを 1 つの suite にスコープします
    • --all-providers は認証ベースの自動フィルターをスキップします
    • --allow-empty は、フィルタリングの結果実行可能なプロバイダーが残らない場合に 0 で終了します
    • --quiet / --no-quiettest:live にそのまま渡されます
  • 例:
    • pnpm test:live:media
    • pnpm test:live:media image video --providers openai,google,minimax
    • pnpm test:live:media video --video-providers openai,runway --all-providers
    • pnpm test:live:media music --quiet

関連

  • テスト - unit、integration、QA、Docker suite