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.invokegateway 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_IDoOPENCLAW_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
getApiKeyForModelper selezionare i modelli per cui hai credenziali - Eseguire un piccolo completamento per modello (e regressioni mirate dove necessario)
- Come abilitarlo:
pnpm test:live(oppureOPENCLAW_LIVE_TEST=1se invochi direttamente Vitest)
- Imposta
OPENCLAW_LIVE_MODELS=modern(oall, alias di modern) per eseguire effettivamente questa suite; altrimenti viene saltata per mantenerepnpm test:livefocalizzato sul gateway smoke - Come selezionare i modelli:
OPENCLAW_LIVE_MODELS=modernper 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=0per uno sweep modern esaustivo oppure un numero positivo per un limite più piccolo. - Gli sweep esaustivi usano
OPENCLAW_LIVE_TEST_TIMEOUT_MSper 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_CONCURRENCYper 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=1per 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 direadleggerlo e restituire il nonce. - probe
exec+read: il test chiede all’agente di scrivere viaexecun nonce in un file temporaneo, poi di rileggerlo conread. - 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.tsesrc/gateway/live-image-probe.ts.
- probe
- Come abilitarlo:
pnpm test:live(oppureOPENCLAW_LIVE_TEST=1se 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=0per 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+ probeexec+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
agentattachments: [{ 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)
- Il test genera un piccolo PNG con “CAT” + codice casuale (
- probe
provider/model), esegui:
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.tsdell’estensione proprietaria. - Abilitazione:
pnpm test:live(oppureOPENCLAW_LIVE_TEST=1se 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.
- Provider/modello predefinito:
- 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=1per 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 quandoIMAGE_ARGè impostato.OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1per inviare un secondo turno e convalidare il flusso di ripresa.OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0per disabilitare la probe predefinita di continuità nella stessa sessione Claude Sonnet -> Opus (imposta1per forzarla quando il modello selezionato supporta un target di switch).
- 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/codexo@google/gemini-cli) in un prefisso scrivibile in cache inOPENCLAW_DOCKER_CLI_TOOLS_DIR(predefinito:~/.cache/openclaw/docker-cli-tools). pnpm test:docker:live-cli-backend:claude-subscriptionrichiede OAuth portabile della sottoscrizione Claude Code tramite~/.claude/.credentials.jsonconclaudeAiOauth.subscriptionTypeoppureCLAUDE_CODE_OAUTH_TOKENdaclaude setup-token. Prima verificaclaude -pdiretto 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
cronverificata 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
- inviare
- Abilitazione:
pnpm test:live src/gateway/gateway-acp-bind.live.test.tsOPENCLAW_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
- Agenti ACP in Docker:
- Override:
OPENCLAW_LIVE_ACP_BIND_AGENT=claudeOPENCLAW_LIVE_ACP_BIND_AGENT=codexOPENCLAW_LIVE_ACP_BIND_AGENT=geminiOPENCLAW_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.2OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.2
- Note:
- Questa lane usa la superficie gateway
chat.sendcon 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_COMMANDnon è impostato, il test usa il registro agenti integrato del Plugin embeddedacpxper l’agente harness ACP selezionato.
- Questa lane usa la superficie gateway
- 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, poigemini. - Usa
OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,OPENCLAW_LIVE_ACP_BIND_AGENTS=codexoOPENCLAW_LIVE_ACP_BIND_AGENTS=geminiper restringere la matrice. - Carica
~/.profile, prepara nel container il materiale auth CLI corrispondente, installaacpxin un prefisso npm scrivibile, quindi installa la CLI live richiesta (@anthropic-ai/claude-code,@openai/codexo@google/gemini-cli) se manca. - Dentro Docker, il runner imposta
OPENCLAW_LIVE_ACP_BIND_ACPX_COMMAND=$HOME/.npm-global/bin/acpxcosì 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.2con l’harness Codex forzato - inviare un secondo turno alla stessa sessione OpenClaw e verificare che il thread dell’app-server possa riprendere
- eseguire
/codex statuse/codex modelstramite 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
- caricare il Plugin bundle
- 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=nonecosì 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_KEYper probe non-Codex quando applicabile, più~/.codex/auth.jsone~/.codex/config.tomlcopiati facoltativamente.
- Il runner Docker si trova in
scripts/test-live-codex-harness-docker.sh. - Carica il
~/.profilemontato, passaOPENAI_API_KEY, copia i file auth della CLI Codex quando presenti, installa@openai/codexin 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=0oOPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0oOPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0quando 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
- Gemini (chiave API):
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
geminilocale; 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(oanthropic/claude-sonnet-4-6) - Google (API Gemini):
google/gemini-3.1-pro-previewegoogle/gemini-3-flash-preview(evita i modelli Gemini 2.x più vecchi) - Google (Antigravity):
google-antigravity/claude-opus-4-6-thinkingegoogle-antigravity/gemini-3-flash - Z.AI (GLM):
zai/glm-4.7 - MiniMax:
minimax/MiniMax-M2.7
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(oanthropic/claude-sonnet-4-6) - Google:
google/gemini-3-flash-preview(ogoogle/gemini-3.1-pro-preview) - Z.AI (GLM):
zai/glm-4.7 - MiniMax:
minimax/MiniMax-M2.7
- 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 inOPENCLAW_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; usaopenclaw models scanper trovare candidati con capacità tool+image) - OpenCode:
opencode/...per Zen eopencode-go/...per Go (auth tramiteOPENCODE_API_KEY/OPENCODE_ZEN_API_KEY)
- 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.)
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(oOPENCLAW_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.jsonper agente, la directory legacycredentials/e le directory auth CLI esterne supportate in una home di test temporanea; le home live staged saltanoworkspace/esandboxes/, e gli override di percorsoagents.*.workspace/agentDirvengono rimossi così le probe restano fuori dal tuo vero workspace host.
~/.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
- Esercita i percorsi bundle comfy immagine, video e
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.jsonnon 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-generategoogle:pro-generategoogle:pro-editopenai:default-generate
- Provider bundle attualmente coperti:
falgoogleminimaxopenaiopenroutervydraxai
- 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=1per 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.jsonnon mascherano le credenziali reali della shell - Salta i provider senza auth/profilo/modello utilizzabile
- Esegue entrambe le modalità runtime dichiarate quando disponibili:
generatecon input solo prompteditquando il provider dichiaracapabilities.edit.enabled
- Copertura attuale della lane condivisa:
google:generate,editminimax:generatecomfy: 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=1per 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(180000per impostazione predefinita) - Salta FAL per impostazione predefinita perché la latenza della coda lato provider può dominare i tempi di rilascio; passa
--video-providers faloOPENCLAW_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.jsonnon mascherano le credenziali reali della shell - Salta i provider senza auth/profilo/modello utilizzabile
- Esegue solo
generateper impostazione predefinita - Imposta
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1per eseguire anche le modalità transform dichiarate quando disponibili:imageToVideoquando il provider dichiaracapabilities.imageToVideo.enablede il provider/modello selezionato accetta input immagine locale supportato da buffer nello sweep condivisovideoToVideoquando il provider dichiaracapabilities.videoToVideo.enablede il provider/modello selezionato accetta input video locale supportato da buffer nello sweep condiviso
- Provider
imageToVideoattualmente dichiarati ma saltati nello sweep condiviso:vydraperché il bundleveo3è solo testo e il bundleklingrichiede 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
veo3text-to-video più una laneklingche usa per impostazione predefinita una fixture con URL immagine remoto
- Copertura live attuale
videoToVideo:runwaysolo quando il modello selezionato èrunway/gen4_aleph
- Provider
videoToVideoattualmente dichiarati ma saltati nello sweep condiviso:alibaba,qwen,xaiperché quei percorsi richiedono al momento URL di riferimento remotihttp(s)/ MP4googleperché l’attuale lane Gemini/Veo condivisa usa input locale supportato da buffer e quel percorso non è accettato nello sweep condivisoopenaiperché 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 FALOPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000per ridurre il limite di operazione di ogni provider per un’esecuzione smoke aggressiva
- Comportamento auth facoltativo:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1per 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: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
Correlati
- Testing — suite unit, integration, QA e Docker