Vai al contenuto principale
Per l’avvio rapido, i runner QA, le suite unit/integration e i flussi Docker, vedi Testing. Questa pagina copre le suite di test live (che toccano la rete): matrice dei modelli, backend CLI, ACP e test live dei provider multimediali, oltre alla gestione delle credenziali.

Live: sweep delle capacità del Node Android

  • Test: src/gateway/android-node.capabilities.live.test.ts
  • Script: pnpm android:test:integration
  • Obiettivo: richiamare ogni comando attualmente pubblicizzato da un Node Android connesso e verificare il comportamento del contratto del comando.
  • Ambito:
    • Configurazione manuale/precondizionata (la suite non installa/esegue/associa l’app).
    • Validazione node.invoke gateway comando per comando per il Node Android selezionato.
  • Preconfigurazione obbligatoria:
    • App Android già connessa + associata al gateway.
    • App mantenuta in foreground.
    • Permessi/consenso alla cattura concessi per le capacità che ti aspetti vadano a buon fine.
  • Override facoltativi del target:
    • OPENCLAW_ANDROID_NODE_ID o OPENCLAW_ANDROID_NODE_NAME.
    • OPENCLAW_ANDROID_GATEWAY_URL / OPENCLAW_ANDROID_GATEWAY_TOKEN / OPENCLAW_ANDROID_GATEWAY_PASSWORD.
  • Dettagli completi della configurazione Android: App Android

Live: smoke dei modelli (chiavi profilo)

I test live sono divisi in due livelli in modo da poter isolare i guasti:
  • “Modello diretto” ci dice se il provider/modello può rispondere in assoluto con la chiave fornita.
  • “Gateway smoke” ci dice se l’intera pipeline gateway+agente funziona per quel modello (sessioni, cronologia, strumenti, policy sandbox, ecc.).

Livello 1: completamento diretto del modello (senza gateway)

  • Test: src/agents/models.profiles.live.test.ts
  • Obiettivo:
    • Elencare i modelli rilevati
    • Usare getApiKeyForModel per selezionare i modelli per cui hai credenziali
    • Eseguire un piccolo completamento per modello (e regressioni mirate dove necessario)
  • Come abilitarlo:
    • pnpm test:live (oppure OPENCLAW_LIVE_TEST=1 se invochi direttamente Vitest)
  • Imposta OPENCLAW_LIVE_MODELS=modern (o all, alias di modern) per eseguire effettivamente questa suite; altrimenti viene saltata per mantenere pnpm test:live focalizzato sul gateway smoke
  • Come selezionare i modelli:
    • OPENCLAW_LIVE_MODELS=modern per eseguire la allowlist modern (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4)
    • OPENCLAW_LIVE_MODELS=all è un alias della allowlist modern
    • oppure OPENCLAW_LIVE_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,..." (allowlist separata da virgole)
    • Gli sweep modern/all usano per impostazione predefinita un limite curato ad alto segnale; imposta OPENCLAW_LIVE_MAX_MODELS=0 per uno sweep modern esaustivo oppure un numero positivo per un limite più piccolo.
    • Gli sweep esaustivi usano OPENCLAW_LIVE_TEST_TIMEOUT_MS per il timeout dell’intero test diretto del modello. Predefinito: 60 minuti.
    • Le probe del modello diretto vengono eseguite con parallelismo 20 per impostazione predefinita; imposta OPENCLAW_LIVE_MODEL_CONCURRENCY per modificarlo.
  • Come selezionare i provider:
    • OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli" (allowlist separata da virgole)
  • Da dove provengono le chiavi:
    • Per impostazione predefinita: archivio profili e fallback env
    • Imposta OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 per imporre solo l’archivio profili
  • Perché esiste:
    • Separa “l’API del provider è rotta / la chiave non è valida” da “la pipeline gateway agente è rotta”
    • Contiene regressioni piccole e isolate (esempio: replay del reasoning di OpenAI Responses/Codex Responses + flussi di chiamata strumenti)

