Testing
Testen: live suites
Zie voor snelstart, QA-runners, unit-/integratiesuites en Docker-flows Tests. Deze pagina behandelt de live testsuites (met netwerkverkeer): modelmatrix, CLI-backends, ACP en live tests voor mediaproviders, plus credentialbeheer.
Live: lokale smoke-opdrachten
Exporteer de benodigde providersleutel in de procesomgeving voordat je ad-hoc live controles uitvoert.
Veilige media-smoketest:
pnpm openclaw infer tts convert --local --json \ --text "OpenClaw live smoke." \ --output /tmp/openclaw-live-smoke.mp3Veilige smoketest voor gereedheid van spraakoproepen:
pnpm openclaw voicecall setup --jsonpnpm openclaw voicecall smoke --to "+15555550123"voicecall smoke is een dry run tenzij --yes ook aanwezig is. Gebruik --yes alleen
wanneer je bewust een echte notificatieoproep wilt plaatsen. Voor Twilio, Telnyx en
Plivo vereist een geslaagde gereedheidscontrole een openbare webhook-URL; fallbacks
voor alleen lokale loopback/privéverkeer worden bewust geweigerd.
Live: capability-sweep voor Android-Node
- Test:
src/gateway/android-node.capabilities.live.test.ts - Script:
pnpm android:test:integration - Doel: elke opdracht die momenteel wordt geadverteerd door een verbonden Android-Node aanroepen en het contractgedrag van de opdracht controleren.
- Scope:
- Vooraf geconditioneerde/handmatige setup (de suite installeert/start/koppelt de app niet).
- Gateway-
node.invoke-validatie per opdracht voor de geselecteerde Android-Node.
- Vereiste voorafgaande setup:
- Android-app is al verbonden en gekoppeld aan de Gateway.
- App blijft op de voorgrond.
- Machtigingen/toestemming voor vastleggen zijn verleend voor capabilities waarvan je verwacht dat ze slagen.
- Optionele doeloverschrijvingen:
OPENCLAW_ANDROID_NODE_IDofOPENCLAW_ANDROID_NODE_NAME.OPENCLAW_ANDROID_GATEWAY_URL/OPENCLAW_ANDROID_GATEWAY_TOKEN/OPENCLAW_ANDROID_GATEWAY_PASSWORD.
- Volledige Android-setupdetails: Android-app
Live: model-smoketest (profielsleutels)
Live tests zijn opgesplitst in twee lagen zodat we fouten kunnen isoleren:
- "Rechtstreeks model" vertelt ons of de provider/het model met de gegeven sleutel uberhaupt kan antwoorden.
- "Gateway-smoketest" vertelt ons of de volledige Gateway+agent-pijplijn voor dat model werkt (sessies, geschiedenis, tools, sandboxbeleid, enzovoort).
Laag 1: Rechtstreekse modelvoltooiing (geen Gateway)
- Test:
src/agents/models.profiles.live.test.ts - Doel:
- Ontdekte modellen opsommen
getApiKeyForModelgebruiken om modellen te selecteren waarvoor je credentials hebt- Een kleine voltooiing per model uitvoeren (en gerichte regressies waar nodig)
- Inschakelen:
pnpm test:live(ofOPENCLAW_LIVE_TEST=1als je Vitest rechtstreeks aanroept)
- Stel
OPENCLAW_LIVE_MODELS=modern,smallofall(alias voor modern) in om deze suite daadwerkelijk uit te voeren; anders wordt deze overgeslagen zodatpnpm test:livegericht blijft op Gateway-smoketests - Modellen selecteren:
OPENCLAW_LIVE_MODELS=modernom de moderne toelatingslijst uit te voeren (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 5.1, MiniMax M3, Grok 4.3)OPENCLAW_LIVE_MODELS=smallom de beperkte toelatingslijst voor kleine modellen uit te voeren (Qwen 8B/9B lokaal-compatibele routes, Ollama Gemma, OpenRouter Qwen/GLM en Z.AI GLM)OPENCLAW_LIVE_MODELS=allis een alias voor de moderne toelatingslijst- of
OPENCLAW_LIVE_MODELS="openai/gpt-5.5,anthropic/claude-opus-4-6,..."(toelatingslijst met komma's) - Lokale Ollama-runs met kleine modellen gebruiken standaard
http://127.0.0.1:11434; stelOPENCLAW_LIVE_OLLAMA_BASE_URLalleen in voor LAN-, aangepaste of Ollama Cloud-endpoints. - Modern/all- en small-sweeps gebruiken standaard hun samengestelde limieten; stel
OPENCLAW_LIVE_MAX_MODELS=0in voor een uitputtende sweep van het geselecteerde profiel of een positief getal voor een kleinere limiet. - Uitputtende sweeps gebruiken
OPENCLAW_LIVE_TEST_TIMEOUT_MSvoor de timeout van de volledige test met rechtstreekse modellen. Standaard: 60 minuten. - Probes voor rechtstreekse modellen draaien standaard met 20-voudige parallelliteit; stel
OPENCLAW_LIVE_MODEL_CONCURRENCYin om dit te overschrijven.
- Providers selecteren:
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(toelatingslijst met komma's)
- Waar sleutels vandaan komen:
- Standaard: profielopslag en env-fallbacks
- Stel
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1in om uitsluitend profielopslag af te dwingen
- Waarom dit bestaat:
- Scheidt "provider-API is kapot / sleutel is ongeldig" van "Gateway-agentpijplijn is kapot"
- Bevat kleine, geisoleerde regressies (voorbeeld: OpenAI Responses/Codex Responses-reasoningreplay + tool-call-flows)
Laag 2: Gateway + dev-agent-smoketest (wat "@openclaw" daadwerkelijk doet)
- Test:
src/gateway/gateway-models.profiles.live.test.ts - Doel:
- Een in-process Gateway starten
- Een
agent:dev:*-sessie maken/patchen (modeloverschrijving per run) - Modellen-met-sleutels itereren en controleren:
- "betekenisvolle" respons (geen tools)
- een echte toolaanroep werkt (leesprobe)
- optionele extra toolprobes (exec+leesprobe)
- OpenAI-regressiepaden (alleen tool-call -> vervolg) blijven werken
- Probedetails (zodat je fouten snel kunt uitleggen):
read-probe: de test schrijft een nonce-bestand in de workspace en vraagt de agent om het teread-en en de nonce terug te echoen.exec+read-probe: de test vraagt de agent om viaexeceen nonce naar een tijdelijk bestand te schrijven en die daarna terug teread-en.- afbeeldingsprobe: de test voegt een gegenereerde PNG toe (kat + willekeurige code) en verwacht dat het model
cat <CODE>teruggeeft. - Implementatiereferentie:
src/gateway/gateway-models.profiles.live.test.tsentest/helpers/live-image-probe.ts.
- Inschakelen:
pnpm test:live(ofOPENCLAW_LIVE_TEST=1als je Vitest rechtstreeks aanroept)
- Modellen selecteren:
- Standaard: moderne toelatingslijst (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M3, Grok 4.3)
OPENCLAW_LIVE_GATEWAY_MODELS=smallom dezelfde beperkte toelatingslijst voor kleine modellen door de volledige Gateway+agent-pijplijn te laten lopenOPENCLAW_LIVE_GATEWAY_MODELS=allis een alias voor de moderne toelatingslijst- Of stel
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(of een kommagescheiden lijst) in om te beperken - Modern/all- en small-Gateway-sweeps gebruiken standaard hun samengestelde limieten; stel
OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0in voor een uitputtende geselecteerde sweep of een positief getal voor een kleinere limiet.
- Providers selecteren (voorkom "alles via OpenRouter"):
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(toelatingslijst met komma's)
- Tool- en afbeeldingsprobes staan altijd aan in deze live test:
read-probe +exec+read-probe (toolstress)- afbeeldingsprobe draait wanneer het model ondersteuning voor afbeeldingsinvoer adverteert
- Flow (op hoog niveau):
- Test genereert een kleine PNG met "CAT" + willekeurige code (
test/helpers/live-image-probe.ts) - Verstuurt deze via
agentattachments: [{ mimeType: "image/png", content: "<base64>" }] - Gateway parseert bijlagen naar
images[](src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - Ingebedde agent stuurt een multimodaal gebruikersbericht door naar het model
- Assertie: antwoord bevat
cat+ de code (OCR-tolerantie: kleine fouten toegestaan)
- Test genereert een kleine PNG met "CAT" + willekeurige code (
Live: CLI-backend-smoketest (Claude, Gemini of andere lokale CLI's)
- Test:
src/gateway/gateway-cli-backend.live.test.ts - Doel: de Gateway + agent-pijplijn valideren met een lokale CLI-backend, zonder je standaardconfiguratie aan te raken.
- Backend-specifieke smoketest-standaarden staan bij de
cli-backend.ts-definitie van de eigenaarsextensie. - Inschakelen:
pnpm test:live(ofOPENCLAW_LIVE_TEST=1als je Vitest rechtstreeks aanroept)OPENCLAW_LIVE_CLI_BACKEND=1
- Standaarden:
- Standaardprovider/-model:
claude-cli/claude-sonnet-4-6 - Opdracht/args/afbeeldingsgedrag komen uit de metadata van de eigenaar-CLI-backend-Plugin.
- Standaardprovider/-model:
- Overschrijvingen (optioneel):
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=1om een echte afbeeldingsbijlage te verzenden (paden worden in de prompt geinjecteerd). Docker-recepten zetten dit standaard uit tenzij expliciet gevraagd.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"om afbeeldingsbestandspaden als CLI-args door te geven in plaats van promptinjectie.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(of"list") om te bepalen hoe afbeeldingsargs worden doorgegeven wanneerIMAGE_ARGis ingesteld.OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1om een tweede beurt te verzenden en de hervattingsflow te valideren.OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1om optioneel deel te nemen aan de Claude Sonnet -> Opus-continuiteitsprobe binnen dezelfde sessie wanneer het geselecteerde model een switchdoel ondersteunt. Docker-recepten zetten dit standaard uit voor aggregatiebetrouwbaarheid.OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1om optioneel deel te nemen aan de MCP/tool-loopbackprobe. Docker-recepten zetten dit standaard uit tenzij expliciet gevraagd.
Voorbeeld:
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.tsGoedkope Gemini MCP-configuratiesmoketest:
OPENCLAW_LIVE_TEST=1 \ pnpm test:live src/agents/cli-runner/bundle-mcp.gemini.live.test.tsDit vraagt Gemini niet om een respons te genereren. Het schrijft dezelfde systeeminstellingen
die OpenClaw aan Gemini geeft en voert daarna gemini --debug mcp list uit om te bewijzen dat een
opgeslagen transport: "streamable-http"-server wordt genormaliseerd naar Gemini's HTTP MCP-vorm
en verbinding kan maken met een lokale streamable-HTTP MCP-server.
Docker-recept:
pnpm test:docker:live-cli-backendDocker-recepten voor een enkele provider:
pnpm test:docker:live-cli-backend:claudepnpm test:docker:live-cli-backend:claude-subscriptionpnpm test:docker:live-cli-backend:geminiOpmerkingen:
- De Docker-runner staat op
scripts/test-live-cli-backend-docker.sh. - Deze draait de live CLI-backend-smoketest binnen de repo-Docker-image als de niet-rootgebruiker
node. - Deze herleidt CLI-smokemetadata uit de eigenaarsextensie en installeert daarna het bijpassende Linux-CLI-pakket (
@anthropic-ai/claude-codeof@google/gemini-cli) in een gecachte schrijfbare prefix opOPENCLAW_DOCKER_CLI_TOOLS_DIR(standaard:~/.cache/openclaw/docker-cli-tools). pnpm test:docker:live-cli-backend:claude-subscriptionvereist draagbare Claude Code-abonnement-OAuth via~/.claude/.credentials.jsonmetclaudeAiOauth.subscriptionTypeofCLAUDE_CODE_OAUTH_TOKENuitclaude setup-token. Het bewijst eerst directeclaude -pin Docker en draait daarna twee Gateway CLI-backend-beurten zonder Anthropic API-key-env-vars te behouden. Deze abonnementslane schakelt de Claude MCP/tool- en afbeeldingsprobes standaard uit omdat deze de gebruikslimieten van het ingelogde abonnement verbruikt en Anthropic het facturerings- en rate-limitgedrag van Claude Agent SDK /claude -pkan wijzigen zonder OpenClaw-release.- De live CLI-backend-smoketest oefent nu dezelfde end-to-end-flow uit voor Claude en Gemini: tekstbeurt, afbeeldingsclassificatiebeurt en daarna een MCP-
cron-toolaanroep die via de Gateway-CLI wordt geverifieerd. - Claude's standaard-smoketest patcht de sessie ook van Sonnet naar Opus en verifieert dat de hervatte sessie een eerdere notitie nog steeds onthoudt.
Live: bereikbaarheid van APNs HTTP/2-proxy
- Test:
src/infra/push-apns-http2.live.test.ts - Doel: tunnelen door een lokale HTTP CONNECT-proxy naar Apple's sandbox-APNs-endpoint, de APNs HTTP/2-validatieaanvraag verzenden en controleren dat Apple's echte
403 InvalidProviderToken-respons via het proxypad terugkomt. - Inschakelen:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts
- Optionele timeout:
OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000
Live: ACP-bind-smoketest (/acp spawn ... --bind here)
- Test:
src/gateway/gateway-acp-bind.live.test.ts - Doel: de echte ACP-gesprekskoppelingsflow valideren met een live ACP-agent:
- stuur
/acp spawn <agent> --bind here - koppel ter plekke een synthetisch berichtkanaalgesprek
- stuur een normale opvolging in datzelfde gesprek
- verifieer dat de opvolging terechtkomt in het transcript van de gekoppelde ACP-sessie
- stuur
- Inschakelen:
pnpm test:live src/gateway/gateway-acp-bind.live.test.tsOPENCLAW_LIVE_ACP_BIND=1
- Standaardinstellingen:
- ACP-agenten in Docker:
claude,codex,gemini - ACP-agent voor directe
pnpm test:live ...:claude - Synthetisch kanaal: Slack-DM-achtige gesprekscontext
- ACP-backend:
acpx
- ACP-agenten in Docker:
- Overrides:
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
- Opmerkingen:
- Deze lane gebruikt het gateway-
chat.send-oppervlak met synthetische oorsprongsroutevelden die alleen voor beheerders zijn, zodat tests berichtkanaalcontext kunnen koppelen zonder te doen alsof er extern wordt afgeleverd. - Wanneer
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMANDniet is ingesteld, gebruikt de test het ingebouwde agentregister van de ingebeddeacpx-Plugin voor de geselecteerde ACP-harnessagent. - Het aanmaken van gebonden-sessie-Cron-MCP gebeurt standaard op best-effortbasis, omdat externe ACP-harnassen MCP-aanroepen kunnen annuleren nadat het bewijs voor koppeling/afbeelding is geslaagd; stel
OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1in om die Cron-probe na koppeling strikt te maken.
- Deze lane gebruikt het gateway-
Voorbeeld:
OPENCLAW_LIVE_ACP_BIND=1 \ OPENCLAW_LIVE_ACP_BIND_AGENT=claude \ pnpm test:live src/gateway/gateway-acp-bind.live.test.tsDocker-recept:
pnpm test:docker:live-acp-bindDocker-recepten voor één agent:
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:opencodeDocker-opmerkingen:
- De Docker-runner staat op
scripts/test-live-acp-bind-docker.sh. - Standaard voert hij de ACP-bind-smoke opeenvolgend uit tegen de geaggregeerde live CLI-agenten:
claude,codexen daarnagemini. - Gebruik
OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,OPENCLAW_LIVE_ACP_BIND_AGENTS=codex,OPENCLAW_LIVE_ACP_BIND_AGENTS=droid,OPENCLAW_LIVE_ACP_BIND_AGENTS=geminiofOPENCLAW_LIVE_ACP_BIND_AGENTS=opencodeom de matrix te beperken. - Hij plaatst het bijpassende CLI-authenticatiemateriaal in de container en installeert daarna de gevraagde live CLI (
@anthropic-ai/claude-code,@openai/codex, Factory Droid viahttps://app.factory.ai/cli,@google/gemini-cliofopencode-ai) als die ontbreekt. De ACP-backend zelf is het ingebeddeacpx/runtime-pakket uit de officiëleacpx-Plugin. - De Droid-Docker-variant plaatst
~/.factoryvoor instellingen, geeftFACTORY_API_KEYdoor en vereist die API-sleutel omdat lokale Factory-OAuth/keyring-authenticatie niet overdraagbaar is naar de container. Hij gebruikt de ingebouwde ACPX-registervermeldingdroid exec --output-format acp. - De OpenCode-Docker-variant is een strikte regressielane voor één agent. Hij schrijft een tijdelijk standaardmodel
OPENCODE_CONFIG_CONTENTuitOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(standaardopencode/kimi-k2.6), enpnpm test:docker:live-acp-bind:opencodevereist een gekoppeld assistenttranscript in plaats van de generieke skip na koppeling te accepteren. - Directe
acpx-CLI-aanroepen zijn alleen een handmatig/workaround-pad om gedrag buiten de Gateway te vergelijken. De Docker ACP-bind-smoke oefent de ingebeddeacpx-runtimebackend van OpenClaw.
Live: Codex app-server-harness-smoke
- Doel: de Plugin-eigen Codex-harness valideren via de normale gateway-
agent-methode:- laad de gebundelde
codex-Plugin - selecteer
openai/gpt-5.5, waarmee OpenAI-agentbeurten standaard via Codex worden gerouteerd - stuur een eerste gateway-agentbeurt naar
openai/gpt-5.5met de Codex-harness geselecteerd - stuur een tweede beurt naar dezelfde OpenClaw-sessie en verifieer dat de app-server-thread kan hervatten
- voer
/codex statusen/codex modelsuit via hetzelfde gateway-commandopad - voer optioneel twee door Guardian beoordeelde geëscaleerde shellprobes uit: één onschadelijk commando dat moet worden goedgekeurd en één nepgeheim-upload die moet worden geweigerd zodat de agent terugvraagt
- laad de gebundelde
- Test:
src/gateway/gateway-codex-harness.live.test.ts - Inschakelen:
OPENCLAW_LIVE_CODEX_HARNESS=1 - Standaardmodel:
openai/gpt-5.5 - Optionele afbeeldingsprobe:
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 - Optionele MCP/tool-probe:
OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 - Optionele Guardian-probe:
OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 - De smoke dwingt provider/model
agentRuntime.id: "codex"af, zodat een kapotte Codex-harness niet kan slagen door stil terug te vallen op OpenClaw. - Auth: Codex app-server-authenticatie vanuit de lokale Codex-abonnementslogin. Docker-smokes kunnen ook
OPENAI_API_KEYleveren voor niet-Codex-probes wanneer van toepassing, plus optioneel gekopieerde~/.codex/auth.jsonen~/.codex/config.toml.
Lokaal recept:
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.tsDocker-recept:
pnpm test:docker:live-codex-harnessDocker-opmerkingen:
- De Docker-runner staat op
scripts/test-live-codex-harness-docker.sh. - Hij geeft
OPENAI_API_KEYdoor, kopieert Codex CLI-authbestanden wanneer aanwezig, installeert@openai/codexin een schrijfbare aangekoppelde npm-prefix, plaatst de source tree en voert daarna alleen de live Codex-harnesstest uit. - Docker schakelt de afbeeldings-, MCP/tool- en Guardian-probes standaard in. Stel
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0ofOPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0ofOPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0in wanneer je een smallere debugrun nodig hebt. - Docker gebruikt dezelfde expliciete Codex-runtimeconfiguratie, zodat legacy-aliassen of OpenClaw-fallback geen regressie in de Codex-harness kunnen verbergen.
Aanbevolen live-recepten
Smalle, expliciete allowlists zijn het snelst en het minst flaky:
-
Eén model, direct (geen gateway):
OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts
-
Direct profiel voor klein model:
OPENCLAW_LIVE_MODELS=small pnpm test:live src/agents/models.profiles.live.test.ts
-
Gateway-profiel voor klein model:
OPENCLAW_LIVE_GATEWAY_MODELS=small pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Ollama Cloud API-smoke:
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
-
Eén model, gateway-smoke:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Tool-aanroepen over meerdere providers:
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 directe smoke:
ZAI_CODING_LIVE_TEST=1 pnpm test:live src/agents/zai.live.test.ts
-
Google-focus (Gemini API-sleutel + Antigravity):
- Gemini (API-sleutel):
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 (API-sleutel):
-
Google adaptive thinking-smoke:
- Gemini 3 dynamische standaard:
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 dynamisch budget:
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
- Gemini 3 dynamische standaard:
Opmerkingen:
google/...gebruikt de Gemini API (API-sleutel).google-antigravity/...gebruikt de Antigravity OAuth-bridge (Cloud Code Assist-achtige agenteindpunt).google-gemini-cli/...gebruikt de lokale Gemini CLI op je machine (aparte auth + tooling-eigenaardigheden).- Gemini API vs Gemini CLI:
- API: OpenClaw roept Google's gehoste Gemini API aan via HTTP (API-sleutel / profielauthenticatie); dit is wat de meeste gebruikers bedoelen met "Gemini".
- CLI: OpenClaw shellt uit naar een lokale
gemini-binary; die heeft eigen auth en kan zich anders gedragen (streaming/toolondersteuning/versiescheefstand).
Live: modelmatrix (wat we dekken)
Er is geen vaste "CI-modellijst" (live is opt-in), maar dit zijn de aanbevolen modellen om regelmatig te dekken op een ontwikkelmachine met sleutels.
Moderne smoke-set (tool-aanroepen + afbeelding)
Dit is de run met "gangbare modellen" waarvan we verwachten dat die blijft werken:
- OpenAI (niet-Codex):
openai/gpt-5.5 - OpenAI ChatGPT/Codex OAuth:
openai/gpt-5.5 - Anthropic:
anthropic/claude-opus-4-6(ofanthropic/claude-sonnet-4-6) - Google (Gemini API):
google/gemini-3.1-pro-previewengoogle/gemini-3-flash-preview(vermijd oudere Gemini 2.x-modellen) - Google (Antigravity):
google-antigravity/claude-opus-4-6-thinkingengoogle-antigravity/gemini-3-flash - DeepSeek:
deepseek/deepseek-v4-flashendeepseek/deepseek-v4-pro - Z.AI (GLM):
zai/glm-5.1(algemene API) ofzai/glm-5.2(Coding Plan) - MiniMax:
minimax/MiniMax-M3
Voer gateway-smoke uit met tools + afbeelding:
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,google-antigravity/gemini-3-flash,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
Baseline: tool-aanroepen (Read + optioneel Exec)
Kies minstens één per providerfamilie:
- OpenAI:
openai/gpt-5.5 - Anthropic:
anthropic/claude-opus-4-6(ofanthropic/claude-sonnet-4-6) - Google:
google/gemini-3-flash-preview(ofgoogle/gemini-3.1-pro-preview) - DeepSeek:
deepseek/deepseek-v4-flash - Z.AI (GLM):
zai/glm-5.1(algemene API) ofzai/glm-5.2(Coding Plan) - MiniMax:
minimax/MiniMax-M3
Optionele aanvullende dekking (handig om te hebben):
- xAI:
xai/grok-4.3(of nieuwste beschikbare) - Mistral:
mistral/… (kies één "tools"-geschikt model dat je hebt ingeschakeld) - Cerebras:
cerebras/… (als je toegang hebt) - LM Studio:
lmstudio/… (lokaal; tool-aanroepen hangen af van de API-modus)
Vision: afbeelding verzenden (bijlage → multimodaal bericht)
Neem minstens één model dat afbeeldingen ondersteunt op in OPENCLAW_LIVE_GATEWAY_MODELS (Claude/Gemini/OpenAI-varianten met vision-ondersteuning, enz.) om de afbeeldingsprobe te oefenen.
Aggregators / alternatieve gateways
Als je sleutels hebt ingeschakeld, ondersteunen we ook testen via:
- OpenRouter:
openrouter/...(honderden modellen; gebruikopenclaw models scanom kandidaten te vinden die geschikt zijn voor tool+afbeelding) - OpenCode:
opencode/...voor Zen enopencode-go/...voor Go (auth viaOPENCODE_API_KEY/OPENCODE_ZEN_API_KEY)
Meer providers die je kunt opnemen in de live-matrix (als je credentials/config hebt):
- Ingebouwd:
openai,anthropic,google,google-vertex,google-antigravity,google-gemini-cli,zai,openrouter,opencode,opencode-go,xai,groq,cerebras,mistral,github-copilot - Via
models.providers(aangepaste endpoints):minimax(cloud/API), plus elke OpenAI/Anthropic-compatibele proxy (LM Studio, vLLM, LiteLLM, enz.)
Inloggegevens (nooit committen)
Live tests ontdekken inloggegevens op dezelfde manier als de CLI. Praktische gevolgen:
-
Als de CLI werkt, zouden live tests dezelfde sleutels moeten vinden.
-
Als een live test "no creds" meldt, debug dan op dezelfde manier als je
openclaw models list/ modelselectie zou debuggen. -
Auth-profielen per agent:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json(dit is wat "profielsleutels" betekent in de live tests) -
Configuratie:
~/.openclaw/openclaw.json(ofOPENCLAW_CONFIG_PATH) -
Verouderde state-map:
~/.openclaw/credentials/(wordt gekopieerd naar de gestagede live-home wanneer aanwezig, maar is niet de hoofdopslag voor profielsleutels) -
Live lokale runs kopiëren standaard de actieve configuratie, per-agent
auth-profiles.json-bestanden, verouderdecredentials/en ondersteunde externe CLI-auth-mappen naar een tijdelijke test-home; gestagede live-homes slaanworkspace/ensandboxes/over, en padoverschrijvingen vooragents.*.workspace/agentDirworden verwijderd zodat probes wegblijven van je echte host-workspace.
Als je op env-sleutels wilt vertrouwen, exporteer ze dan vóór lokale tests of gebruik de
Docker-runners hieronder met een expliciet OPENCLAW_PROFILE_FILE.
Deepgram live (audiotranscriptie)
- Test:
extensions/deepgram/audio.live.test.ts - Inschakelen:
DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts
BytePlus-codingplan live
- Test:
extensions/byteplus/live.test.ts - Inschakelen:
BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts - Optionele modeloverschrijving:
BYTEPLUS_CODING_MODEL=ark-code-latest
ComfyUI-workflowmedia live
- Test:
extensions/comfy/comfy.live.test.ts - Inschakelen:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts - Bereik:
- Test de gebundelde comfy-paden voor afbeeldingen, video en
music_generate - Slaat elke capability over tenzij
plugins.entries.comfy.config.<capability>is geconfigureerd - Nuttig na wijzigingen aan comfy-workflowindiening, polling, downloads of Plugin-registratie
- Test de gebundelde comfy-paden voor afbeeldingen, video en
Afbeeldingsgeneratie live
- Test:
test/image-generation.runtime.live.test.ts - Opdracht:
pnpm test:live test/image-generation.runtime.live.test.ts - Harness:
pnpm test:live:media image - Bereik:
- Somt elke geregistreerde Plugin voor afbeeldingsgeneratieproviders op
- Gebruikt al geëxporteerde provider-env-vars vóór het proben
- Gebruikt standaard live/env-API-sleutels vóór opgeslagen auth-profielen, zodat verouderde testsleutels in
auth-profiles.jsonechte shell-inloggegevens niet maskeren - Slaat providers zonder bruikbare auth/profiel/model over
- Voert elke geconfigureerde provider uit via de gedeelde afbeeldingsgeneratie-runtime:
<provider>:generate<provider>:editwanneer de provider edit-ondersteuning declareert
- Huidige gebundelde providers die worden gedekt:
deepinfrafalgoogleminimaxopenaiopenroutervydraxai
- Optionele beperking:
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"
- Optioneel auth-gedrag:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1om auth via de profielopslag af te dwingen en overrides die alleen uit env komen te negeren
Voor het verzonden CLI-pad voeg je een infer-smoke toe nadat de provider/runtime-live
test slaagt:
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-preview \ --prompt "Minimal flat test image: one blue square on a white background, no text." \ --output ./openclaw-infer-image-smoke.png \ --jsonDit dekt CLI-argumentparsing, configuratie/default-agent-resolutie, gebundelde Plugin-activering, de gedeelde afbeeldingsgeneratie-runtime en de live provider- request. Plugin-afhankelijkheden worden verwacht aanwezig te zijn vóór runtime-load.
Muziekgeneratie live
- Test:
extensions/music-generation-providers.live.test.ts - Inschakelen:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts - Harness:
pnpm test:live:media music - Bereik:
- Test het gedeelde gebundelde pad voor muziekgeneratieproviders
- Dekt momenteel Google en MiniMax
- Gebruikt al geëxporteerde provider-env-vars vóór het proben
- Gebruikt standaard live/env-API-sleutels vóór opgeslagen auth-profielen, zodat verouderde testsleutels in
auth-profiles.jsonechte shell-inloggegevens niet maskeren - Slaat providers zonder bruikbare auth/profiel/model over
- Voert beide gedeclareerde runtime-modi uit wanneer beschikbaar:
generatemet alleen prompt-invoereditwanneer de providercapabilities.edit.enableddeclareert
- Huidige gedeelde-lane-dekking:
google:generate,editminimax:generatecomfy: apart Comfy-livebestand, niet deze gedeelde sweep
- Optionele beperking:
OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"
- Optioneel auth-gedrag:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1om auth via de profielopslag af te dwingen en overrides die alleen uit env komen te negeren
Videogeneratie live
- Test:
extensions/video-generation-providers.live.test.ts - Inschakelen:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts - Harness:
pnpm test:live:media video - Bereik:
- Test het gedeelde gebundelde pad voor videogeneratieproviders
- Gebruikt standaard het release-veilige smoke-pad: niet-FAL-providers, één tekst-naar-video-request per provider, lobster-prompt van één seconde en een operationcap per provider uit
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(standaard180000) - Slaat FAL standaard over omdat wachtrijlatentie aan providerzijde de releasetijd kan domineren; geef
--video-providers falofOPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"mee om dit expliciet uit te voeren - Gebruikt al geëxporteerde provider-env-vars vóór het proben
- Gebruikt standaard live/env-API-sleutels vóór opgeslagen auth-profielen, zodat verouderde testsleutels in
auth-profiles.jsonechte shell-inloggegevens niet maskeren - Slaat providers zonder bruikbare auth/profiel/model over
- Voert standaard alleen
generateuit - Stel
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1in om ook gedeclareerde transformatiemodi uit te voeren wanneer beschikbaar:imageToVideowanneer de providercapabilities.imageToVideo.enableddeclareert en de geselecteerde provider/het geselecteerde model in de gedeelde sweep buffer-backed lokale afbeeldingsinvoer accepteertvideoToVideowanneer de providercapabilities.videoToVideo.enableddeclareert en de geselecteerde provider/het geselecteerde model in de gedeelde sweep buffer-backed lokale video-invoer accepteert
- Huidige gedeclareerde maar overgeslagen
imageToVideo-providers in de gedeelde sweep:vydraomdat gebundeldeveo3alleen tekst ondersteunt en gebundeldeklingeen externe afbeeldings-URL vereist
- Providerspecifieke Vydra-dekking:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts- dat bestand voert
veo3tekst-naar-video uit plus eenkling-lane die standaard een externe afbeeldings-URL-fixture gebruikt
- Huidige live-dekking voor
videoToVideo:runwayalleen wanneer het geselecteerde modelrunway/gen4_alephis
- Huidige gedeclareerde maar overgeslagen
videoToVideo-providers in de gedeelde sweep:alibaba,qwen,xaiomdat die paden momenteel externehttp(s)/ MP4-referentie-URL's vereisengoogleomdat de huidige gedeelde Gemini/Veo-lane lokale buffer-backed invoer gebruikt en dat pad niet wordt geaccepteerd in de gedeelde sweepopenaiomdat de huidige gedeelde lane geen garanties heeft voor org-specifieke toegang tot video-editing
- Optionele beperking:
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=""om elke provider in de standaard sweep op te nemen, inclusief FALOPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000om de operationcap per provider te verlagen voor een agressieve smoke-run
- Optioneel auth-gedrag:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1om auth via de profielopslag af te dwingen en overrides die alleen uit env komen te negeren
Media-live-harness
- Opdracht:
pnpm test:live:media - Doel:
- Voert de gedeelde image-, music- en video-live-suites uit via één repo-native entrypoint
- Gebruikt al geëxporteerde provider-env-vars
- Beperkt standaard elke suite automatisch tot providers die momenteel bruikbare auth hebben
- Hergebruikt
scripts/test-live.mjs, zodat Heartbeat- en quiet-mode-gedrag consistent blijven
- Voorbeelden:
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
Gerelateerd
- Testen - unit-, integratie-, QA- en Docker-suites