Testing
Pengujian: rangkaian pengujian langsung
Untuk memulai dengan cepat, runner QA, rangkaian pengujian unit/integrasi, dan alur Docker, lihat Pengujian. Halaman ini membahas pengujian live (yang mengakses jaringan): matriks model, backend CLI, ACP, penyedia media, dan penanganan kredensial.
Pengujian live vs gateway nyata Anda
Rangkaian pengujian live dan smoke ad hoc tidak boleh mengganggu gateway yang sudah melayani lalu lintas nyata (milik Anda atau operator lain):
- Gunakan gateway Anda sendiri: gunakan gateway dalam proses (Lapisan 2 di bawah) atau mulai
instans pengembangan dengan direktori status terisolasi (
OPENCLAW_STATE_DIR=<scratch>) dan port yang tersedia. Jangan bind port gateway default (18789) saat gateway nyata sedang berjalan di port tersebut. - Jangan
openclaw gateway stop/restart(atau padananlaunchctl/systemctl/tmux) layanan yang tidak Anda mulai dalam sesi ini — itu adalah instans live milik operator. Dapatkan persetujuan eksplisit terlebih dahulu. - Memerlukan data realistis? Salin status/DB live ke direktori status pengembangan Anda dan lakukan pengujian terhadap salinan tersebut. Migrasi langsung pada status gateway live juga memerlukan persetujuan eksplisit.
Live: perintah smoke lokal
Ekspor kunci penyedia yang diperlukan ke lingkungan proses sebelum menjalankan pemeriksaan live ad hoc.
Smoke media yang aman:
pnpm openclaw infer tts convert --local --json \ --text "Smoke live OpenClaw." \ --output /tmp/openclaw-live-smoke.mp3Smoke kesiapan panggilan suara yang aman:
pnpm openclaw voicecall setup --jsonpnpm openclaw voicecall smoke --to "+15555550123"voicecall smoke adalah simulasi kecuali --yes juga disertakan; gunakan --yes hanya
saat Anda bermaksud melakukan panggilan nyata. Untuk Twilio, Telnyx, dan Plivo,
pemeriksaan kesiapan yang berhasil memerlukan URL webhook publik - URL loopback
lokal/pribadi ditolak karena penyedia tersebut tidak dapat mengaksesnya.
Live: penyisiran kemampuan node Android
- Pengujian:
src/gateway/android-node.capabilities.live.test.ts - Skrip:
pnpm android:test:integration - Tujuan: panggil setiap perintah yang saat ini diiklankan oleh node Android yang terhubung dan pastikan perilaku kontrak perintah.
- Cakupan:
- Penyiapan manual dengan prasyarat (rangkaian pengujian tidak menginstal/menjalankan/memasangkan aplikasi).
- Validasi
node.invokeGateway per perintah untuk node Android yang dipilih.
- Penyiapan awal yang diperlukan:
- Aplikasi Android sudah terhubung + dipasangkan ke Gateway.
- Aplikasi tetap berada di latar depan.
- Izin/persetujuan pengambilan diberikan untuk kemampuan yang Anda harapkan lulus.
- Penimpaan target opsional:
OPENCLAW_ANDROID_NODE_IDatauOPENCLAW_ANDROID_NODE_NAME.OPENCLAW_ANDROID_GATEWAY_URL/OPENCLAW_ANDROID_GATEWAY_TOKEN/OPENCLAW_ANDROID_GATEWAY_PASSWORD.
- Detail lengkap penyiapan Android: Aplikasi Android
Live: smoke model (kunci profil)
Pengujian model live dibagi menjadi dua lapisan agar kegagalan dapat diisolasi:
- "Model langsung" menunjukkan apakah penyedia/model dapat memberikan jawaban dengan kunci yang diberikan.
- "Smoke Gateway" menunjukkan apakah seluruh pipeline Gateway+agen berfungsi untuk model tersebut (sesi, riwayat, alat, kebijakan sandbox, dan sebagainya).
Daftar model pilihan di bawah berada di src/agents/live-model-filter.ts dan
berubah seiring waktu; perlakukan larik di sana sebagai sumber kebenaran, bukan halaman
ini.
MiniMax M3 menggunakan minimax/MiniMax-M3 sebagai referensi penyedia/model default-nya.
Lapisan 1: Penyelesaian model langsung (tanpa Gateway)
- Pengujian:
src/agents/models.profiles.live.test.ts - Tujuan:
- Enumerasi model yang ditemukan
- Gunakan
getApiKeyForModeluntuk memilih model yang kredensialnya Anda miliki - Jalankan penyelesaian kecil per model (dan regresi tertarget jika diperlukan)
- Cara mengaktifkan:
pnpm test:live(atauOPENCLAW_LIVE_TEST=1jika memanggil Vitest secara langsung)- Tetapkan
OPENCLAW_LIVE_MODELS=modern,small, atauall(alias untukmodern) agar rangkaian pengujian ini benar-benar berjalan; jika tidak, rangkaian akan dilewati, sehinggapnpm test:livesendiri tetap berfokus pada smoke Gateway.
- Cara memilih model:
OPENCLAW_LIVE_MODELS=modernmenjalankan daftar prioritas pilihan dengan sinyal tinggi (lihat Live: matriks model)OPENCLAW_LIVE_MODELS=smallmenjalankan daftar prioritas model kecil pilihanOPENCLAW_LIVE_MODELS=alladalah alias untukmodern- atau
OPENCLAW_LIVE_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,..."(daftar izin yang dipisahkan koma) - Proses model kecil Ollama lokal secara default menggunakan
http://127.0.0.1:11434; tetapkanOPENCLAW_LIVE_OLLAMA_BASE_URLhanya untuk endpoint LAN, kustom, atau Ollama Cloud. - Penyisiran modern/semua dan kecil secara default menggunakan panjang daftar pilihannya sebagai batas; tetapkan
OPENCLAW_LIVE_MAX_MODELS=0untuk penyisiran profil terpilih yang menyeluruh atau angka positif untuk batas yang lebih kecil. - Penyisiran menyeluruh menggunakan
OPENCLAW_LIVE_TEST_TIMEOUT_MSuntuk batas waktu seluruh pengujian model langsung. Default: 60 menit. - Probe model langsung secara default berjalan dengan paralelisme 20 arah; tetapkan
OPENCLAW_LIVE_MODEL_CONCURRENCYuntuk menimpanya.
- Cara memilih penyedia:
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(daftar izin yang dipisahkan koma)
- Sumber kunci:
- Secara default: penyimpanan profil dan fallback lingkungan
- Tetapkan
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1untuk memberlakukan penyimpanan profil saja
- Alasan keberadaannya:
- Memisahkan "API penyedia rusak / kunci tidak valid" dari "pipeline agen Gateway rusak"
- Berisi regresi kecil dan terisolasi (contoh: pemutaran ulang penalaran OpenAI Responses/Codex Responses + alur pemanggilan alat)
Lapisan 2: Smoke Gateway + agen pengembangan (yang sebenarnya dilakukan "@openclaw")
- Pengujian:
src/gateway/gateway-models.profiles.live.test.ts - Tujuan:
- Jalankan Gateway dalam proses
- Buat/tambal sesi
agent:dev:*(penimpaan model per proses) - Iterasikan model yang memiliki kunci dan pastikan:
- respons yang "bermakna" (tanpa alat)
- pemanggilan alat nyata berfungsi (probe baca)
- probe alat tambahan opsional (probe eksekusi+baca)
- jalur regresi OpenAI (hanya pemanggilan alat -> tindak lanjut) tetap berfungsi
- Detail probe (agar Anda dapat menjelaskan kegagalan dengan cepat):
- Probe
read: pengujian menulis berkas nonce di ruang kerja dan meminta agen untukreadberkas tersebut serta menggemakan nonce. - Probe
exec+read: pengujian meminta agen untuk menulis nonce denganexecke berkas sementara, lalu membacanya kembali denganread. - Probe gambar: pengujian melampirkan PNG yang dihasilkan (kucing + kode acak) dan mengharapkan model mengembalikan
cat <CODE>. - Referensi implementasi:
src/gateway/gateway-models.profiles.live.test.tsdantest/helpers/live-image-probe.ts.
- Probe
- Cara mengaktifkan:
pnpm test:live(atauOPENCLAW_LIVE_TEST=1jika memanggil Vitest secara langsung)
- Cara memilih model:
- Default: daftar prioritas pilihan dengan sinyal tinggi (
modern) OPENCLAW_LIVE_GATEWAY_MODELS=smallmenjalankan daftar model kecil pilihan melalui seluruh pipeline Gateway+agenOPENCLAW_LIVE_GATEWAY_MODELS=alladalah alias untukmodern- Atau tetapkan
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(atau daftar yang dipisahkan koma) untuk mempersempit - Penyisiran Gateway modern/semua dan kecil secara default menggunakan panjang daftar pilihannya sebagai batas; tetapkan
OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0untuk penyisiran terpilih yang menyeluruh atau angka positif untuk batas yang lebih kecil.
- Default: daftar prioritas pilihan dengan sinyal tinggi (
- Cara memilih penyedia (hindari "semuanya melalui OpenRouter"):
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(daftar izin yang dipisahkan koma)
- Probe alat + gambar selalu aktif dalam pengujian live ini:
- Probe
read+ probeexec+read(uji tekanan alat) - probe gambar berjalan saat model mengiklankan dukungan input gambar
- Alur (tingkat tinggi):
- Pengujian menghasilkan PNG kecil dengan "CAT" + kode acak (
test/helpers/live-image-probe.ts) - Mengirimkannya melalui
agentattachments: [{ mimeType: "image/png", content: "<base64>" }] - Gateway mengurai lampiran menjadi
images[](src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - Agen tertanam meneruskan pesan pengguna multimodal ke model
- Pernyataan: balasan berisi
cat+ kode tersebut (toleransi OCR: kesalahan kecil diperbolehkan)
- Pengujian menghasilkan PNG kecil dengan "CAT" + kode acak (
- Probe
Live: smoke backend CLI (Claude, Gemini, atau CLI lokal lainnya)
- Pengujian:
src/gateway/gateway-cli-backend.live.test.ts - Tujuan: validasi pipeline Gateway + agen menggunakan backend CLI lokal, tanpa menyentuh konfigurasi default Anda.
- Default smoke khusus backend berada bersama definisi
cli-backend.tsPlugin pemiliknya. - Aktifkan:
pnpm test:live(atauOPENCLAW_LIVE_TEST=1jika memanggil Vitest secara langsung)OPENCLAW_LIVE_CLI_BACKEND=1
- Default:
- Penyedia/model default:
claude-cli/claude-sonnet-4-6 - Perilaku perintah/argumen/gambar berasal dari metadata Plugin backend CLI pemiliknya.
- Penyedia/model default:
- Penimpaan (opsional):
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=1untuk mengirim lampiran gambar nyata (path disisipkan ke dalam prompt). Nonaktif secara default dalam resep Docker.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"untuk meneruskan path berkas gambar sebagai argumen CLI alih-alih penyisipan prompt.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(atau"list") untuk mengontrol cara argumen gambar diteruskan saatIMAGE_ARGditetapkan.OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1untuk mengirim giliran kedua dan memvalidasi alur pelanjutan.OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1untuk memilih ikut serta dalam probe kontinuitas sesi yang sama Claude Sonnet -> Opus saat model yang dipilih mendukung target peralihan. Nonaktif secara default, termasuk dalam resep Docker.OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1untuk memilih ikut serta dalam probe loopback MCP/alat. Nonaktif secara default dalam resep Docker.
Contoh:
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.tsSmoke konfigurasi MCP Gemini berbiaya rendah:
OPENCLAW_LIVE_TEST=1 \ pnpm test:live src/agents/cli-runner/bundle-mcp.gemini.live.test.tsIni tidak meminta Gemini menghasilkan respons. Pengujian ini menulis pengaturan sistem yang sama
seperti yang diberikan OpenClaw kepada Gemini, lalu menjalankan gemini --debug mcp list untuk membuktikan bahwa
server transport: "streamable-http" yang disimpan dinormalisasi ke bentuk MCP HTTP milik Gemini
dan dapat terhubung ke server MCP HTTP yang dapat dialirkan secara lokal.
Resep Docker:
pnpm test:docker:live-cli-backendResep Docker penyedia tunggal:
pnpm test:docker:live-cli-backend:claudepnpm test:docker:live-cli-backend:claude-subscriptionpnpm test:docker:live-cli-backend:geminiCatatan:
- Runner Docker berada di
scripts/test-live-cli-backend-docker.sh. - Runner ini menjalankan smoke backend CLI langsung di dalam image Docker repo sebagai pengguna non-root
node. - Runner ini menyelesaikan metadata smoke CLI dari plugin pemiliknya, lalu menginstal paket CLI Linux yang sesuai (
@anthropic-ai/claude-codeatau@google/gemini-cli) ke prefiks dapat-tulis yang di-cache diOPENCLAW_DOCKER_CLI_TOOLS_DIR(bawaan:~/.cache/openclaw/docker-cli-tools). codex-clitidak lagi menjadi backend CLI bawaan; gunakanopenai/*dengan runtime app-server Codex sebagai gantinya (lihat Langsung: smoke harness app-server Codex).pnpm test:docker:live-cli-backend:claude-subscriptionmemerlukan OAuth langganan Claude Code portabel melalui~/.claude/.credentials.jsondenganclaudeAiOauth.subscriptionTypeatauCLAUDE_CODE_OAUTH_TOKENdariclaude setup-token. Runner ini terlebih dahulu membuktikanclaude -plangsung di Docker, lalu menjalankan dua giliran backend CLI Gateway tanpa mempertahankan variabel lingkungan kunci API Anthropic. Jalur langganan ini menonaktifkan probe MCP/alat dan gambar Claude secara bawaan karena menggunakan batas pemakaian langganan yang sedang masuk dan Anthropic dapat mengubah perilaku penagihan serta pembatasan laju Claude Agent SDK /claude -ptanpa rilis OpenClaw.- Claude dan Gemini mendukung rangkaian probe yang sama (giliran teks, klasifikasi gambar, pemanggilan alat MCP
cron, kontinuitas pergantian model) melalui flag di atas, tetapi tidak satu pun probe tersebut berjalan secara bawaan - aktifkan secara eksplisit per flag sesuai kebutuhan.
Langsung: keterjangkauan proxy HTTP/2 APNs
- Pengujian:
src/infra/push-apns-http2.live.test.ts - Tujuan: membuat terowongan melalui proxy HTTP CONNECT lokal ke endpoint APNs sandbox Apple, mengirim permintaan validasi HTTP/2 APNs, dan memastikan respons
403 InvalidProviderTokennyata dari Apple kembali melalui jalur proxy. - Aktifkan:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts
- Batas waktu opsional:
OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000
Langsung: smoke pengikatan ACP (/acp spawn ... --bind here)
- Pengujian:
src/gateway/gateway-acp-bind.live.test.ts - Tujuan: memvalidasi alur pengikatan percakapan ACP nyata dengan agen ACP langsung:
- kirim
/acp spawn <agent> --bind here - ikat percakapan kanal pesan sintetis di tempat
- kirim tindak lanjut normal pada percakapan yang sama
- verifikasi bahwa tindak lanjut masuk ke transkrip sesi ACP yang terikat
- kirim
- Aktifkan:
pnpm test:live src/gateway/gateway-acp-bind.live.test.tsOPENCLAW_LIVE_ACP_BIND=1
- Bawaan:
- Agen ACP di Docker:
claude,codex,gemini - Agen ACP untuk
pnpm test:live ...langsung:claude - Kanal sintetis: konteks percakapan bergaya DM Slack
- Backend ACP:
acpx
- Agen ACP di Docker:
- Penimpaan:
OPENCLAW_LIVE_ACP_BIND_AGENT=claudeOPENCLAW_LIVE_ACP_BIND_AGENT=codexOPENCLAW_LIVE_ACP_BIND_AGENT=droidOPENCLAW_LIVE_ACP_BIND_AGENT=geminiOPENCLAW_LIVE_ACP_BIND_AGENT=opencodeOPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,geminiOPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND='npx -y @agentclientprotocol/claude-agent-acp@<version>'OPENCLAW_LIVE_ACP_BIND_CODEX_MODEL=gpt-5.6-lunaOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL=opencode/kimi-k2.6OPENCLAW_LIVE_ACP_BIND_IMAGE_PROBE=1(atauon/true/yes) untuk memaksa probe gambar aktif; nilai lainnya memaksanya nonaktif. Berjalan secara bawaan untuk setiap agen kecualiopencode.OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.6-luna
- Catatan:
- Jalur ini menggunakan permukaan
chat.sendGateway dengan bidang rute asal sintetis khusus admin agar pengujian dapat melampirkan konteks kanal pesan tanpa berpura-pura mengirimkannya secara eksternal. - Ketika
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMANDtidak ditetapkan, pengujian menggunakan registri agen bawaan milik pluginacpxtersemat untuk agen harness ACP yang dipilih. - Pembuatan Cron MCP sesi terikat bersifat upaya terbaik secara bawaan karena harness ACP eksternal dapat membatalkan pemanggilan MCP setelah bukti pengikatan/gambar lulus; tetapkan
OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1agar probe Cron pascapengikatan tersebut bersifat ketat.
- Jalur ini menggunakan permukaan
Contoh:
OPENCLAW_LIVE_ACP_BIND=1 \ OPENCLAW_LIVE_ACP_BIND_AGENT=claude \ pnpm test:live src/gateway/gateway-acp-bind.live.test.tsResep Docker:
pnpm test:docker:live-acp-bindResep Docker agen tunggal:
pnpm test:docker:live-acp-bind:claudepnpm test:docker:live-acp-bind:codexpnpm test:docker:live-acp-bind:droidpnpm test:docker:live-acp-bind:geminipnpm test:docker:live-acp-bind:opencodeCatatan Docker:
- Runner Docker berada di
scripts/test-live-acp-bind-docker.sh. - Secara bawaan, runner ini menjalankan smoke pengikatan ACP terhadap kumpulan agen CLI langsung secara berurutan:
claude,codex, lalugemini. - Gunakan
OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,OPENCLAW_LIVE_ACP_BIND_AGENTS=codex,OPENCLAW_LIVE_ACP_BIND_AGENTS=droid,OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini, atauOPENCLAW_LIVE_ACP_BIND_AGENTS=opencodeuntuk mempersempit matriks. - Runner ini menyiapkan materi autentikasi CLI yang sesuai ke dalam kontainer, lalu menginstal CLI langsung yang diminta (
@anthropic-ai/claude-code,@openai/codex, Factory Droid melaluihttps://app.factory.ai/cli,@google/gemini-cli, atauopencode-ai) jika belum tersedia. Backend ACP itu sendiri adalah paketacpx/runtimetersemat dari plugin resmiacpx. - Varian Docker Droid menyiapkan
~/.factoryuntuk pengaturan, meneruskanFACTORY_API_KEY, dan mewajibkan kunci API tersebut karena autentikasi OAuth/keyring Factory lokal tidak portabel ke dalam kontainer. Varian ini menggunakan entri registridroid exec --output-format acpbawaan ACPX. - Varian Docker OpenCode adalah jalur regresi agen tunggal yang ketat. Varian ini menulis model bawaan
OPENCODE_CONFIG_CONTENTsementara dariOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(bawaanopencode/kimi-k2.6). - Pemanggilan CLI
acpxlangsung hanyalah jalur manual/solusi sementara untuk membandingkan perilaku di luar Gateway. Smoke pengikatan ACP Docker menjalankan backend runtimeacpxtersemat milik OpenClaw.
Langsung: smoke harness app-server Codex
- Tujuan: memvalidasi harness Codex milik plugin melalui metode gateway
agentnormal:- muat plugin
codexbawaan - pilih model OpenAI melalui
/model <ref> --runtime codex - kirim giliran agen gateway pertama dengan tingkat pemikiran yang diminta
- kirim giliran kedua ke sesi OpenClaw yang sama dan verifikasi bahwa utas app-server dapat dilanjutkan
- jalankan
/codex statusdan/codex modelsmelalui jalur perintah gateway yang sama - secara opsional jalankan dua probe shell dengan eskalasi yang ditinjau Guardian: satu perintah aman yang seharusnya disetujui dan satu pengunggahan rahasia palsu yang seharusnya ditolak sehingga agen meminta konfirmasi kembali
- muat plugin
- Pengujian:
src/gateway/gateway-codex-harness.live.test.ts - Aktifkan:
OPENCLAW_LIVE_CODEX_HARNESS=1 - Model dasar harness:
openai/gpt-5.6-luna - Bawaan pemilihan kunci API OpenAI baru:
openai/gpt-5.6 - Pemikiran bawaan:
low - Penimpaan model:
OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/<model> - Penimpaan pemikiran:
OPENCLAW_LIVE_CODEX_HARNESS_THINKING=<level> - Asersi upaya model nonbawaan:
OPENCLAW_LIVE_CODEX_HARNESS_EXPECTED_EFFORT=<level> - Penimpaan matriks:
OPENCLAW_LIVE_CODEX_HARNESS_TARGETS=<model>=<thinking>,... - Mode autentikasi:
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=codex-auth(bawaan) menggunakan login Codex yang disalin;api-keymenggunakanOPENAI_API_KEYmelalui app-server Codex. - Probe gambar opsional:
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 - Probe MCP/alat opsional:
OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 - Probe Guardian opsional:
OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 - Uji tekanan pelanjutan opsional:
OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS=1menambahkan empat giliran riwayat, lalu menutup dan memulai ulang Gateway serta app-server Codex tiga kali sambil mewajibkan id utas native dan riwayat percakapan yang sama. Timpa jumlah terbatas denganOPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS_HISTORY_TURNS(1-20) danOPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS_RESTARTS(1-10). - Uji tekanan fan-out opsional: tetapkan
OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE=1danOPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_COUNT(1-12). Harness memulai setiap anak secara bersamaan, menunggu setiap eksekusi terminal, dan memverifikasi setiap balasan anak unik serta identitas utas native. - Uji tekanan Compaction opsional:
OPENCLAW_LIVE_CODEX_HARNESS_COMPACTION_STRESS=1menghasilkan keluaran alat native terbatas, mewajibkan peristiwa Compaction otomatis, memverifikasi jumlah Compaction tersimpan dan pengingatan penanda tersembunyi, memulai ulang Gateway dan app-server Codex fisik, lalu mengulangi gelombang keluaran dan Compaction. Sesuaikan pekerjaan terbatas denganOPENCLAW_LIVE_CODEX_HARNESS_COMPACTION_STRESS_TURNS(1-8) danOPENCLAW_LIVE_CODEX_HARNESS_LARGE_OUTPUT_BYTES(100000-800000). - Probe penolakan loop-relay opsional:
OPENCLAW_LIVE_CODEX_HARNESS_DISABLE_LOOP_RELAY=1 - Preferensi pemikiran yang diminta dapat dipetakan ke upaya terdekat yang diumumkan
Codex untuk model tersebut. Misalnya, Luna memetakan
minimalkelow. - Model katalog Codex yang dikenal memperoleh upaya native yang persis tersebut secara otomatis. Penimpaan model yang tidak dikenal harus menyatakan upaya terpetakan yang diharapkan.
- Smoke ini memaksakan penyedia/model
agentRuntime.id: "codex"agar harness Codex yang rusak tidak dapat lulus dengan diam-diam beralih kembali ke OpenClaw. - Autentikasi: autentikasi app-server Codex dari login langganan Codex lokal, atau
OPENAI_API_KEYketikaOPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key. Docker dapat menyalin~/.codex/auth.jsondan~/.codex/config.tomluntuk eksekusi langganan.
Resep lokal:
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.6-luna \ pnpm test:live -- src/gateway/gateway-codex-harness.live.test.tsResep Docker:
pnpm test:docker:live-codex-harnessUji tekanan mulai ulang dan riwayat:
OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS=1 \pnpm test:docker:live-codex-harnessUji tekanan fan-out, keluaran besar, Compaction, dan mulai ulang:
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key \ OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE=1 \ OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_COUNT=8 \ OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS=1 \ OPENCLAW_LIVE_CODEX_HARNESS_COMPACTION_STRESS=1 \ pnpm test:docker:live-codex-harnessMatriks Codex native GPT-5.6:
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key \ OPENCLAW_LIVE_CODEX_HARNESS_TARGETS='openai/gpt-5.6-sol=ultra,openai/gpt-5.6-terra=ultra,openai/gpt-5.6-luna=max' \ pnpm test:docker:live-codex-harnessBawaan kunci API OpenAI baru:
OPENCLAW_LIVE_GATEWAY_OPENAI_API_DEFAULT=1 \ OPENCLAW_LIVE_GATEWAY_PROVIDERS=openai \ OPENCLAW_LIVE_GATEWAY_THINKING=off \ pnpm test:live -- src/gateway/gateway-models.profiles.live.test.tsBukti ini membiarkan OPENCLAW_LIVE_GATEWAY_MODELS tidak ditetapkan, menyelesaikan model melalui
seam pemilihan inferensi onboarding baru, mengasersi openai/gpt-5.6, lalu
menjalankan giliran gateway nyata dengan model yang telah diselesaikan tersebut.
Matriks OpenClaw tersemat GPT-5.6:
OPENCLAW_LIVE_GATEWAY_THINKING=ultra \ OPENCLAW_LIVE_GATEWAY_PROVIDERS=openai \ OPENCLAW_LIVE_GATEWAY_MODELS='openai/gpt-5.6-sol,openai/gpt-5.6-terra,openai/gpt-5.6-luna' \ pnpm test:live -- src/gateway/gateway-models.profiles.live.test.tsCatatan Docker:
- Runner Docker berada di
scripts/test-live-codex-harness-docker.sh. - Runner ini meneruskan
OPENAI_API_KEY, menyalin file autentikasi Codex CLI jika tersedia, menginstal@openai/codexke prefiks npm terpasang yang dapat ditulis, menyiapkan pohon sumber, lalu hanya menjalankan pengujian live harness Codex. - Docker mengaktifkan probe citra, MCP/alat, dan Guardian secara default. Atur
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0atauOPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0atauOPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0ketika Anda memerlukan proses debug yang lebih terbatas. - Docker menggunakan konfigurasi runtime Codex eksplisit yang sama, sehingga alias lama atau fallback OpenClaw tidak dapat menyembunyikan regresi harness Codex.
- Target matriks berjalan secara berurutan dalam satu kontainer. Skrip Docker menyesuaikan batas waktu default 35 menit berdasarkan jumlah target; batas waktu shell luar atau CI harus mengizinkan total waktu yang sama. CI kanonis menempatkan setiap target GPT-5.6 dalam shard terpisah.
Resep live yang direkomendasikan
Daftar izin yang terbatas dan eksplisit adalah yang tercepat dan paling minim kegagalan tidak konsisten:
-
Model tunggal, langsung (tanpa Gateway):
OPENCLAW_LIVE_MODELS="openai/gpt-5.6-luna" pnpm test:live src/agents/models.profiles.live.test.ts
-
Profil langsung model kecil:
OPENCLAW_LIVE_MODELS=small pnpm test:live src/agents/models.profiles.live.test.ts
-
Profil Gateway model kecil:
OPENCLAW_LIVE_GATEWAY_MODELS=small pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Pengujian asap API Ollama Cloud:
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
-
Model tunggal, pengujian asap Gateway:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Pemanggilan alat di beberapa penyedia:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,google/gemini-3.5-flash,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Pengujian asap langsung Z.AI Coding Plan GLM-5.2:
ZAI_CODING_LIVE_TEST=1 pnpm test:live src/agents/zai.live.test.ts
-
Fokus Google (kunci API Gemini + Antigravity):
- Gemini (kunci API):
OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3.5-flash" 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
- Gemini (kunci API):
-
Pengujian asap pemikiran adaptif Google (
qa manualdari CLI QA privat - memerlukanOPENCLAW_ENABLE_PRIVATE_QA_CLI=1dan checkout sumber; lihat ikhtisar QA):- Default dinamis 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 - Anggaran dinamis 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
- Default dinamis Gemini 3:
Catatan:
google/...menggunakan API Gemini (kunci API).google-antigravity/...menggunakan bridge OAuth Antigravity (endpoint agen bergaya Cloud Code Assist).google-gemini-cli/...menggunakan Gemini CLI lokal di mesin Anda (autentikasi terpisah + kekhasan alat).- API Gemini dibandingkan dengan Gemini CLI:
- API: OpenClaw memanggil API Gemini yang dihosting Google melalui HTTP (kunci API / autentikasi profil); inilah yang dimaksud sebagian besar pengguna dengan "Gemini".
- CLI: OpenClaw menjalankan biner
geminilokal melalui shell; biner ini memiliki autentikasi sendiri dan dapat berperilaku berbeda (dukungan streaming/alat/perbedaan versi).
Live: matriks model (cakupan kami)
Live bersifat opsional, sehingga tidak ada "daftar model CI" yang tetap. OPENCLAW_LIVE_MODELS=modern / OPENCLAW_LIVE_GATEWAY_MODELS=modern (dan alias all miliknya) menjalankan daftar prioritas terkurasi dari HIGH_SIGNAL_LIVE_MODEL_PRIORITY di src/agents/live-model-filter.ts, dalam urutan prioritas berikut:
| Penyedia/model | Catatan |
|---|---|
anthropic/claude-opus-4-8 |
|
anthropic/claude-sonnet-5 |
|
anthropic/claude-sonnet-4-6 |
|
anthropic/claude-opus-4-7 |
|
google/gemini-3.1-pro-preview |
API Gemini |
google/gemini-3.5-flash |
API Gemini |
cohere/command-a-plus-05-2026 |
|
moonshot/kimi-k3 |
|
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.5 |
|
xai/grok-4.20-0309-reasoning |
|
zai/glm-5.1 |
|
fireworks/accounts/fireworks/models/glm-5p1 |
|
minimax-portal/minimax-m3 |
Daftar model kecil terkurasi (OPENCLAW_LIVE_MODELS=small / OPENCLAW_LIVE_GATEWAY_MODELS=small), dari SMALL_LIVE_MODEL_PRIORITY:
| Penyedia/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 |
Catatan tentang daftar modern:
- Penyedia
codexdancodex-clidikecualikan dari penyisiran modern default (keduanya mencakup perilaku backend CLI/ACP, yang diuji secara terpisah di atas).openai/gpt-5.5sendiri dirutekan melalui harness app-server Codex secara default; lihat Live: pengujian asap harness app-server Codex. fireworks,google,openrouter, danxaihanya menjalankan ID model yang dikurasi secara eksplisit dalam penyisiran modern (tanpa perluasan otomatis "setiap model dari penyedia ini").- Sertakan setidaknya satu model berkemampuan citra (varian visi keluarga Claude/Gemini/OpenAI, dll.) dalam
OPENCLAW_LIVE_GATEWAY_MODELSuntuk menjalankan probe citra.
Jalankan pengujian asap Gateway dengan alat + citra pada kumpulan lintas penyedia yang dipilih secara khusus:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3.5-flash,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.tsCakupan tambahan opsional di luar daftar terkurasi (baik untuk dimiliki, pilih model berkemampuan "alat" yang telah Anda aktifkan):
- Mistral:
mistral/... - Cerebras:
cerebras/...(jika Anda memiliki akses) - LM Studio:
lmstudio/...(lokal; pemanggilan alat bergantung pada mode API)
Agregator / Gateway alternatif
Jika Anda memiliki kunci yang diaktifkan, Anda juga dapat menguji melalui:
- OpenRouter:
openrouter/...(ratusan model; gunakanopenclaw models scanuntuk menemukan kandidat yang mendukung alat+citra) - OpenCode:
opencode/...untuk Zen danopencode-go/...untuk Go (autentikasi melaluiOPENCODE_API_KEY/OPENCODE_ZEN_API_KEY)
Penyedia lain yang dapat Anda sertakan dalam matriks live (jika Anda memiliki kredensial/konfigurasi):
- Bawaan:
anthropic,cerebras,github-copilot,google,google-antigravity,google-gemini-cli,google-vertex,groq,mistral,openai,openrouter,opencode,opencode-go,xai,zai - Melalui
models.providers(endpoint kustom):minimax(cloud/API), serta proksi apa pun yang kompatibel dengan OpenAI/Anthropic (LM Studio, vLLM, LiteLLM, dll.)
Kredensial (jangan pernah commit)
Pengujian live menemukan kredensial dengan cara yang sama seperti CLI. Implikasi praktis:
-
Jika CLI berfungsi, pengujian live seharusnya menemukan kunci yang sama.
-
Jika pengujian live menyatakan "tidak ada kredensial", lakukan debug dengan cara yang sama seperti Anda men-debug
openclaw models list/ pemilihan model. -
Profil autentikasi per agen:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json(inilah arti "kunci profil" dalam pengujian live) -
Konfigurasi:
~/.openclaw/openclaw.json(atauOPENCLAW_CONFIG_PATH) -
Direktori OAuth lama:
~/.openclaw/credentials/(disalin ke home live yang disiapkan jika tersedia, tetapi bukan penyimpanan kunci profil utama) -
Proses live lokal menyalin konfigurasi aktif (dengan override
agents.*.workspace/agentDirdihapus) danauth-profiles.jsonmilik setiap agen - bukan bagian lain dari direktori agen tersebut, sehingga dataworkspace/dansandboxes/tidak pernah mencapai home yang disiapkan - beserta direktori lamacredentials/dan file/direktori autentikasi CLI eksternal yang didukung (.claude.json,.claude/.credentials.json,.claude/settings*.json,.claude/backups,.codex/auth.json,.codex/config.toml,.gemini,.minimax) ke home pengujian sementara.
Jika Anda ingin mengandalkan kunci lingkungan, ekspor kunci tersebut sebelum pengujian lokal atau gunakan
runner Docker di bawah dengan OPENCLAW_PROFILE_FILE yang eksplisit.
Live Deepgram (transkripsi audio)
- Pengujian:
extensions/deepgram/audio.live.test.ts - Aktifkan:
DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts
Live paket coding BytePlus
- Pengujian:
extensions/byteplus/live.test.ts - Aktifkan:
BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts - Override model opsional:
BYTEPLUS_CODING_MODEL=ark-code-latest
Live media alur kerja ComfyUI
- Pengujian:
extensions/comfy/comfy.live.test.ts - Aktifkan:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts - Cakupan:
- Menjalankan jalur citra dan video comfy bawaan, serta jalur
music_generate - Melewati setiap kemampuan kecuali jika
plugins.entries.comfy.config.<capability>dikonfigurasi - Berguna setelah mengubah pengiriman alur kerja comfy, polling, unduhan, atau pendaftaran Plugin
- Menjalankan jalur citra dan video comfy bawaan, serta jalur
Live pembuatan citra
- Pengujian:
test/image-generation.runtime.live.test.ts - Perintah:
pnpm test:live test/image-generation.runtime.live.test.ts - Harness:
pnpm test:live:media image - Cakupan:
- Menginventarisasi setiap Plugin penyedia pembuatan citra yang terdaftar
- Menggunakan variabel lingkungan penyedia yang sudah diekspor sebelum melakukan probe
- Secara default menggunakan kunci API live/lingkungan sebelum profil autentikasi tersimpan, sehingga kunci pengujian usang dalam
auth-profiles.jsontidak menutupi kredensial shell yang sebenarnya - Melewati penyedia yang tidak memiliki autentikasi/profil/model yang dapat digunakan
- Menjalankan setiap penyedia yang dikonfigurasi melalui runtime pembuatan citra bersama:
<provider>:generate<provider>:editketika penyedia menyatakan dukungan pengeditan
- Penyedia bawaan yang saat ini tercakup:
deepinfrafalgoogleminimaxopenaiopenroutervydraxai
- Pembatasan opsional:
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,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"
- Perilaku autentikasi opsional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1untuk memaksa autentikasi penyimpanan profil dan mengabaikan override khusus lingkungan
Untuk jalur CLI yang didistribusikan, tambahkan pengujian asap infer setelah pengujian live
penyedia/runtime berhasil:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_INFER_CLI_TEST=1 pnpm test:live -- test/image-generation.infer-cli.live.test.tsopenclaw infer image providers --jsonopenclaw infer image generate \ --model google/gemini-3.1-flash-image \ --prompt "Gambar uji datar minimalis: satu persegi biru pada latar belakang putih, tanpa teks." \ --output ./openclaw-infer-image-smoke.png \ --jsonIni mencakup penguraian argumen CLI, resolusi konfigurasi/agen default, aktivasi Plugin bawaan, runtime pembuatan citra bersama, dan permintaan penyedia live. Dependensi Plugin diharapkan tersedia sebelum pemuatan runtime.
Live pembuatan musik
- Pengujian:
extensions/music-generation-providers.live.test.ts - Aktifkan:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts - Harness:
pnpm test:live:media music - Cakupan:
- Menguji jalur penyedia pembuatan musik terpaket bersama
- Saat ini mencakup
fal,google,minimax, danopenrouter - Menggunakan variabel lingkungan penyedia yang telah diekspor sebelum melakukan pemeriksaan
- Secara default menggunakan kunci API langsung/dari lingkungan sebelum profil autentikasi tersimpan, sehingga kunci pengujian usang di
auth-profiles.jsontidak menutupi kredensial shell yang sebenarnya - Melewati penyedia tanpa autentikasi/profil/model yang dapat digunakan
- Menjalankan kedua mode runtime yang dideklarasikan jika tersedia:
generatedengan masukan khusus prompteditsaat penyedia mendeklarasikancapabilities.edit.enabled
comfymemiliki berkas langsung terpisah sendiri, bukan pemeriksaan bersama ini
- Pembatasan opsional:
OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"
- Perilaku autentikasi opsional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1untuk memaksakan autentikasi penyimpanan profil dan mengabaikan penggantian yang hanya berasal dari lingkungan
Pembuatan video langsung
- Pengujian:
extensions/video-generation-providers.live.test.ts - Aktifkan:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts - Harness:
pnpm test:live:media video - Cakupan:
- Menguji jalur penyedia pembuatan video terpaket bersama di seluruh
alibaba,byteplus,deepinfra,fal,google,minimax,openai,openrouter,pixverse,qwen,runway,together,vydra,xai - Secara default menggunakan jalur smoke yang aman untuk rilis: satu permintaan teks-ke-video per penyedia, prompt lobster berdurasi satu detik, dan batas operasi per penyedia dari
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(secara default180000) - Secara default melewati FAL karena latensi antrean di sisi penyedia dapat mendominasi waktu rilis; berikan
OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"(atau kosongkan daftar yang dilewati) untuk menjalankannya secara eksplisit - Menggunakan variabel lingkungan penyedia yang telah diekspor sebelum melakukan pemeriksaan
- Secara default menggunakan kunci API langsung/dari lingkungan sebelum profil autentikasi tersimpan, sehingga kunci pengujian usang di
auth-profiles.jsontidak menutupi kredensial shell yang sebenarnya - Melewati penyedia tanpa autentikasi/profil/model yang dapat digunakan
- Secara default hanya menjalankan
generate - Atur
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1untuk juga menjalankan mode transformasi yang dideklarasikan jika tersedia:imageToVideosaat penyedia mendeklarasikancapabilities.imageToVideo.enableddan penyedia/model yang dipilih menerima masukan gambar lokal berbasis buffer dalam pemeriksaan bersamavideoToVideosaat penyedia mendeklarasikancapabilities.videoToVideo.enableddan penyedia/model yang dipilih menerima masukan video lokal berbasis buffer dalam pemeriksaan bersama
- Penyedia
imageToVideoyang saat ini dideklarasikan tetapi dilewati dalam pemeriksaan bersama:vydra(masukan gambar lokal berbasis buffer tidak didukung dalam jalur ini)
- Cakupan khusus penyedia Vydra:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts- Berkas tersebut menjalankan teks-ke-video
veo3serta jalur gambar-ke-videoklingyang secara default menggunakan fixture URL gambar jarak jauh (OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URLuntuk menggantinya).
- Cakupan khusus penyedia xAI:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_XAI_VIDEO=1 pnpm test:live -- extensions/xai/xai.live.test.ts -t "classic Grok Imagine"- Kasus klasik terlebih dahulu menghasilkan bingkai pertama PNG lokal berbentuk persegi, menghilangkan geometri, meminta klip gambar-ke-video berdurasi satu detik, melakukan polling hingga selesai, dan memverifikasi buffer yang diunduh.
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_XAI_VIDEO=1 pnpm test:live -- extensions/xai/xai.live.test.ts -t "Grok Imagine Video 1.5"- Kasus 1.5 menghasilkan bingkai pertama PNG lokal, meminta klip gambar-ke-video 1080P berdurasi satu detik, melakukan polling hingga selesai, dan memverifikasi buffer yang diunduh.
- Cakupan langsung
videoToVideosaat ini:runwayhanya saat model yang dipilih ditetapkan menjadigen4_aleph
- Penyedia
videoToVideoyang saat ini dideklarasikan tetapi dilewati dalam pemeriksaan bersama:alibaba,google,openai,qwen,xaikarena jalur tersebut saat ini memerlukan URL referensihttp(s)jarak jauh, bukan masukan lokal berbasis buffer
- Menguji jalur penyedia pembuatan video terpaket bersama di seluruh
- Pembatasan opsional:
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"OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS=""untuk menyertakan setiap penyedia dalam pemeriksaan default, termasuk FALOPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000untuk mengurangi batas operasi setiap penyedia bagi proses smoke yang agresif
- Perilaku autentikasi opsional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1untuk memaksakan autentikasi penyimpanan profil dan mengabaikan penggantian yang hanya berasal dari lingkungan
Harness media langsung
- Perintah:
pnpm test:live:media - Titik masuk:
test/e2e/qa-lab/media/hosted-media-provider-live.ts, yang menjalankanpnpm test:live -- <suite-test-file>untuk setiap rangkaian yang dipilih, sehingga perilaku Heartbeat dan mode senyap tetap konsisten dengan prosespnpm test:livelainnya. - Tujuan:
- Menjalankan rangkaian langsung bersama untuk gambar, musik, dan video melalui satu titik masuk asli repositori
- Memuat otomatis variabel lingkungan penyedia yang tidak tersedia dari
~/.profile - Secara default membatasi setiap rangkaian secara otomatis ke penyedia yang saat ini memiliki autentikasi yang dapat digunakan
- Flag:
--providers <csv>filter penyedia global;--image-providers/--music-providers/--video-providersmembatasi filter ke satu rangkaian--all-providersmelewati filter otomatis berbasis autentikasi--allow-emptykeluar dengan0saat pemfilteran tidak menyisakan penyedia yang dapat dijalankan--quiet/--no-quietditeruskan ketest:live
- Contoh:
pnpm test:live:mediapnpm test:live:media image video --providers openai,google,minimaxpnpm test:live:media video --video-providers openai,runway --all-providerspnpm test:live:media music --quiet
Terkait
- Pengujian - rangkaian unit, integrasi, QA, dan Docker