Untuk mulai cepat, runner QA, suite unit/integrasi, dan alur Docker, lihat Pengujian. Halaman ini membahas suite pengujian langsung (menyentuh jaringan): matriks model, backend CLI, ACP, dan pengujian langsung penyedia media, serta penanganan kredensial.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Langsung: perintah smoke profil lokal
Muat~/.profile sebelum pemeriksaan langsung ad hoc agar kunci penyedia dan
jalur alat lokal cocok dengan shell Anda:
voicecall smoke adalah uji coba tanpa eksekusi kecuali --yes juga ada. Gunakan --yes hanya
saat Anda memang ingin melakukan panggilan notifikasi nyata. Untuk Twilio, Telnyx, dan
Plivo, pemeriksaan kesiapan yang berhasil memerlukan URL webhook publik; fallback
local-only loopback/pribadi ditolak secara sengaja.
Langsung: sweep kapabilitas node Android
- Pengujian:
src/gateway/android-node.capabilities.live.test.ts - Skrip:
pnpm android:test:integration - Tujuan: memanggil setiap perintah yang saat ini diiklankan oleh node Android yang terhubung dan memastikan perilaku kontrak perintah.
- Cakupan:
- Penyiapan manual/prasyarat (suite tidak menginstal/menjalankan/memasangkan aplikasi).
- Validasi Gateway
node.invokeper perintah untuk node Android yang dipilih.
- Pra-penyiapan yang diperlukan:
- Aplikasi Android sudah terhubung + dipasangkan ke Gateway.
- Aplikasi tetap berada di latar depan.
- Izin/persetujuan perekaman diberikan untuk kapabilitas yang Anda harapkan lulus.
- Override 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
Langsung: smoke model (kunci profil)
Pengujian langsung dibagi menjadi dua lapisan agar kami dapat mengisolasi kegagalan:- “Model langsung” memberi tahu kita bahwa penyedia/model dapat menjawab sama sekali dengan kunci yang diberikan.
- “Smoke Gateway” memberi tahu kita bahwa pipeline gateway+agen lengkap berfungsi untuk model tersebut (sesi, riwayat, alat, kebijakan sandbox, dll.).
Lapisan 1: penyelesaian model langsung (tanpa gateway)
- Pengujian:
src/agents/models.profiles.live.test.ts - Tujuan:
- Menginventarisasi model yang ditemukan
- Menggunakan
getApiKeyForModeluntuk memilih model yang kredensialnya Anda miliki - Menjalankan penyelesaian kecil per model (dan regresi tertarget bila diperlukan)
- Cara mengaktifkan:
pnpm test:live(atauOPENCLAW_LIVE_TEST=1jika memanggil Vitest langsung)
- Atur
OPENCLAW_LIVE_MODELS=modern(atauall, alias untuk modern) untuk benar-benar menjalankan suite ini; jika tidak, suite dilewati agarpnpm test:livetetap berfokus pada smoke gateway - Cara memilih model:
OPENCLAW_LIVE_MODELS=modernuntuk menjalankan daftar yang diizinkan modern (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4.3)OPENCLAW_LIVE_MODELS=alladalah alias untuk daftar yang diizinkan modern- atau
OPENCLAW_LIVE_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,..."(daftar yang diizinkan berbasis koma) - Sweep modern/all secara default memakai batas kurasi bernilai sinyal tinggi; atur
OPENCLAW_LIVE_MAX_MODELS=0untuk sweep modern menyeluruh atau angka positif untuk batas yang lebih kecil. - Sweep menyeluruh menggunakan
OPENCLAW_LIVE_TEST_TIMEOUT_MSuntuk timeout seluruh pengujian model langsung. Default: 60 menit. - Probe model langsung berjalan dengan paralelisme 20 arah secara default; atur
OPENCLAW_LIVE_MODEL_CONCURRENCYuntuk mengganti.
- Cara memilih penyedia:
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(daftar yang diizinkan berbasis koma)
- Dari mana kunci berasal:
- Secara default: penyimpanan profil dan fallback env
- Atur
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1untuk hanya memberlakukan penyimpanan profil
- Mengapa ini ada:
- Memisahkan “API penyedia rusak / kunci tidak valid” dari “pipeline agen gateway rusak”
- Berisi regresi kecil yang terisolasi (contoh: replay reasoning OpenAI Responses/Codex Responses + alur pemanggilan alat)
Lapisan 2: smoke Gateway + agen dev (apa yang sebenarnya dilakukan “@openclaw”)
- Pengujian:
src/gateway/gateway-models.profiles.live.test.ts - Tujuan:
- Menjalankan gateway dalam proses
- Membuat/menambal sesi
agent:dev:*(override model per proses) - Mengiterasi model-dengan-kunci dan memastikan:
- respons “bermakna” (tanpa alat)
- pemanggilan alat nyata berfungsi (probe baca)
- probe alat ekstra opsional (probe exec+baca)
- jalur regresi OpenAI (hanya-pemanggilan-alat → tindak lanjut) tetap berfungsi
- Detail probe (agar Anda dapat menjelaskan kegagalan dengan cepat):
- Probe
read: pengujian menulis file nonce di workspace dan meminta agen untukreadfile tersebut dan menggemakan nonce kembali. - Probe
exec+read: pengujian meminta agen untuk menulis nonce denganexecke file temp, lalureadkembali. - 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.tsdansrc/gateway/live-image-probe.ts.
- Probe
- Cara mengaktifkan:
pnpm test:live(atauOPENCLAW_LIVE_TEST=1jika memanggil Vitest langsung)
- Cara memilih model:
- Default: daftar yang diizinkan modern (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4.3)
OPENCLAW_LIVE_GATEWAY_MODELS=alladalah alias untuk daftar yang diizinkan modern- Atau atur
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(atau daftar berbasis koma) untuk mempersempit - Sweep gateway modern/all secara default memakai batas kurasi bernilai sinyal tinggi; atur
OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0untuk sweep modern menyeluruh atau angka positif untuk batas yang lebih kecil.
- Cara memilih penyedia (hindari “semua OpenRouter”):
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(daftar yang diizinkan berbasis koma)
- Probe alat + gambar selalu aktif dalam pengujian langsung ini:
- Probe
read+ probeexec+read(tekanan alat) - Probe gambar berjalan saat model mengiklankan dukungan input gambar
- Alur (tingkat tinggi):
- Pengujian menghasilkan PNG kecil dengan “CAT” + kode acak (
src/gateway/live-image-probe.ts) - Mengirimkannya lewat
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
- Asersi: balasan berisi
cat+ kode tersebut (toleransi OCR: kesalahan kecil diizinkan)
- Pengujian menghasilkan PNG kecil dengan “CAT” + kode acak (
- Probe
Langsung: smoke backend CLI (Claude, Codex, Gemini, atau CLI lokal lain)
- Pengujian:
src/gateway/gateway-cli-backend.live.test.ts - Tujuan: memvalidasi pipeline Gateway + agen menggunakan backend CLI lokal, tanpa menyentuh konfigurasi default Anda.
- Default smoke khusus backend berada bersama definisi
cli-backend.tsmilik ekstensi pemiliknya. - Aktifkan:
pnpm test:live(atauOPENCLAW_LIVE_TEST=1jika memanggil Vitest 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:
- Override (opsional):
OPENCLAW_LIVE_CLI_BACKEND_MODEL="codex-cli/gpt-5.5"OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/codex"OPENCLAW_LIVE_CLI_BACKEND_ARGS='["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]'OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1untuk mengirim lampiran gambar nyata (jalur disuntikkan ke prompt). Resep Docker menonaktifkan ini secara default kecuali diminta secara eksplisit.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"untuk meneruskan jalur file gambar sebagai argumen CLI alih-alih injeksi prompt.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(atau"list") untuk mengontrol cara argumen gambar diteruskan saatIMAGE_ARGdiatur.OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1untuk mengirim giliran kedua dan memvalidasi alur resume.OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1untuk ikut serta dalam probe kontinuitas sesi yang sama Claude Sonnet -> Opus saat model yang dipilih mendukung target pergantian. Resep Docker menonaktifkan ini secara default untuk reliabilitas agregat.OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1untuk ikut serta dalam probe MCP/tool loopback. Resep Docker menonaktifkan ini secara default kecuali diminta secara eksplisit.
gemini --debug mcp list untuk membuktikan
server transport: "streamable-http" yang tersimpan dinormalisasi ke bentuk MCP HTTP milik Gemini
dan dapat terhubung ke server MCP streamable-HTTP lokal.
Resep Docker:
- Runner Docker berada di
scripts/test-live-cli-backend-docker.sh. - Ini menjalankan smoke backend CLI langsung di dalam image Docker repo sebagai pengguna non-root
node. - Ini menyelesaikan metadata smoke CLI dari ekstensi pemilik, lalu menginstal paket CLI Linux yang cocok (
@anthropic-ai/claude-code,@openai/codex, atau@google/gemini-cli) ke prefix dapat-ditulis yang di-cache diOPENCLAW_DOCKER_CLI_TOOLS_DIR(default:~/.cache/openclaw/docker-cli-tools). pnpm test:docker:live-cli-backend:claude-subscriptionmemerlukan OAuth langganan Claude Code portabel melalui~/.claude/.credentials.jsondenganclaudeAiOauth.subscriptionTypeatauCLAUDE_CODE_OAUTH_TOKENdariclaude setup-token. Ini terlebih dahulu membuktikanclaude -plangsung di Docker, lalu menjalankan dua giliran backend CLI Gateway tanpa mempertahankan variabel env kunci API Anthropic. Jalur langganan ini menonaktifkan probe MCP/alat dan gambar Claude secara default karena Claude saat ini merutekan penggunaan aplikasi pihak ketiga melalui penagihan penggunaan ekstra alih-alih batas paket langganan normal.- Smoke backend CLI langsung kini menjalankan alur ujung-ke-ujung yang sama untuk Claude, Codex, dan Gemini: giliran teks, giliran klasifikasi gambar, lalu pemanggilan alat
cronMCP yang diverifikasi melalui CLI gateway. - Smoke default Claude juga menambal sesi dari Sonnet ke Opus dan memverifikasi sesi yang dilanjutkan masih mengingat catatan sebelumnya.
Langsung: keterjangkauan proxy HTTP/2 APNs
- Pengujian:
src/infra/push-apns-http2.live.test.ts - Tujuan: melakukan tunnel melalui proxy HTTP CONNECT lokal ke endpoint APNs sandbox Apple, mengirim permintaan validasi HTTP/2 APNs, dan memastikan respons nyata
403 InvalidProviderTokendari 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
- Timeout opsional:
OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000
Langsung: smoke bind ACP (/acp spawn ... --bind here)
- Pengujian:
src/gateway/gateway-acp-bind.live.test.ts - Tujuan: memvalidasi alur conversation-bind ACP nyata dengan agen ACP live:
- kirim
/acp spawn <agent> --bind here - bind percakapan kanal pesan sintetis di tempat
- kirim tindak lanjut normal pada percakapan yang sama
- verifikasi tindak lanjut masuk ke transkrip sesi ACP yang sudah di-bind
- kirim
- Aktifkan:
pnpm test:live src/gateway/gateway-acp-bind.live.test.tsOPENCLAW_LIVE_ACP_BIND=1
- Default:
- Agen ACP dalam Docker:
claude,codex,gemini - Agen ACP untuk
pnpm test:live ...langsung:claude - Kanal sintetis: konteks percakapan bergaya DM Slack
- Backend ACP:
acpx
- Agen ACP dalam Docker:
- Override:
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.5OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL=opencode/kimi-k2.6OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.5
- Catatan:
- Lane ini menggunakan permukaan
chat.sendGateway dengan field originating-route sintetis khusus admin sehingga pengujian dapat melampirkan konteks kanal pesan tanpa berpura-pura mengirim secara eksternal. - Ketika
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMANDtidak diatur, pengujian menggunakan registry agen bawaan milik pluginacpxtertanam untuk agen harness ACP yang dipilih. - Pembuatan MCP Cron sesi ter-bind bersifat upaya terbaik secara default karena harness ACP eksternal dapat membatalkan panggilan MCP setelah bukti bind/gambar berhasil; atur
OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1untuk membuat probe Cron pasca-bind tersebut ketat.
- Lane ini menggunakan permukaan
- Runner Docker berada di
scripts/test-live-acp-bind-docker.sh. - Secara default, runner menjalankan smoke ACP bind terhadap agen CLI live agregat 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 memuat
~/.profile, menyiapkan materi auth CLI yang cocok ke dalam kontainer, lalu menginstal CLI live yang diminta (@anthropic-ai/claude-code,@openai/codex, Factory Droid melaluihttps://app.factory.ai/cli,@google/gemini-cli, atauopencode-ai) jika belum ada. Backend ACP itu sendiri adalah paketacpx/runtimetertanam dari pluginacpxresmi. - Varian Docker Droid menyiapkan
~/.factoryuntuk pengaturan, meneruskanFACTORY_API_KEY, dan memerlukan kunci API tersebut karena auth OAuth/keyring Factory lokal tidak portabel ke dalam kontainer. Varian ini menggunakan entri registry bawaan ACPXdroid exec --output-format acp. - Varian Docker OpenCode adalah lane regresi agen tunggal yang ketat. Varian ini menulis model default
OPENCODE_CONFIG_CONTENTsementara dariOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(defaultopencode/kimi-k2.6) setelah memuat~/.profile, danpnpm test:docker:live-acp-bind:opencodememerlukan transkrip asisten ter-bind alih-alih menerima skip pasca-bind generik. - Panggilan CLI
acpxlangsung hanya merupakan jalur manual/solusi sementara untuk membandingkan perilaku di luar Gateway. Smoke ACP bind Docker menguji backend runtimeacpxtertanam milik OpenClaw.
Live: smoke harness app-server Codex
- Tujuan: memvalidasi harness Codex milik plugin melalui metode Gateway normal
agent:- muat plugin
codexbawaan - pilih
openai/gpt-5.5, yang merutekan giliran agen OpenAI melalui Codex secara default - kirim giliran agen Gateway pertama ke
openai/gpt-5.5dengan harness Codex yang dipilih - kirim giliran kedua ke sesi OpenClaw yang sama dan verifikasi thread app-server dapat dilanjutkan
- jalankan
/codex statusdan/codex modelsmelalui jalur perintah Gateway yang sama - opsional jalankan dua probe shell tereskalasi yang ditinjau Guardian: satu perintah tidak berbahaya yang seharusnya disetujui dan satu unggahan rahasia palsu yang seharusnya ditolak sehingga agen bertanya kembali
- muat plugin
- Pengujian:
src/gateway/gateway-codex-harness.live.test.ts - Aktifkan:
OPENCLAW_LIVE_CODEX_HARNESS=1 - Model default:
openai/gpt-5.5 - 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 - Smoke memaksa provider/model
agentRuntime.id: "codex"sehingga harness Codex yang rusak tidak dapat lolos dengan diam-diam fallback ke PI. - Auth: auth app-server Codex dari login langganan Codex lokal. Smoke Docker
juga dapat menyediakan
OPENAI_API_KEYuntuk probe non-Codex jika berlaku, plus~/.codex/auth.jsondan~/.codex/config.tomlyang disalin secara opsional.
- Runner Docker berada di
scripts/test-live-codex-harness-docker.sh. - Runner memuat
~/.profileyang di-mount, meneruskanOPENAI_API_KEY, menyalin file auth CLI Codex saat ada, menginstal@openai/codexke prefix npm yang di-mount dan dapat ditulis, menyiapkan pohon sumber, lalu hanya menjalankan pengujian live Codex-harness. - Docker mengaktifkan probe gambar, 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=0saat Anda membutuhkan proses debug yang lebih sempit. - Docker menggunakan konfigurasi runtime Codex eksplisit yang sama, sehingga alias legacy atau fallback PI tidak dapat menyembunyikan regresi harness Codex.
Resep live yang direkomendasikan
Allowlist yang sempit dan eksplisit paling cepat dan paling minim flaky:-
Model tunggal, langsung (tanpa Gateway):
OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts
-
Model tunggal, smoke Gateway:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Pemanggilan alat di beberapa provider:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Fokus Google (kunci API Gemini + Antigravity):
- Gemini (kunci 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
- Gemini (kunci API):
-
Smoke adaptive thinking Google:
- Jika kunci lokal berada di profil shell:
source ~/.profile - Default dinamis Gemini 3:
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:
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
- Jika kunci lokal berada di profil shell:
google/...menggunakan API Gemini (kunci API).google-antigravity/...menggunakan bridge OAuth Antigravity (endpoint agen bergaya Cloud Code Assist).google-gemini-cli/...menggunakan CLI Gemini lokal di mesin Anda (auth terpisah + kekhasan tooling).- API Gemini vs CLI Gemini:
- API: OpenClaw memanggil API Gemini yang di-host Google melalui HTTP (auth kunci API / profil); inilah yang dimaksud sebagian besar pengguna dengan “Gemini”.
- CLI: OpenClaw menjalankan binary
geminilokal melalui shell; binary ini memiliki auth sendiri dan dapat berperilaku berbeda (dukungan streaming/alat/perbedaan versi).
Live: matriks model (yang kami cakup)
Tidak ada “daftar model CI” tetap (live bersifat opt-in), tetapi ini adalah model yang direkomendasikan untuk dicakup secara rutin pada mesin pengembangan dengan kunci.Set smoke modern (pemanggilan alat + gambar)
Ini adalah proses “model umum” yang kami harapkan tetap berfungsi:- OpenAI (non-Codex):
openai/gpt-5.5 - OpenAI Codex OAuth:
openai-codex/gpt-5.5 - Anthropic:
anthropic/claude-opus-4-6(atauanthropic/claude-sonnet-4-6) - Google (API Gemini):
google/gemini-3.1-pro-previewdangoogle/gemini-3-flash-preview(hindari model Gemini 2.x yang lebih lama) - Google (Antigravity):
google-antigravity/claude-opus-4-6-thinkingdangoogle-antigravity/gemini-3-flash - DeepSeek:
deepseek/deepseek-v4-flashdandeepseek/deepseek-v4-pro - Z.AI (GLM):
zai/glm-5.1 - MiniMax:
minimax/MiniMax-M2.7
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,openai-codex/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,google-antigravity/gemini-3-flash,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
Baseline: pemanggilan alat (Read + Exec opsional)
Pilih setidaknya satu per keluarga provider:- OpenAI:
openai/gpt-5.5 - Anthropic:
anthropic/claude-opus-4-6(atauanthropic/claude-sonnet-4-6) - Google:
google/gemini-3-flash-preview(ataugoogle/gemini-3.1-pro-preview) - DeepSeek:
deepseek/deepseek-v4-flash - Z.AI (GLM):
zai/glm-5.1 - MiniMax:
minimax/MiniMax-M2.7
- xAI:
xai/grok-4.3(atau terbaru yang tersedia) - Mistral:
mistral/… (pilih satu model berkemampuan “tools” yang telah Anda aktifkan) - Cerebras:
cerebras/… (jika Anda memiliki akses) - LM Studio:
lmstudio/… (lokal; pemanggilan alat bergantung pada mode API)
Vision: pengiriman gambar (lampiran → pesan multimodal)
Sertakan setidaknya satu model berkemampuan gambar dalamOPENCLAW_LIVE_GATEWAY_MODELS (varian Claude/Gemini/OpenAI berkemampuan vision, dll.) untuk menguji probe gambar.
Aggregator / Gateway alternatif
Jika Anda memiliki kunci yang diaktifkan, kami juga mendukung pengujian melalui:- OpenRouter:
openrouter/...(ratusan model; gunakanopenclaw models scanuntuk menemukan kandidat yang mampu alat+gambar) - OpenCode:
opencode/...untuk Zen danopencode-go/...untuk Go (auth melaluiOPENCODE_API_KEY/OPENCODE_ZEN_API_KEY)
- Bawaan:
openai,openai-codex,anthropic,google,google-vertex,google-antigravity,google-gemini-cli,zai,openrouter,opencode,opencode-go,xai,groq,cerebras,mistral,github-copilot - Melalui
models.providers(endpoint khusus):minimax(cloud/API), plus proxy kompatibel OpenAI/Anthropic apa pun (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 langsung seharusnya menemukan kunci yang sama.
-
Jika pengujian langsung mengatakan “tidak ada kredensial”, debug dengan cara yang sama seperti saat Anda men-debug
openclaw models list/ pemilihan model. -
Profil autentikasi per agen:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json(inilah yang dimaksud dengan “kunci profil” dalam pengujian langsung) -
Konfigurasi:
~/.openclaw/openclaw.json(atauOPENCLAW_CONFIG_PATH) -
Direktori status lama:
~/.openclaw/credentials/(disalin ke home pengujian langsung bertahap saat ada, tetapi bukan penyimpanan kunci profil utama) -
Proses lokal langsung menyalin konfigurasi aktif, file
auth-profiles.jsonper agen,credentials/lama, dan direktori autentikasi CLI eksternal yang didukung ke home pengujian sementara secara default; home langsung bertahap melewatiworkspace/dansandboxes/, dan override jaluragents.*.workspace/agentDirdihapus agar probe tetap berada di luar workspace host asli Anda.
~/.profile Anda), jalankan pengujian lokal setelah source ~/.profile, atau gunakan runner Docker di bawah ini (runner tersebut dapat memasang ~/.profile ke dalam kontainer).
Pengujian langsung 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
Pengujian langsung rencana 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
Pengujian langsung media workflow 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:
- Menguji jalur gambar, video, dan
music_generatecomfy bawaan - Melewati setiap kapabilitas kecuali
plugins.entries.comfy.config.<capability>dikonfigurasi - Berguna setelah mengubah pengiriman workflow comfy, polling, unduhan, atau pendaftaran plugin
- Menguji jalur gambar, video, dan
Pengujian langsung pembuatan gambar
- 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 gambar yang terdaftar
- Memuat variabel env penyedia yang hilang dari shell login Anda (
~/.profile) sebelum melakukan probe - Menggunakan kunci API langsung/env sebelum profil autentikasi tersimpan secara default, sehingga kunci pengujian lama di
auth-profiles.jsontidak menutupi kredensial shell asli - Melewati penyedia tanpa autentikasi/profil/model yang dapat digunakan
- Menjalankan setiap penyedia yang dikonfigurasi melalui runtime pembuatan gambar bersama:
<provider>:generate<provider>:editsaat penyedia mendeklarasikan dukungan edit
- Penyedia bawaan saat ini yang dicakup:
deepinfrafalgoogleminimaxopenaiopenroutervydraxai
- Penyempitan 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-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"
- Perilaku autentikasi opsional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1untuk memaksa autentikasi penyimpanan profil dan mengabaikan override khusus env
infer setelah pengujian langsung penyedia/runtime lulus:
Pengujian langsung 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 bawaan bersama
- Saat ini mencakup Google dan MiniMax
- Memuat variabel env penyedia dari shell login Anda (
~/.profile) sebelum melakukan probe - Menggunakan kunci API langsung/env sebelum profil autentikasi tersimpan secara default, sehingga kunci pengujian lama di
auth-profiles.jsontidak menutupi kredensial shell asli - Melewati penyedia tanpa autentikasi/profil/model yang dapat digunakan
- Menjalankan kedua mode runtime yang dideklarasikan saat tersedia:
generatedengan input hanya prompteditsaat penyedia mendeklarasikancapabilities.edit.enabled
- Cakupan lane bersama saat ini:
google:generate,editminimax:generatecomfy: file langsung Comfy terpisah, bukan sweep bersama ini
- Penyempitan 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 memaksa autentikasi penyimpanan profil dan mengabaikan override khusus env
Pengujian langsung pembuatan video
- 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 bawaan bersama
- Default ke jalur smoke yang aman untuk rilis: penyedia non-FAL, satu permintaan teks-ke-video per penyedia, prompt lobster satu detik, dan batas operasi per penyedia dari
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(180000secara default) - Melewati FAL secara default karena latensi antrean sisi penyedia dapat mendominasi waktu rilis; berikan
--video-providers falatauOPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"untuk menjalankannya secara eksplisit - Memuat variabel env penyedia dari shell login Anda (
~/.profile) sebelum melakukan probe - Menggunakan kunci API langsung/env sebelum profil autentikasi tersimpan secara default, sehingga kunci pengujian lama di
auth-profiles.jsontidak menutupi kredensial shell asli - Melewati penyedia tanpa autentikasi/profil/model yang dapat digunakan
- Hanya menjalankan
generatesecara default - Tetapkan
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1untuk juga menjalankan mode transformasi yang dideklarasikan saat tersedia:imageToVideosaat penyedia mendeklarasikancapabilities.imageToVideo.enableddan penyedia/model yang dipilih menerima input gambar lokal berbasis buffer dalam sweep bersamavideoToVideosaat penyedia mendeklarasikancapabilities.videoToVideo.enableddan penyedia/model yang dipilih menerima input video lokal berbasis buffer dalam sweep bersama
- Penyedia
imageToVideoyang dideklarasikan tetapi dilewati saat ini dalam sweep bersama:vydrakarenaveo3bawaan hanya teks danklingbawaan memerlukan URL gambar jarak jauh
- Cakupan Vydra khusus penyedia:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts- file tersebut menjalankan teks-ke-video
veo3ditambah laneklingyang menggunakan fixture URL gambar jarak jauh secara default
- Cakupan langsung
videoToVideosaat ini:runwayhanya saat model yang dipilih adalahrunway/gen4_aleph
- Penyedia
videoToVideoyang dideklarasikan tetapi dilewati saat ini dalam sweep bersama:alibaba,qwen,xaikarena jalur tersebut saat ini memerlukan URL referensi jarak jauhhttp(s)/ MP4googlekarena lane Gemini/Veo bersama saat ini menggunakan input lokal berbasis buffer dan jalur tersebut tidak diterima dalam sweep bersamaopenaikarena lane bersama saat ini tidak memiliki jaminan akses inpaint/remix video khusus org
- Penyempitan 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 sweep default, termasuk FALOPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000untuk mengurangi batas operasi setiap penyedia untuk proses smoke yang agresif
- Perilaku autentikasi opsional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1untuk memaksa autentikasi penyimpanan profil dan mengabaikan override khusus env
Harness langsung media
- Perintah:
pnpm test:live:media - Tujuan:
- Menjalankan suite langsung gambar, musik, dan video bersama melalui satu entrypoint native repo
- Memuat otomatis variabel env penyedia yang hilang dari
~/.profile - Menyempitkan otomatis setiap suite ke penyedia yang saat ini memiliki autentikasi yang dapat digunakan secara default
- Menggunakan kembali
scripts/test-live.mjs, sehingga perilaku Heartbeat dan mode senyap tetap konsisten
- 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 - suite unit, integrasi, QA, dan Docker