Para inicio rápido, ejecutores de QA, suites unitarias/de integración y flujos de Docker, consulta Pruebas. Esta página cubre las suites de prueba en vivo (que tocan la red): matriz de modelos, backends de CLI, ACP y pruebas en vivo de proveedores de medios, además de la gestión de credenciales.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.
En vivo: comandos smoke de perfil local
Ejecutasource ~/.profile antes de las comprobaciones en vivo ad hoc para que
las claves de proveedores y las rutas de herramientas locales coincidan con tu
shell:
voicecall smoke es una ejecución en seco salvo que --yes también esté presente.
Usa --yes solo cuando quieras realizar intencionadamente una llamada de
notificación real. Para Twilio, Telnyx y Plivo, una comprobación de preparación
correcta requiere una URL de webhook pública; los fallbacks de loopback/privados
solo locales se rechazan por diseño.
En vivo: barrido de capacidades de Node Android
- Prueba:
src/gateway/android-node.capabilities.live.test.ts - Script:
pnpm android:test:integration - Objetivo: invocar cada comando anunciado actualmente por un Node Android conectado y afirmar el comportamiento del contrato de comandos.
- Alcance:
- Configuración previa/manual (la suite no instala/ejecuta/empareja la app).
- Validación comando por comando de
node.invokedel gateway para el Node Android seleccionado.
- Configuración previa requerida:
- App Android ya conectada y emparejada con el gateway.
- App mantenida en primer plano.
- Permisos/consentimiento de captura concedidos para las capacidades que esperas que pasen.
- Sobrescrituras de destino opcionales:
OPENCLAW_ANDROID_NODE_IDoOPENCLAW_ANDROID_NODE_NAME.OPENCLAW_ANDROID_GATEWAY_URL/OPENCLAW_ANDROID_GATEWAY_TOKEN/OPENCLAW_ANDROID_GATEWAY_PASSWORD.
- Detalles completos de configuración de Android: App Android
En vivo: smoke de modelos (claves de perfil)
Las pruebas en vivo se dividen en dos capas para que podamos aislar fallos:- “Modelo directo” nos dice si el proveedor/modelo puede responder con la clave dada.
- “Smoke de Gateway” nos dice si la canalización completa de gateway+agente funciona para ese modelo (sesiones, historial, herramientas, política de sandbox, etc.).
Capa 1: completado directo de modelo (sin gateway)
- Prueba:
src/agents/models.profiles.live.test.ts - Objetivo:
- Enumerar modelos descubiertos
- Usar
getApiKeyForModelpara seleccionar modelos para los que tienes credenciales - Ejecutar un completado pequeño por modelo (y regresiones dirigidas cuando haga falta)
- Cómo habilitar:
pnpm test:live(oOPENCLAW_LIVE_TEST=1si invocas Vitest directamente)
- Define
OPENCLAW_LIVE_MODELS=modern(oall, alias de modern) para ejecutar realmente esta suite; de lo contrario se omite para mantenerpnpm test:livecentrado en el smoke de gateway - Cómo seleccionar modelos:
OPENCLAW_LIVE_MODELS=modernpara ejecutar la lista permitida moderna (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4.3)OPENCLAW_LIVE_MODELS=alles un alias de la lista permitida moderna- o
OPENCLAW_LIVE_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,..."(lista permitida separada por comas) - Los barridos modern/all usan de forma predeterminada un límite seleccionado de alta señal; define
OPENCLAW_LIVE_MAX_MODELS=0para un barrido moderno exhaustivo o un número positivo para un límite menor. - Los barridos exhaustivos usan
OPENCLAW_LIVE_TEST_TIMEOUT_MSpara el tiempo de espera de toda la prueba de modelo directo. Predeterminado: 60 minutos. - Las sondas de modelo directo se ejecutan con paralelismo de 20 vías de forma predeterminada; define
OPENCLAW_LIVE_MODEL_CONCURRENCYpara sobrescribirlo.
- Cómo seleccionar proveedores:
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(lista permitida separada por comas)
- De dónde vienen las claves:
- De forma predeterminada: almacén de perfiles y fallbacks de entorno
- Define
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1para aplicar solo almacén de perfiles
- Por qué existe esto:
- Separa “la API del proveedor está rota / la clave no es válida” de “la canalización de agente de gateway está rota”
- Contiene regresiones pequeñas y aisladas (ejemplo: reproducción de razonamiento de OpenAI Responses/Codex Responses + flujos de llamadas a herramientas)
Capa 2: smoke de Gateway + agente de desarrollo (lo que “@openclaw” realmente hace)
- Prueba:
src/gateway/gateway-models.profiles.live.test.ts - Objetivo:
- Iniciar un gateway en proceso
- Crear/parchear una sesión
agent:dev:*(sobrescritura de modelo por ejecución) - Iterar modelos con claves y afirmar:
- respuesta “significativa” (sin herramientas)
- una invocación real de herramienta funciona (sonda de lectura)
- sondas de herramientas adicionales opcionales (sonda exec+read)
- las rutas de regresión de OpenAI (solo llamada a herramienta → seguimiento) siguen funcionando
- Detalles de las sondas (para que puedas explicar fallos rápidamente):
- Sonda
read: la prueba escribe un archivo con nonce en el espacio de trabajo y pide al agente que loready devuelva el nonce. - Sonda
exec+read: la prueba pide al agente que hagaexecpara escribir un nonce en un archivo temporal y luego loreadde vuelta. - Sonda de imagen: la prueba adjunta un PNG generado (gato + código aleatorio) y espera que el modelo devuelva
cat <CODE>. - Referencia de implementación:
src/gateway/gateway-models.profiles.live.test.tsysrc/gateway/live-image-probe.ts.
- Sonda
- Cómo habilitar:
pnpm test:live(oOPENCLAW_LIVE_TEST=1si invocas Vitest directamente)
- Cómo seleccionar modelos:
- Predeterminado: lista permitida moderna (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=alles un alias de la lista permitida moderna- O define
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(o lista separada por comas) para acotar - Los barridos de gateway modern/all usan de forma predeterminada un límite seleccionado de alta señal; define
OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0para un barrido moderno exhaustivo o un número positivo para un límite menor.
- Cómo seleccionar proveedores (evita “todo OpenRouter”):
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(lista permitida separada por comas)
- Las sondas de herramientas + imagen siempre están activadas en esta prueba en vivo:
- sonda
read+ sondaexec+read(estrés de herramientas) - la sonda de imagen se ejecuta cuando el modelo anuncia soporte de entrada de imágenes
- Flujo (alto nivel):
- La prueba genera un PNG pequeño con “CAT” + código aleatorio (
src/gateway/live-image-probe.ts) - Lo envía mediante
agentattachments: [{ mimeType: "image/png", content: "<base64>" }] - Gateway analiza adjuntos en
images[](src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - El agente embebido reenvía un mensaje de usuario multimodal al modelo
- Afirmación: la respuesta contiene
cat+ el código (tolerancia OCR: se permiten errores menores)
- La prueba genera un PNG pequeño con “CAT” + código aleatorio (
- sonda
En vivo: smoke de backend de CLI (Claude, Codex, Gemini u otras CLI locales)
- Prueba:
src/gateway/gateway-cli-backend.live.test.ts - Objetivo: validar la canalización de Gateway + agente usando un backend de CLI local, sin tocar tu configuración predeterminada.
- Los valores predeterminados de smoke específicos del backend viven con la definición
cli-backend.tsdel plugin propietario. - Habilitar:
pnpm test:live(oOPENCLAW_LIVE_TEST=1si invocas Vitest directamente)OPENCLAW_LIVE_CLI_BACKEND=1
- Valores predeterminados:
- Proveedor/modelo predeterminado:
claude-cli/claude-sonnet-4-6 - El comportamiento de comando/args/imagen viene de los metadatos del plugin de backend de CLI propietario.
- Proveedor/modelo predeterminado:
- Sobrescrituras (opcionales):
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=1para enviar un adjunto de imagen real (las rutas se inyectan en el prompt). Las recetas de Docker desactivan esto de forma predeterminada salvo que se solicite explícitamente.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"para pasar rutas de archivos de imagen como args de CLI en lugar de inyección en prompt.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(o"list") para controlar cómo se pasan los args de imagen cuandoIMAGE_ARGestá definido.OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1para enviar un segundo turno y validar el flujo de reanudación.OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1para optar por la sonda de continuidad en la misma sesión de Claude Sonnet -> Opus cuando el modelo seleccionado admite un destino de cambio. Las recetas de Docker desactivan esto de forma predeterminada para la fiabilidad agregada.OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1para optar por la sonda de loopback de MCP/herramienta. Las recetas de Docker desactivan esto de forma predeterminada salvo que se solicite explícitamente.
gemini --debug mcp list
para demostrar que un servidor transport: "streamable-http" guardado se
normaliza a la forma HTTP MCP de Gemini y puede conectarse a un servidor MCP
streamable-HTTP local.
Receta de Docker:
- El ejecutor de Docker vive en
scripts/test-live-cli-backend-docker.sh. - Ejecuta el smoke de backend de CLI en vivo dentro de la imagen Docker del repo como el usuario
nodeno root. - Resuelve los metadatos de smoke de CLI desde la extensión propietaria y luego instala el paquete de CLI de Linux correspondiente (
@anthropic-ai/claude-code,@openai/codexo@google/gemini-cli) en un prefijo escribible en caché enOPENCLAW_DOCKER_CLI_TOOLS_DIR(predeterminado:~/.cache/openclaw/docker-cli-tools). pnpm test:docker:live-cli-backend:claude-subscriptionrequiere OAuth portable de suscripción de Claude Code mediante~/.claude/.credentials.jsonconclaudeAiOauth.subscriptionTypeoCLAUDE_CODE_OAUTH_TOKENdeclaude setup-token. Primero demuestraclaude -pdirecto en Docker y luego ejecuta dos turnos de backend de CLI de Gateway sin conservar vars de entorno de clave API de Anthropic. Esta vía de suscripción desactiva por defecto las sondas MCP/herramienta e imagen de Claude porque Claude actualmente enruta el uso de apps de terceros mediante facturación de uso extra en lugar de límites normales del plan de suscripción.- El smoke de backend de CLI en vivo ahora ejerce el mismo flujo de extremo a extremo para Claude, Codex y Gemini: turno de texto, turno de clasificación de imagen y luego llamada a herramienta
cronde MCP verificada mediante la CLI de gateway. - El smoke predeterminado de Claude también parchea la sesión de Sonnet a Opus y verifica que la sesión reanudada todavía recuerda una nota anterior.
En vivo: alcanzabilidad de proxy HTTP/2 de APNs
- Prueba:
src/infra/push-apns-http2.live.test.ts - Objetivo: tunelizar a través de un proxy HTTP CONNECT local hasta el endpoint APNs sandbox de Apple, enviar la solicitud de validación HTTP/2 de APNs y afirmar que la respuesta real
403 InvalidProviderTokende Apple vuelve por la ruta del proxy. - Habilitar:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts
- Tiempo de espera opcional:
OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000
En vivo: smoke de enlace ACP (/acp spawn ... --bind here)
- Prueba:
src/gateway/gateway-acp-bind.live.test.ts - Objetivo: validar el flujo real de vinculación de conversación ACP con un agente ACP en vivo:
- enviar
/acp spawn <agent> --bind here - vincular in situ una conversación sintética de canal de mensajes
- enviar un seguimiento normal en esa misma conversación
- verificar que el seguimiento llegue a la transcripción de la sesión ACP vinculada
- enviar
- Habilitar:
pnpm test:live src/gateway/gateway-acp-bind.live.test.tsOPENCLAW_LIVE_ACP_BIND=1
- Valores predeterminados:
- agentes ACP en Docker:
claude,codex,gemini - agente ACP para
pnpm test:live ...directo:claude - canal sintético: contexto de conversación estilo DM de Slack
- backend ACP:
acpx
- agentes ACP en Docker:
- Sobrescrituras:
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
- Notas:
- Este carril usa la superficie
chat.senddel gateway con campos de ruta de origen sintéticos solo para administradores, para que las pruebas puedan adjuntar contexto de canal de mensajes sin simular una entrega externa. - Cuando
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMANDno está definido, la prueba usa el registro de agentes integrado del pluginacpxembebido para el agente del entorno de pruebas ACP seleccionado. - La creación MCP de Cron de sesión vinculada es de mejor esfuerzo de forma predeterminada porque los entornos de prueba ACP externos pueden cancelar llamadas MCP después de que la prueba de vinculación/imagen haya pasado; define
OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1para hacer estricta esa sonda Cron posterior a la vinculación.
- Este carril usa la superficie
- El ejecutor de Docker vive en
scripts/test-live-acp-bind-docker.sh. - De forma predeterminada, ejecuta la prueba de humo de vinculación ACP contra los agentes CLI en vivo agregados en secuencia:
claude,codexy luegogemini. - Usa
OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,OPENCLAW_LIVE_ACP_BIND_AGENTS=codex,OPENCLAW_LIVE_ACP_BIND_AGENTS=droid,OPENCLAW_LIVE_ACP_BIND_AGENTS=geminiuOPENCLAW_LIVE_ACP_BIND_AGENTS=opencodepara acotar la matriz. - Carga
~/.profile, prepara el material de autenticación CLI correspondiente en el contenedor y luego instala la CLI en vivo solicitada (@anthropic-ai/claude-code,@openai/codex, Factory Droid mediantehttps://app.factory.ai/cli,@google/gemini-cliuopencode-ai) si falta. El backend ACP en sí es el paqueteacpx/runtimeembebido del plugin oficialacpx. - La variante Docker de Droid prepara
~/.factorypara la configuración, reenvíaFACTORY_API_KEYy requiere esa clave de API porque la autenticación local OAuth/keyring de Factory no es portable al contenedor. Usa la entrada de registro integrada de ACPXdroid exec --output-format acp. - La variante Docker de OpenCode es un carril estricto de regresión de un solo agente. Escribe un modelo predeterminado temporal
OPENCODE_CONFIG_CONTENTdesdeOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(predeterminadoopencode/kimi-k2.6) después de cargar~/.profile, ypnpm test:docker:live-acp-bind:opencoderequiere una transcripción de asistente vinculada en lugar de aceptar el salto genérico posterior a la vinculación. - Las llamadas directas a la CLI
acpxson solo una ruta manual/de solución alternativa para comparar el comportamiento fuera del Gateway. La prueba de humo Docker de vinculación ACP ejercita el backend de runtimeacpxembebido de OpenClaw.
En vivo: prueba de humo del entorno de pruebas del servidor de aplicación de Codex
- Objetivo: validar el entorno de pruebas Codex propiedad del plugin a través del método normal
agentdel gateway:- cargar el plugin
codexincluido - seleccionar
openai/gpt-5.5, que enruta por defecto los turnos de agente de OpenAI a través de Codex - enviar un primer turno de agente del gateway a
openai/gpt-5.5con el entorno de pruebas Codex seleccionado - enviar un segundo turno a la misma sesión de OpenClaw y verificar que el hilo del servidor de aplicación pueda reanudarse
- ejecutar
/codex statusy/codex modelsa través de la misma ruta de comando del gateway - opcionalmente ejecutar dos sondas de shell escaladas revisadas por Guardian: un comando benigno que debería aprobarse y una carga de secreto falso que debería denegarse para que el agente vuelva a preguntar
- cargar el plugin
- Prueba:
src/gateway/gateway-codex-harness.live.test.ts - Habilitar:
OPENCLAW_LIVE_CODEX_HARNESS=1 - Modelo predeterminado:
openai/gpt-5.5 - Sonda de imagen opcional:
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 - Sonda MCP/herramienta opcional:
OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 - Sonda Guardian opcional:
OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 - La prueba de humo fuerza el proveedor/modelo
agentRuntime.id: "codex"para que un entorno de pruebas Codex roto no pueda pasar mediante una recaída silenciosa a PI. - Autenticación: autenticación del servidor de aplicación Codex desde el inicio de sesión de suscripción local de Codex. Las pruebas de humo Docker también pueden proporcionar
OPENAI_API_KEYpara sondas no Codex cuando corresponda, además de~/.codex/auth.jsony~/.codex/config.tomlcopiados opcionalmente.
- El ejecutor de Docker vive en
scripts/test-live-codex-harness-docker.sh. - Carga el
~/.profilemontado, pasaOPENAI_API_KEY, copia los archivos de autenticación de la CLI de Codex cuando están presentes, instala@openai/codexen un prefijo npm montado con permisos de escritura, prepara el árbol de código fuente y luego ejecuta solo la prueba en vivo del entorno de pruebas Codex. - Docker habilita de forma predeterminada las sondas de imagen, MCP/herramienta y Guardian. Define
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0oOPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0oOPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0cuando necesites una ejecución de depuración más acotada. - Docker usa la misma configuración explícita del runtime Codex, por lo que los alias heredados o la recaída a PI no pueden ocultar una regresión del entorno de pruebas Codex.
Recetas en vivo recomendadas
Las listas de permitidos acotadas y explícitas son las más rápidas y las menos inestables:-
Un solo modelo, directo (sin gateway):
OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts
-
Un solo modelo, prueba de humo del gateway:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Llamadas a herramientas entre varios proveedores:
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
-
Enfoque en Google (clave de API de Gemini + Antigravity):
- Gemini (clave de 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 (clave de API):
-
Prueba de humo de pensamiento adaptativo de Google:
- Si las claves locales viven en el perfil de shell:
source ~/.profile - Valor predeterminado dinámico de 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 - Presupuesto dinámico de 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
- Si las claves locales viven en el perfil de shell:
google/...usa la API de Gemini (clave de API).google-antigravity/...usa el puente OAuth de Antigravity (endpoint de agente estilo Cloud Code Assist).google-gemini-cli/...usa la CLI local de Gemini en tu máquina (autenticación separada + particularidades de herramientas).- API de Gemini frente a CLI de Gemini:
- API: OpenClaw llama a la API alojada de Gemini de Google mediante HTTP (clave de API / autenticación de perfil); esto es lo que la mayoría de los usuarios quiere decir con “Gemini”.
- CLI: OpenClaw ejecuta un binario local
gemini; tiene su propia autenticación y puede comportarse de forma diferente (streaming/soporte de herramientas/desfase de versiones).
En vivo: matriz de modelos (lo que cubrimos)
No hay una “lista de modelos de CI” fija (en vivo es opcional), pero estos son los modelos recomendados para cubrir regularmente en una máquina de desarrollo con claves.Conjunto moderno de prueba de humo (llamada a herramientas + imagen)
Esta es la ejecución de “modelos comunes” que esperamos mantener funcionando:- OpenAI (no Codex):
openai/gpt-5.5 - OpenAI Codex OAuth:
openai-codex/gpt-5.5 - Anthropic:
anthropic/claude-opus-4-6(oanthropic/claude-sonnet-4-6) - Google (API de Gemini):
google/gemini-3.1-pro-previewygoogle/gemini-3-flash-preview(evita modelos Gemini 2.x más antiguos) - Google (Antigravity):
google-antigravity/claude-opus-4-6-thinkingygoogle-antigravity/gemini-3-flash - DeepSeek:
deepseek/deepseek-v4-flashydeepseek/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
Línea base: llamada a herramientas (Read + Exec opcional)
Elige al menos uno por familia de proveedores:- OpenAI:
openai/gpt-5.5 - Anthropic:
anthropic/claude-opus-4-6(oanthropic/claude-sonnet-4-6) - Google:
google/gemini-3-flash-preview(ogoogle/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(o el más reciente disponible) - Mistral:
mistral/… (elige un modelo compatible con “tools” que tengas habilitado) - Cerebras:
cerebras/… (si tienes acceso) - LM Studio:
lmstudio/… (local; la llamada a herramientas depende del modo de API)
Visión: envío de imagen (adjunto → mensaje multimodal)
Incluye al menos un modelo compatible con imágenes enOPENCLAW_LIVE_GATEWAY_MODELS (variantes compatibles con visión de Claude/Gemini/OpenAI, etc.) para ejercitar la sonda de imagen.
Agregadores / gateways alternativos
Si tienes claves habilitadas, también admitimos pruebas mediante:- OpenRouter:
openrouter/...(cientos de modelos; usaopenclaw models scanpara encontrar candidatos compatibles con herramientas+imagen) - OpenCode:
opencode/...para Zen yopencode-go/...para Go (autenticación medianteOPENCODE_API_KEY/OPENCODE_ZEN_API_KEY)
- Integrados:
openai,openai-codex,anthropic,google,google-vertex,google-antigravity,google-gemini-cli,zai,openrouter,opencode,opencode-go,xai,groq,cerebras,mistral,github-copilot - Mediante
models.providers(endpoints personalizados):minimax(nube/API), además de cualquier proxy compatible con OpenAI/Anthropic (LM Studio, vLLM, LiteLLM, etc.)
Credenciales (nunca confirmar)
Las pruebas en vivo descubren credenciales de la misma manera que lo hace la CLI. Implicaciones prácticas:- Si la CLI funciona, las pruebas en vivo deberían encontrar las mismas claves.
-
Si una prueba en vivo dice “no creds”, depúrala del mismo modo en que depurarías
openclaw models list/ la selección de modelo. -
Perfiles de autenticación por agente:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json(esto es lo que significa “profile keys” en las pruebas en vivo) -
Configuración:
~/.openclaw/openclaw.json(oOPENCLAW_CONFIG_PATH) -
Directorio de estado heredado:
~/.openclaw/credentials/(se copia en el home en vivo preparado cuando existe, pero no es el almacén principal de claves de perfil) -
Las ejecuciones locales en vivo copian de forma predeterminada la configuración activa, los archivos
auth-profiles.jsonpor agente,credentials/heredado y los directorios de autenticación de CLI externos admitidos en un home de prueba temporal; los homes en vivo preparados omitenworkspace/ysandboxes/, y las sobrescrituras de rutaagents.*.workspace/agentDirse eliminan para que las sondas permanezcan fuera del espacio de trabajo real de tu host.
~/.profile), ejecuta las pruebas locales después de source ~/.profile, o usa los runners Docker siguientes (pueden montar ~/.profile en el contenedor).
Deepgram en vivo (transcripción de audio)
- Prueba:
extensions/deepgram/audio.live.test.ts - Habilitar:
DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts
Plan de codificación BytePlus en vivo
- Prueba:
extensions/byteplus/live.test.ts - Habilitar:
BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts - Sobrescritura opcional de modelo:
BYTEPLUS_CODING_MODEL=ark-code-latest
Multimedia de flujo de trabajo ComfyUI en vivo
- Prueba:
extensions/comfy/comfy.live.test.ts - Habilitar:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts - Alcance:
- Ejercita las rutas incluidas de imagen, video y
music_generatede comfy - Omite cada capacidad a menos que
plugins.entries.comfy.config.<capability>esté configurado - Útil después de cambiar el envío de flujos de trabajo comfy, el sondeo, las descargas o el registro de plugins
- Ejercita las rutas incluidas de imagen, video y
Generación de imágenes en vivo
- Prueba:
test/image-generation.runtime.live.test.ts - Comando:
pnpm test:live test/image-generation.runtime.live.test.ts - Arnés:
pnpm test:live:media image - Alcance:
- Enumera todos los Plugin proveedores registrados de generación de imágenes
- Carga las variables de entorno de proveedor faltantes desde tu shell de inicio de sesión (
~/.profile) antes de sondear - Usa de forma predeterminada las claves API en vivo/de entorno antes que los perfiles de autenticación almacenados, por lo que las claves de prueba obsoletas en
auth-profiles.jsonno ocultan credenciales reales del shell - Omite proveedores sin autenticación/perfil/modelo utilizable
- Ejecuta cada proveedor configurado a través del runtime compartido de generación de imágenes:
<provider>:generate<provider>:editcuando el proveedor declara compatibilidad con edición
- Proveedores incluidos cubiertos actualmente:
deepinfrafalgoogleminimaxopenaiopenroutervydraxai
- Limitación opcional:
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"
- Comportamiento de autenticación opcional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1para forzar la autenticación del almacén de perfiles e ignorar las sobrescrituras solo de entorno
infer después de que
pase la prueba en vivo del proveedor/runtime:
Generación de música en vivo
- Prueba:
extensions/music-generation-providers.live.test.ts - Habilitar:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts - Arnés:
pnpm test:live:media music - Alcance:
- Ejercita la ruta compartida incluida de proveedor de generación de música
- Actualmente cubre Google y MiniMax
- Carga las variables de entorno de proveedor desde tu shell de inicio de sesión (
~/.profile) antes de sondear - Usa de forma predeterminada las claves API en vivo/de entorno antes que los perfiles de autenticación almacenados, por lo que las claves de prueba obsoletas en
auth-profiles.jsonno ocultan credenciales reales del shell - Omite proveedores sin autenticación/perfil/modelo utilizable
- Ejecuta ambos modos de runtime declarados cuando están disponibles:
generatecon entrada solo de prompteditcuando el proveedor declaracapabilities.edit.enabled
- Cobertura actual del carril compartido:
google:generate,editminimax:generatecomfy: archivo Comfy en vivo separado, no este barrido compartido
- Limitación opcional:
OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"
- Comportamiento de autenticación opcional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1para forzar la autenticación del almacén de perfiles e ignorar las sobrescrituras solo de entorno
Generación de video en vivo
- Prueba:
extensions/video-generation-providers.live.test.ts - Habilitar:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts - Arnés:
pnpm test:live:media video - Alcance:
- Ejercita la ruta compartida incluida de proveedor de generación de video
- Usa de forma predeterminada la ruta de prueba de humo segura para lanzamientos: proveedores que no son FAL, una solicitud de texto a video por proveedor, prompt de langosta de un segundo y un límite de operación por proveedor desde
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(180000de forma predeterminada) - Omite FAL de forma predeterminada porque la latencia de la cola del lado del proveedor puede dominar el tiempo de lanzamiento; pasa
--video-providers faloOPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"para ejecutarlo explícitamente - Carga las variables de entorno de proveedor desde tu shell de inicio de sesión (
~/.profile) antes de sondear - Usa de forma predeterminada las claves API en vivo/de entorno antes que los perfiles de autenticación almacenados, por lo que las claves de prueba obsoletas en
auth-profiles.jsonno ocultan credenciales reales del shell - Omite proveedores sin autenticación/perfil/modelo utilizable
- Ejecuta solo
generatede forma predeterminada - Define
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1para ejecutar también los modos de transformación declarados cuando estén disponibles:imageToVideocuando el proveedor declaracapabilities.imageToVideo.enabledy el proveedor/modelo seleccionado acepta entrada de imagen local respaldada por búfer en el barrido compartidovideoToVideocuando el proveedor declaracapabilities.videoToVideo.enabledy el proveedor/modelo seleccionado acepta entrada de video local respaldada por búfer en el barrido compartido
- Proveedores
imageToVideodeclarados pero omitidos actualmente en el barrido compartido:vydraporque elveo3incluido es solo de texto y elklingincluido requiere una URL de imagen remota
- Cobertura específica de proveedor para Vydra:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts- ese archivo ejecuta
veo3de texto a video más un carrilklingque usa de forma predeterminada un fixture de URL de imagen remota
- Cobertura en vivo actual de
videoToVideo:runwaysolo cuando el modelo seleccionado esrunway/gen4_aleph
- Proveedores
videoToVideodeclarados pero omitidos actualmente en el barrido compartido:alibaba,qwen,xaiporque esas rutas actualmente requieren URLs de referencia remotashttp(s)/ MP4googleporque el carril compartido actual Gemini/Veo usa entrada local respaldada por búfer y esa ruta no se acepta en el barrido compartidoopenaiporque el carril compartido actual carece de garantías de acceso a inpainting/remix de video específicas de la organización
- Limitación opcional:
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=""para incluir todos los proveedores en el barrido predeterminado, incluido FALOPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000para reducir el límite de operación de cada proveedor en una prueba de humo agresiva
- Comportamiento de autenticación opcional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1para forzar la autenticación del almacén de perfiles e ignorar las sobrescrituras solo de entorno
Arnés multimedia en vivo
- Comando:
pnpm test:live:media - Propósito:
- Ejecuta las suites en vivo compartidas de imagen, música y video a través de un único punto de entrada nativo del repositorio
- Carga automáticamente las variables de entorno de proveedor faltantes desde
~/.profile - Limita automáticamente cada suite de forma predeterminada a proveedores que actualmente tienen autenticación utilizable
- Reutiliza
scripts/test-live.mjs, por lo que el comportamiento de Heartbeat y modo silencioso se mantiene consistente
- Ejemplos:
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
Relacionado
- Pruebas - suites unitarias, de integración, de QA y Docker