Livello 2: smoke del Gateway + agente dev (quello che “@openclaw” fa davvero)

  • Test: src/gateway/gateway-models.profiles.live.test.ts
  • Obiettivo:
    • Avviare un gateway in-process
    • Creare/modificare una sessione agent:dev:* (override del modello per esecuzione)
    • Iterare sui modelli-con-chiavi e verificare:
      • risposta “significativa” (senza strumenti)
      • una vera invocazione di strumento funziona (probe read)
      • probe di strumenti extra facoltative (probe exec+read)
      • i percorsi di regressione OpenAI (solo chiamata strumento → follow-up) continuano a funzionare
  • Dettagli della probe (così puoi spiegare rapidamente i guasti):
    • probe read: il test scrive un file nonce nel workspace e chiede all’agente di read leggerlo e restituire il nonce.
    • probe exec+read: il test chiede all’agente di scrivere via exec un nonce in un file temporaneo, poi di rileggerlo con read.
    • probe immagine: il test allega un PNG generato (gatto + codice casuale) e si aspetta che il modello restituisca cat <CODE>.
    • Riferimento implementazione: src/gateway/gateway-models.profiles.live.test.ts e src/gateway/live-image-probe.ts.
  • Come abilitarlo:
    • pnpm test:live (oppure OPENCLAW_LIVE_TEST=1 se invochi direttamente Vitest)
  • Come selezionare i modelli:
    • Predefinito: allowlist modern (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4)
    • OPENCLAW_LIVE_GATEWAY_MODELS=all è un alias della allowlist modern
    • Oppure imposta OPENCLAW_LIVE_GATEWAY_MODELS="provider/model" (o elenco separato da virgole) per restringere
    • Gli sweep gateway modern/all usano per impostazione predefinita un limite curato ad alto segnale; imposta OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0 per uno sweep modern esaustivo oppure un numero positivo per un limite più piccolo.
  • Come selezionare i provider (evita “OpenRouter tutto”):
    • OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax" (allowlist separata da virgole)
  • Le probe di strumenti + immagine sono sempre attive in questo test live:
    • probe read + probe exec+read (stress degli strumenti)
    • la probe immagine viene eseguita quando il modello pubblicizza il supporto per input immagine
    • Flusso (alto livello):
      • Il test genera un piccolo PNG con “CAT” + codice casuale (src/gateway/live-image-probe.ts)
      • Lo invia tramite agent attachments: [{ mimeType: "image/png", content: "<base64>" }]
      • Il Gateway analizza gli allegati in images[] (src/gateway/server-methods/agent.ts + src/gateway/chat-attachments.ts)
      • L’agente embedded inoltra al modello un messaggio utente multimodale
      • Verifica: la risposta contiene cat + il codice (tolleranza OCR: piccoli errori ammessi)
Suggerimento: per vedere cosa puoi testare sulla tua macchina (e gli id esatti provider/model), esegui:
openclaw models list
openclaw models list --json

Live: smoke dei backend CLI (Claude, Codex, Gemini o altre CLI locali)

  • Test: src/gateway/gateway-cli-backend.live.test.ts
  • Obiettivo: convalidare la pipeline Gateway + agente usando un backend CLI locale, senza toccare la tua configurazione predefinita.
  • I valori predefiniti smoke specifici del backend si trovano nella definizione cli-backend.ts dell’estensione proprietaria.
  • Abilitazione:
    • pnpm test:live (oppure OPENCLAW_LIVE_TEST=1 se invochi direttamente Vitest)
    • OPENCLAW_LIVE_CLI_BACKEND=1
  • Valori predefiniti:
    • Provider/modello predefinito: claude-cli/claude-sonnet-4-6
    • Comportamento di comando/args/immagine derivato dai metadati del Plugin proprietario del backend CLI.
  • Override (facoltativi):
    • OPENCLAW_LIVE_CLI_BACKEND_MODEL="codex-cli/gpt-5.2"
    • 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=1 per inviare un vero allegato immagine (i percorsi vengono inseriti nel prompt).
    • OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image" per passare i percorsi dei file immagine come argomenti CLI invece di inserirli nel prompt.
    • OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat" (o "list") per controllare come vengono passati gli argomenti immagine quando IMAGE_ARG è impostato.
    • OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 per inviare un secondo turno e convalidare il flusso di ripresa.
    • OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0 per disabilitare la probe predefinita di continuità nella stessa sessione Claude Sonnet -> Opus (imposta 1 per forzarla quando il modello selezionato supporta un target di switch).
Esempio:
OPENCLAW_LIVE_CLI_BACKEND=1 \
  OPENCLAW_LIVE_CLI_BACKEND_MODEL="codex-cli/gpt-5.2" \
  pnpm test:live src/gateway/gateway-cli-backend.live.test.ts
Ricetta Docker:
pnpm test:docker:live-cli-backend
Ricette Docker per singolo provider:
pnpm test:docker:live-cli-backend:claude
pnpm test:docker:live-cli-backend:claude-subscription
pnpm test:docker:live-cli-backend:codex
pnpm test:docker:live-cli-backend:gemini
Note:
  • Il runner Docker si trova in scripts/test-live-cli-backend-docker.sh.
  • Esegue lo smoke live del backend CLI dentro l’immagine Docker del repo come utente non root node.
  • Risolve i metadati smoke CLI dall’estensione proprietaria, poi installa il package CLI Linux corrispondente (@anthropic-ai/claude-code, @openai/codex o @google/gemini-cli) in un prefisso scrivibile in cache in OPENCLAW_DOCKER_CLI_TOOLS_DIR (predefinito: ~/.cache/openclaw/docker-cli-tools).
  • pnpm test:docker:live-cli-backend:claude-subscription richiede OAuth portabile della sottoscrizione Claude Code tramite ~/.claude/.credentials.json con claudeAiOauth.subscriptionType oppure CLAUDE_CODE_OAUTH_TOKEN da claude setup-token. Prima verifica claude -p diretto in Docker, poi esegue due turni Gateway CLI-backend senza preservare le variabili env della chiave API Anthropic. Questa lane subscription disabilita per impostazione predefinita le probe Claude MCP/tool e immagine perché Claude al momento instrada l’uso di app di terze parti tramite fatturazione extra-usage invece dei normali limiti del piano in abbonamento.
  • Lo smoke live del backend CLI ora esercita lo stesso flusso end-to-end per Claude, Codex e Gemini: turno di testo, turno di classificazione immagine, poi chiamata strumento MCP cron verificata tramite la CLI del gateway.
  • Lo smoke predefinito di Claude modifica anche la sessione da Sonnet a Opus e verifica che la sessione ripresa ricordi ancora una nota precedente.

Live: smoke di binding ACP (/acp spawn ... --bind here)

  • Test: src/gateway/gateway-acp-bind.live.test.ts
  • Obiettivo: convalidare il vero flusso di binding della conversazione ACP con un agente ACP live:
    • inviare /acp spawn <agent> --bind here
    • associare sul posto una conversazione sintetica del canale messaggio
    • inviare un normale follow-up su quella stessa conversazione
    • verificare che il follow-up finisca nella trascrizione della sessione ACP associata
  • Abilitazione:
    • pnpm test:live src/gateway/gateway-acp-bind.live.test.ts
    • OPENCLAW_LIVE_ACP_BIND=1
  • Valori predefiniti:
    • Agenti ACP in Docker: claude,codex,gemini
    • Agente ACP per pnpm test:live ... diretto: claude
    • Canale sintetico: contesto di conversazione in stile DM Slack
    • Backend ACP: acpx
  • Override:
    • OPENCLAW_LIVE_ACP_BIND_AGENT=claude
    • OPENCLAW_LIVE_ACP_BIND_AGENT=codex
    • OPENCLAW_LIVE_ACP_BIND_AGENT=gemini
    • OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,gemini
    • OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND='npx -y @agentclientprotocol/claude-agent-acp@<version>'
    • OPENCLAW_LIVE_ACP_BIND_CODEX_MODEL=gpt-5.2
    • OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.2
  • Note:
    • Questa lane usa la superficie gateway chat.send con campi admin-only di originating-route sintetica così i test possono allegare il contesto del canale messaggio senza fingere una consegna esterna.
    • Quando OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND non è impostato, il test usa il registro agenti integrato del Plugin embedded acpx per l’agente harness ACP selezionato.
Esempio:
OPENCLAW_LIVE_ACP_BIND=1 \
  OPENCLAW_LIVE_ACP_BIND_AGENT=claude \
  pnpm test:live src/gateway/gateway-acp-bind.live.test.ts
Ricetta Docker:
pnpm test:docker:live-acp-bind
Ricette Docker per singolo agente:
pnpm test:docker:live-acp-bind:claude
pnpm test:docker:live-acp-bind:codex
pnpm test:docker:live-acp-bind:gemini
Note Docker:
  • Il runner Docker si trova in scripts/test-live-acp-bind-docker.sh.
  • Per impostazione predefinita, esegue lo smoke ACP bind su tutti gli agenti CLI live supportati in sequenza: claude, codex, poi gemini.
  • Usa OPENCLAW_LIVE_ACP_BIND_AGENTS=claude, OPENCLAW_LIVE_ACP_BIND_AGENTS=codex o OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini per restringere la matrice.
  • Carica ~/.profile, prepara nel container il materiale auth CLI corrispondente, installa acpx in un prefisso npm scrivibile, quindi installa la CLI live richiesta (@anthropic-ai/claude-code, @openai/codex o @google/gemini-cli) se manca.
  • Dentro Docker, il runner imposta OPENCLAW_LIVE_ACP_BIND_ACPX_COMMAND=$HOME/.npm-global/bin/acpx così acpx mantiene disponibili alla CLI harness figlia le variabili env del provider provenienti dal profilo caricato.

Live: smoke dell’harness Codex app-server

  • Obiettivo: convalidare l’harness Codex gestito dal Plugin tramite il normale metodo Gateway agent:
    • caricare il Plugin bundle codex
    • selezionare OPENCLAW_AGENT_RUNTIME=codex
    • inviare un primo turno agente del gateway a openai/gpt-5.2 con l’harness Codex forzato
    • inviare un secondo turno alla stessa sessione OpenClaw e verificare che il thread dell’app-server possa riprendere
    • eseguire /codex status e /codex models tramite lo stesso percorso di comando del gateway
    • facoltativamente eseguire due probe shell escalate revisionate da Guardian: un comando benigno che dovrebbe essere approvato e un falso upload di segreto che dovrebbe essere negato in modo che l’agente richieda conferma
  • Test: src/gateway/gateway-codex-harness.live.test.ts
  • Abilitazione: OPENCLAW_LIVE_CODEX_HARNESS=1
  • Modello predefinito: openai/gpt-5.2
  • Probe immagine facoltativa: OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1
  • Probe MCP/tool facoltativa: OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1
  • Probe Guardian facoltativa: OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1
  • Lo smoke imposta OPENCLAW_AGENT_HARNESS_FALLBACK=none così un harness Codex rotto non può passare ricadendo silenziosamente su PI.
  • Auth: autenticazione Codex app-server dal login locale della sottoscrizione Codex. Gli smoke Docker possono anche fornire OPENAI_API_KEY per probe non-Codex quando applicabile, più ~/.codex/auth.json e ~/.codex/config.toml copiati facoltativamente.
Ricetta locale:
source ~/.profile
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.2 \
  pnpm test:live -- src/gateway/gateway-codex-harness.live.test.ts
Ricetta Docker:
source ~/.profile
pnpm test:docker:live-codex-harness
Note Docker:
  • Il runner Docker si trova in scripts/test-live-codex-harness-docker.sh.
  • Carica il ~/.profile montato, passa OPENAI_API_KEY, copia i file auth della CLI Codex quando presenti, installa @openai/codex in un prefisso npm montato e scrivibile, prepara il sorgente, quindi esegue solo il test live dell’harness Codex.
  • Docker abilita per impostazione predefinita le probe immagine, MCP/tool e Guardian. Imposta OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0 o OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0 o OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0 quando hai bisogno di un’esecuzione di debug più ristretta.
  • Docker esporta anche OPENCLAW_AGENT_HARNESS_FALLBACK=none, corrispondendo alla configurazione del test live così alias legacy o fallback PI non possono nascondere una regressione dell’harness Codex.

Ricette live consigliate

Le allowlist ristrette ed esplicite sono le più rapide e le meno soggette a instabilità:
  • Modello singolo, diretto (senza gateway):
    • OPENCLAW_LIVE_MODELS="openai/gpt-5.2" pnpm test:live src/agents/models.profiles.live.test.ts
  • Modello singolo, gateway smoke:
    • OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Chiamata strumenti su più provider:
    • OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Focus Google (chiave API Gemini + Antigravity):
    • Gemini (chiave 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
Note:
  • google/... usa l’API Gemini (chiave API).
  • google-antigravity/... usa il bridge OAuth Antigravity (endpoint agente stile Cloud Code Assist).
  • google-gemini-cli/... usa la CLI Gemini locale sulla tua macchina (auth separata + particolarità di tooling).
  • API Gemini vs CLI Gemini:
    • API: OpenClaw chiama l’API Gemini ospitata da Google tramite HTTP (auth con chiave API / profilo); questo è ciò che la maggior parte degli utenti intende con “Gemini”.
    • CLI: OpenClaw esegue una shell verso un binario gemini locale; ha la propria autenticazione e può comportarsi diversamente (supporto streaming/strumenti/version skew).

Live: matrice dei modelli (cosa copriamo)

Non esiste un “elenco modelli CI” fisso (live è opt-in), ma questi sono i modelli consigliati da coprire regolarmente su una macchina di sviluppo con chiavi.

Insieme smoke moderno (chiamata strumenti + immagine)

Questa è l’esecuzione dei “modelli comuni” che ci aspettiamo continui a funzionare:
  • OpenAI (non-Codex): openai/gpt-5.2
  • OpenAI Codex OAuth: openai-codex/gpt-5.2
  • Anthropic: anthropic/claude-opus-4-6 (o anthropic/claude-sonnet-4-6)
  • Google (API Gemini): google/gemini-3.1-pro-preview e google/gemini-3-flash-preview (evita i modelli Gemini 2.x più vecchi)
  • Google (Antigravity): google-antigravity/claude-opus-4-6-thinking e google-antigravity/gemini-3-flash
  • Z.AI (GLM): zai/glm-4.7
  • MiniMax: minimax/MiniMax-M2.7
Esegui il gateway smoke con strumenti + immagine: OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,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,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts

Baseline: chiamata strumenti (Read + Exec facoltativo)

Scegline almeno uno per famiglia di provider:
  • OpenAI: openai/gpt-5.2
  • Anthropic: anthropic/claude-opus-4-6 (o anthropic/claude-sonnet-4-6)
  • Google: google/gemini-3-flash-preview (o google/gemini-3.1-pro-preview)
  • Z.AI (GLM): zai/glm-4.7
  • MiniMax: minimax/MiniMax-M2.7
Copertura aggiuntiva facoltativa (utile da avere):
  • xAI: xai/grok-4 (o l’ultima disponibile)
  • Mistral: mistral/… (scegline uno con capacità “tools” che hai abilitato)
  • Cerebras: cerebras/… (se hai accesso)
  • LM Studio: lmstudio/… (locale; la chiamata strumenti dipende dalla modalità API)

Vision: invio immagine (allegato → messaggio multimodale)

Includi almeno un modello con capacità immagine in OPENCLAW_LIVE_GATEWAY_MODELS (Claude/Gemini/varianti OpenAI con capacità vision, ecc.) per esercitare la probe immagine.

Aggregatori / gateway alternativi

Se hai chiavi abilitate, supportiamo anche i test tramite:
  • OpenRouter: openrouter/... (centinaia di modelli; usa openclaw models scan per trovare candidati con capacità tool+image)
  • OpenCode: opencode/... per Zen e opencode-go/... per Go (auth tramite OPENCODE_API_KEY / OPENCODE_ZEN_API_KEY)
Più provider che puoi includere nella matrice live (se hai credenziali/configurazione):
  • Integrati: openai, openai-codex, anthropic, google, google-vertex, google-antigravity, google-gemini-cli, zai, openrouter, opencode, opencode-go, xai, groq, cerebras, mistral, github-copilot
  • Tramite models.providers (endpoint personalizzati): minimax (cloud/API), più qualunque proxy compatibile OpenAI/Anthropic (LM Studio, vLLM, LiteLLM, ecc.)
Suggerimento: non cercare di codificare rigidamente “tutti i modelli” nella documentazione. L’elenco autorevole è ciò che discoverModels(...) restituisce sulla tua macchina + qualunque chiave sia disponibile.

Credenziali (mai fare commit)

I test live rilevano le credenziali allo stesso modo della CLI. Implicazioni pratiche:
  • Se la CLI funziona, i test live dovrebbero trovare le stesse chiavi.
  • Se un test live dice “no creds”, esegui il debug come faresti per openclaw models list / selezione del modello.
  • Profili auth per agente: ~/.openclaw/agents/<agentId>/agent/auth-profiles.json (questo è il significato di “profile keys” nei test live)
  • Configurazione: ~/.openclaw/openclaw.json (o OPENCLAW_CONFIG_PATH)
  • Directory di stato legacy: ~/.openclaw/credentials/ (copiata nella home live staged quando presente, ma non è l’archivio principale delle chiavi profilo)
  • Le esecuzioni locali live copiano per impostazione predefinita la configurazione attiva, i file auth-profiles.json per agente, la directory legacy credentials/ e le directory auth CLI esterne supportate in una home di test temporanea; le home live staged saltano workspace/ e sandboxes/, e gli override di percorso agents.*.workspace / agentDir vengono rimossi così le probe restano fuori dal tuo vero workspace host.
Se vuoi fare affidamento sulle chiavi env (ad esempio esportate nel tuo ~/.profile), esegui i test locali dopo source ~/.profile, oppure usa i runner Docker sotto (possono montare ~/.profile nel container).

Live Deepgram (trascrizione audio)

  • Test: extensions/deepgram/audio.live.test.ts
  • Abilitazione: DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts

Live BytePlus coding plan

  • Test: extensions/byteplus/live.test.ts
  • Abilitazione: BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts
  • Override facoltativo del modello: BYTEPLUS_CODING_MODEL=ark-code-latest

Live media workflow ComfyUI

  • Test: extensions/comfy/comfy.live.test.ts
  • Abilitazione: OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
  • Ambito:
    • Esercita i percorsi bundle comfy immagine, video e music_generate
    • Salta ogni capacità a meno che models.providers.comfy.<capability> non sia configurato
    • Utile dopo modifiche a invio workflow comfy, polling, download o registrazione del Plugin

Live generazione immagini

  • Test: test/image-generation.runtime.live.test.ts
  • Comando: pnpm test:live test/image-generation.runtime.live.test.ts
  • Harness: pnpm test:live:media image
  • Ambito:
    • Elenca ogni Plugin provider di generazione immagini registrato
    • Carica le variabili env del provider mancanti dalla tua shell di login (~/.profile) prima della probe
    • Usa per impostazione predefinita le chiavi API live/env prima dei profili auth archiviati, così chiavi di test obsolete in auth-profiles.json non mascherano le credenziali reali della shell
    • Salta i provider senza auth/profilo/modello utilizzabile
    • Esegue le varianti stock di generazione immagini tramite la capacità runtime condivisa:
      • google:flash-generate
      • google:pro-generate
      • google:pro-edit
      • openai:default-generate
  • Provider bundle attualmente coperti:
    • fal
    • google
    • minimax
    • openai
    • openrouter
    • vydra
    • xai
  • Restrizione facoltativa:
    • OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="openai,google,openrouter,xai"
    • 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"
  • Comportamento auth facoltativo:
    • OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 per forzare auth dall’archivio profili e ignorare gli override solo-env

Live generazione musicale

  • Test: extensions/music-generation-providers.live.test.ts
  • Abilitazione: OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts
  • Harness: pnpm test:live:media music
  • Ambito:
    • Esercita il percorso condiviso bundle del provider di generazione musicale
    • Attualmente copre Google e MiniMax
    • Carica le variabili env del provider dalla tua shell di login (~/.profile) prima della probe
    • Usa per impostazione predefinita le chiavi API live/env prima dei profili auth archiviati, così chiavi di test obsolete in auth-profiles.json non mascherano le credenziali reali della shell
    • Salta i provider senza auth/profilo/modello utilizzabile
    • Esegue entrambe le modalità runtime dichiarate quando disponibili:
      • generate con input solo prompt
      • edit quando il provider dichiara capabilities.edit.enabled
    • Copertura attuale della lane condivisa:
      • google: generate, edit
      • minimax: generate
      • comfy: file live Comfy separato, non questo sweep condiviso
  • Restrizione facoltativa:
    • OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"
    • OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.5+"
  • Comportamento auth facoltativo:
    • OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 per forzare auth dall’archivio profili e ignorare gli override solo-env

Live generazione video

  • Test: extensions/video-generation-providers.live.test.ts
  • Abilitazione: OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
  • Harness: pnpm test:live:media video
  • Ambito:
    • Esercita il percorso condiviso bundle del provider di generazione video
    • Usa per impostazione predefinita il percorso smoke sicuro per il rilascio: provider non-FAL, una richiesta text-to-video per provider, prompt lobster di un secondo e un limite di operazione per provider da OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS (180000 per impostazione predefinita)
    • Salta FAL per impostazione predefinita perché la latenza della coda lato provider può dominare i tempi di rilascio; passa --video-providers fal o OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal" per eseguirlo esplicitamente
    • Carica le variabili env del provider dalla tua shell di login (~/.profile) prima della probe
    • Usa per impostazione predefinita le chiavi API live/env prima dei profili auth archiviati, così chiavi di test obsolete in auth-profiles.json non mascherano le credenziali reali della shell
    • Salta i provider senza auth/profilo/modello utilizzabile
    • Esegue solo generate per impostazione predefinita
    • Imposta OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1 per eseguire anche le modalità transform dichiarate quando disponibili:
      • imageToVideo quando il provider dichiara capabilities.imageToVideo.enabled e il provider/modello selezionato accetta input immagine locale supportato da buffer nello sweep condiviso
      • videoToVideo quando il provider dichiara capabilities.videoToVideo.enabled e il provider/modello selezionato accetta input video locale supportato da buffer nello sweep condiviso
    • Provider imageToVideo attualmente dichiarati ma saltati nello sweep condiviso:
      • vydra perché il bundle veo3 è solo testo e il bundle kling richiede un URL immagine remoto
    • Copertura Vydra specifica del provider:
      • OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts
      • quel file esegue veo3 text-to-video più una lane kling che usa per impostazione predefinita una fixture con URL immagine remoto
    • Copertura live attuale videoToVideo:
      • runway solo quando il modello selezionato è runway/gen4_aleph
    • Provider videoToVideo attualmente dichiarati ma saltati nello sweep condiviso:
      • alibaba, qwen, xai perché quei percorsi richiedono al momento URL di riferimento remoti http(s) / MP4
      • google perché l’attuale lane Gemini/Veo condivisa usa input locale supportato da buffer e quel percorso non è accettato nello sweep condiviso
      • openai perché l’attuale lane condivisa non garantisce l’accesso specifico dell’organizzazione a video inpaint/remix
  • Restrizione facoltativa:
    • OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="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="" per includere ogni provider nello sweep predefinito, incluso FAL
    • OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000 per ridurre il limite di operazione di ogni provider per un’esecuzione smoke aggressiva
  • Comportamento auth facoltativo:
    • OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 per forzare auth dall’archivio profili e ignorare gli override solo-env

Harness live dei contenuti multimediali

  • Comando: pnpm test:live:media
  • Scopo:
    • Esegue le suite live condivise di immagini, musica e video tramite un unico entrypoint nativo del repo
    • Carica automaticamente le variabili env mancanti del provider da ~/.profile
    • Restringe automaticamente ogni suite ai provider che attualmente hanno auth utilizzabile per impostazione predefinita
    • Riusa scripts/test-live.mjs, così il comportamento di Heartbeat e quiet-mode resta coerente
  • Esempi:
    • pnpm test:live:media
    • pnpm test:live:media image video --providers openai,google,minimax
    • pnpm test:live:media video --video-providers openai,runway --all-providers
    • pnpm test:live:media music --quiet

Correlati

  • Testing — suite unit, integration, QA e Docker