Pruebas: suites en vivo
Para el inicio rápido, ejecutores de QA, suites unitarias/de integración y flujos de Docker, consulte Testing. Esta página cubre las suites de pruebas en vivo (que tocan la red): matriz de modelos, backends de CLI, ACP y pruebas en vivo de proveedores de medios, además del manejo de credenciales.
En vivo: comandos de prueba de humo locales
Sección titulada «En vivo: comandos de prueba de humo locales»Exporte la clave del proveedor necesaria en el entorno del proceso antes de las comprobaciones en vivo ad hoc.
Prueba de humo segura de medios:
pnpm openclaw infer tts convert --local --json \ --text "OpenClaw live smoke." \ --output /tmp/openclaw-live-smoke.mp3Prueba de humo segura de preparación de llamadas de voz:
pnpm openclaw voicecall setup --jsonpnpm openclaw voicecall smoke --to "+15555550123"voicecall smoke es una ejecución en seco a menos que --yes también esté presente. Use --yes solo
cuando intencionalmente desee realizar una llamada de notificación real. Para Twilio, Telnyx y
Plivo, una verificación de preparación exitosa requiere una URL de webhook pública; las alternativas de
bucle local privado/privadas son rechazadas por diseño.
En vivo: barrido de capacidades del nodo Android
Sección titulada «En vivo: barrido de capacidades del nodo Android»- Prueba:
src/gateway/android-node.capabilities.live.test.ts - Script:
pnpm android:test:integration - Objetivo: invocar todos los comandos actualmente anunciados por un nodo Android conectado y afirmar el comportamiento del contrato del comando.
- Alcance:
- Configuración precondicionada/manual (la suite no instala/ejecuta/empareja la aplicación).
- Validación del gateway
node.invokecomando por comando para el nodo Android seleccionado.
- Configuración previa requerida:
- Aplicación Android ya conectada + emparejada con el gateway.
- Aplicación mantenida en primer plano.
- Permiso/consentimiento de captura otorgado para las capacidades que espera que pasen.
- Anulaciones 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: Android App
En vivo: prueba de humo del modelo (claves de perfil)
Sección titulada «En vivo: prueba de humo del modelo (claves de perfil)»Las pruebas en vivo se dividen en dos capas para que podamos aislar los fallos:
- “Direct model” nos indica si el proveedor/modelo puede responder en absoluto con la clave dada.
- “Gateway smoke” nos indica si la canalización completa de gateway+agente funciona para ese modelo (sesiones, historial, herramientas, política de sandbox, etc.).
Capa 1: Finalización directa del modelo (sin gateway)
Sección titulada «Capa 1: Finalización directa del modelo (sin gateway)»- Prueba:
src/agents/models.profiles.live.test.ts - Objetivo:
- Enumerar modelos descubiertos
- Use
getApiKeyForModelpara seleccionar los modelos para los que tiene credenciales - Ejecutar una pequeña finalización por modelo (y regresiones específicas donde sea necesario)
- Cómo habilitar:
pnpm test:live(oOPENCLAW_LIVE_TEST=1si invoca Vitest directamente)
- Establezca
OPENCLAW_LIVE_MODELS=modern(oall, alias para modern) para ejecutar realmente esta suite; de lo contrario, se omite para mantenerpnpm test:livecentrado en la prueba de humo del gateway - Cómo seleccionar modelos:
OPENCLAW_LIVE_MODELS=modernpara ejecutar la lista de permitidos 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 para la lista de permitidos moderna- o
OPENCLAW_LIVE_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,..."(lista de permitidos separada por comas) - Los barridos modernos/de todos por defecto usan un límite curado de alta señal; establezca
OPENCLAW_LIVE_MAX_MODELS=0para un barrido moderno exhaustivo o un número positivo para un límite más pequeño. - 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 un paralelismo de 20 vías por defecto; establezca
OPENCLAW_LIVE_MODEL_CONCURRENCYpara anular.
- Cómo seleccionar proveedores:
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(lista de permitidos con comas)
- De dónde provienen las claves:
- De manera predeterminada: almacén de perfiles y respaldos de variables de entorno
- Establezca
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1para forzar solo el almacén de perfiles
- Por qué esto existe:
- Separa “la API del proveedor está rota / la clave no es válida” de “la canalización del agente de puerta de enlace está rota”
- Contiene regresiones pequeñas y aisladas (ejemplo: OpenAI Responses/Codex Responses razonamiento reproducido + flujos de llamadas a herramientas)
Capa 2: Smoke de Gateway + agente de desarrollo (lo que “@openclaw” realmente hace)
Sección titulada «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:*(anulación de modelo por ejecución) - Iterar modelos-con-claves y afirmar:
- respuesta “significativa” (sin herramientas)
- funciona una invocación de herramienta real (sonda de lectura)
- sondas adicionales opcionales de herramientas (sonda exec+read)
- Las rutas de regresión de OpenAI (solo llamadas a herramientas → seguimiento) siguen funcionando
- Detalles de las sondas (para que pueda explicar los fallos rápidamente):
- Sonda
read: la prueba escribe un archivo nonce en el espacio de trabajo y pide al agente queready repita el nonce. - Sonda
exec+read: la prueba pide al agente queexec-escriba un nonce en un archivo temporal y luegoreadde 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.tsytest/helpers/live-image-probe.ts.
- Sonda
- Cómo habilitar:
pnpm test:live(oOPENCLAW_LIVE_TEST=1si se invoca Vitest directamente)
- Cómo seleccionar modelos:
- Predeterminado: lista blanca 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 para la lista de permitidos moderna- O establezca
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(o lista separada por comas) para reducir - Los barridos de puerta de enlace modernos/de todos por defecto usan un límite curado de alta señal; establezca
OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0para un barrido moderno exhaustivo o un número positivo para un límite más pequeño.
- Cómo seleccionar proveedores (evitar “todo OpenRouter”):
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(lista de permitidos con comas)
- Las sondas de herramienta + imagen siempre están activas en esta prueba en vivo:
- Sonda
read+ sondaexec+read(estrés de herramientas) - la sonda de imagen se ejecuta cuando el modelo anuncia compatibilidad con la entrada de imagen
- Flujo (nivel alto):
- La prueba genera un PNG diminuto con “CAT” + código aleatorio (
test/helpers/live-image-probe.ts) - Lo envía a través de
agentattachments: [{ mimeType: "image/png", content: "<base64>" }] - La puerta de enlace analiza los archivos adjuntos en
images[](src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - El agente integrado reenvía un mensaje multimodal de usuario al modelo
- Aserción: la respuesta contiene
cat+ el código (tolerancia OCR: se permiten errores menores)
- La prueba genera un PNG diminuto con “CAT” + código aleatorio (
- Sonda
Live: pruebas rápidas del backend de CLI (Claude, Gemini u otras CLIs locales)
Sección titulada «Live: pruebas rápidas del backend de CLI (Claude, Gemini u otras CLIs locales)»- Prueba:
src/gateway/gateway-cli-backend.live.test.ts - Objetivo: validar la canalización de Gateway + agente utilizando un backend de CLI local, sin tocar tu configuración predeterminada.
- Los valores predeterminados de las pruebas rápidas específicas del backend se encuentran en la definición
cli-backend.tsde la extensión propietaria. - Activar:
pnpm test:live(oOPENCLAW_LIVE_TEST=1si se invoca Vitest directamente)OPENCLAW_LIVE_CLI_BACKEND=1
- Valores predeterminados:
- Proveedor/modelo predeterminado:
claude-cli/claude-sonnet-4-6 - El comportamiento del comando/argumentos/imagen proviene de los metadatos del complemento del backend de CLI propietario.
- Proveedor/modelo predeterminado:
- anulaciones (opcional):
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=1para enviar un archivo adjunto de imagen real (las rutas se inyectan en el prompt). Las recetas de Docker desactivan esto de manera predeterminada a menos que se solicite explícitamente.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"para pasar las rutas de archivos de imagen como argumentos de CLI en lugar de inyección en el prompt.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(o"list") para controlar cómo se pasan los argumentos de imagen cuando se estableceIMAGE_ARG.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 participar en la sonda de continuidad de sesión de Claude Sonnet -> Opus cuando el modelo seleccionado admite un destino de cambio. Las recetas de Docker desactivan esto de manera predeterminada para una fiabilidad agregada.OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1para participar en la sonda de bucle invertido de MCP/herramientas. Las recetas de Docker desactivan esto de manera predeterminada a menos que se solicite explícitamente.
Ejemplo:
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.tsPrueba de humo de configuración MCP de Gemini económica:
OPENCLAW_LIVE_TEST=1 \ pnpm test:live src/agents/cli-runner/bundle-mcp.gemini.live.test.tsEsto no pide a Gemini que genere una respuesta. Escribe la misma configuración del sistema que OpenClaw da a Gemini, luego ejecuta gemini --debug mcp list para demostrar que un servidor transport: "streamable-http" guardado está normalizado a la forma HTTP MCP de Gemini y puede conectarse a un servidor MCP HTTP transmisible local.
Receta de Docker:
pnpm test:docker:live-cli-backendRecetas de Docker de un solo proveedor:
pnpm test:docker:live-cli-backend:claudepnpm test:docker:live-cli-backend:claude-subscriptionpnpm test:docker:live-cli-backend:geminiNotas:
- El ejecutor de Docker se encuentra en
scripts/test-live-cli-backend-docker.sh. - Ejecuta la prueba rápida del backend de CLI en vivo dentro de la imagen Docker del repositorio como el usuario
nodeque no es root. - Resuelve los metadatos de la prueba rápida de la CLI desde la extensión propietaria, luego instala el paquete de CLI de Linux coincidente (
@anthropic-ai/claude-codeo@google/gemini-cli) en un prefijo escribible almacenado en caché enOPENCLAW_DOCKER_CLI_TOOLS_DIR(predeterminado:~/.cache/openclaw/docker-cli-tools). pnpm test:docker:live-cli-backend:claude-subscriptionrequiere OAuth de suscripción portátil de Claude Code a través de~/.claude/.credentials.jsonconclaudeAiOauth.subscriptionTypeoCLAUDE_CODE_OAUTH_TOKENdeclaude setup-token. Primero prueba elclaude -pdirecto en Docker, luego ejecuta dos turnos de backend de CLI de Gateway sin conservar las variables de entorno de la clave de API de Anthropic. Este carril de suscripción deshabilita las sondas de MCP/herramienta e imagen de Claude de forma predeterminada porque Claude actualmente enruta el uso de aplicaciones de terceros a través de la facturación de uso adicional en lugar de los límites normales del plan de suscripción.- La prueba de humo del backend de CLI en vivo ahora ejercita el mismo flujo de extremo a extremo para Claude y Gemini: turno de texto, turno de clasificación de imágenes y luego la llamada a la herramienta
cronde MCP verificada a través de la CLI de gateway. - La prueba de humo predeterminada de Claude también parchea la sesión de Sonnet a Opus y verifica que la sesión reanudada aún recuerde una nota anterior.
Live: Accesibilidad del proxy HTTP/2 de APNs
Sección titulada «Live: Accesibilidad del proxy HTTP/2 de APNs»- Prueba:
src/infra/push-apns-http2.live.test.ts - Objetivo: hacer túnel a través de un proxy HTTP CONNECT local hasta el punto final de APNs de entorno de pruebas de Apple, enviar la solicitud de validación HTTP/2 de APNs y afirmar que la respuesta
403 InvalidProviderTokenreal de Apple vuelve a través de la ruta del proxy. - Activar:
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: prueba de humo de enlace ACP (/acp spawn ... --bind here)
Sección titulada «En vivo: prueba de humo 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 conversaciones de ACP con un agente ACP en vivo:
- enviar
/acp spawn <agent> --bind here - vincular una conversación de canal de mensajes sintética en su lugar
- enviar un seguimiento normal en esa misma conversación
- verificar que el seguimiento aterrice en la transcripción de la sesión ACP vinculada
- enviar
- Activar:
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 de ACP:
acpx
- Agentes ACP en Docker:
- Anulaciones:
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 utiliza la superficie
chat.sendde la puerta de enlace con campos de ruta de origen sintéticos solo para administradores, de modo que las pruebas puedan adjuntar contexto del canal de mensajes sin pretender entregar externamente. - Cuando
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMANDno está establecido, la prueba utiliza el registro de agentes integrado del complementoacpxpara el agente de arnés ACP seleccionado. - La creación de MCP cron de sesión vinculada es de mejor esfuerzo por defecto porque los arneses ACP externos pueden cancelar las llamadas MCP después de que la prueba de vinculación/imagen haya pasado; establezca
OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1para hacer estricta esa sonda cron posterior a la vinculación.
- Este carril utiliza la superficie
Ejemplo:
OPENCLAW_LIVE_ACP_BIND=1 \ OPENCLAW_LIVE_ACP_BIND_AGENT=claude \ pnpm test:live src/gateway/gateway-acp-bind.live.test.tsReceta de Docker:
pnpm test:docker:live-acp-bindRecetas de Docker de un solo agente:
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:opencodeNotas de Docker:
- El ejecutor de Docker se encuentra en
scripts/test-live-acp-bind-docker.sh. - Por defecto, ejecuta la prueba de humo de vinculación ACP contra los agentes CLI en vivo agregados en secuencia:
claude,codex, y luegogemini. - Use
OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,OPENCLAW_LIVE_ACP_BIND_AGENTS=codex,OPENCLAW_LIVE_ACP_BIND_AGENTS=droid,OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini, oOPENCLAW_LIVE_ACP_BIND_AGENTS=opencodepara limitar la matriz. - Prepara el material de autenticación CLI coincidente en el contenedor y luego instala el CLI en vivo solicitado (
@anthropic-ai/claude-code,@openai/codex, Factory Droid víahttps://app.factory.ai/cli,@google/gemini-cli, oopencode-ai) si falta. El backend ACP en sí es el paquete integradoacpx/runtimedel complemento oficialacpx. - La variante Docker de Droid prepara
~/.factorypara la configuración, reenvíaFACTORY_API_KEY, y requiere esa clave de API porque la autenticación OAuth/llavero local de Factory no es portable al contenedor. Utiliza la entrada de registrodroid exec --output-format acpintegrada de ACPX. - La variante Docker de OpenCode es un carril de regresión estricto de un solo agente. Escribe un modelo predeterminado
OPENCODE_CONFIG_CONTENTtemporal desdeOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(por defectoopencode/kimi-k2.6), ypnpm test:docker:live-acp-bind:opencoderequiere una transcripción de asistente vinculado en lugar de aceptar la omisión genérica posterior a la vinculación. - Las llamadas directas a la CLI
acpxson solo una ruta manual/solución alternativa para comparar el comportamiento fuera de la Gateway. La prueba de humo de vinculación ACP de Docker ejercita el backend de tiempo de ejecuciónacpxintegrado de OpenClaw.
En vivo: prueba de humo del arnés del servidor de aplicaciones de Codex
Sección titulada «En vivo: prueba de humo del arnés del servidor de aplicaciones de Codex»- Objetivo: validar el arnés de Codex propiedad del complemento a través de la pasarela normal
agentmétodo:- cargar el complemento
codexincluido - seleccionar
openai/gpt-5.5, que enruta los turnos del agente OpenAI a través de Codex de forma predeterminada - enviar un primer turno de agente de pasarela a
openai/gpt-5.5con el arnés de Codex seleccionado - enviar un segundo turno a la misma sesión de OpenClaw y verificar que el hilo del servidor de aplicaciones pueda reanudarse
- ejecutar
/codex statusy/codex modelsa través de la misma ruta de comandos de pasarela - opcionalmente ejecutar dos sondas de shell escaladas revisadas por Guardian: un comando benigno que debe ser aprobado y una carga falsa de secretos que debe ser denegada para que el agente vuelva a preguntar
- cargar el complemento
- Prueba:
src/gateway/gateway-codex-harness.live.test.ts - Activar:
OPENCLAW_LIVE_CODEX_HARNESS=1 - Modelo predeterminado:
openai/gpt-5.5 - Sonda de imagen opcional:
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 - Sonda de MCP/herramienta opcional:
OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 - Sonda de Guardian opcional:
OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 - La prueba forzada establece el proveedor/modelo
agentRuntime.id: "codex"para que un arnés de Codex roto no pueda pasar al retroceder silenciosamente a PI. - Autenticación: autenticación del servidor de aplicaciones Codex desde el inicio de sesión de la suscripción local a Codex. Las pruebas
de Docker también pueden proporcionar
OPENAI_API_KEYpara sondas que no son de Codex cuando sea aplicable, además de~/.codex/auth.jsony~/.codex/config.tomlcopiados opcionales.
Receta local:
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.tsReceta Docker:
pnpm test:docker:live-codex-harnessNotas Docker:
- El ejecutor de Docker se encuentra en
scripts/test-live-codex-harness-docker.sh. - Pasa
OPENAI_API_KEY, copia los archivos de autenticación de la CLI de Codex cuando están presentes, instala@openai/codexen un prefijo npm montado grabable, prepara el árbol de fuentes y luego ejecuta solo la prueba en vivo del arnés de Codex. - Docker habilita las sondas de imagen, MCP/herramienta y Guardian de forma predeterminada. Establezca
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0oOPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0oOPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0cuando necesite una ejecución de depuración más limitada. - Docker utiliza la misma configuración de tiempo de ejecución explícita de Codex, por lo que los alias heredados o la reserva de PI no pueden ocultar una regresión del arnés de Codex.
Recetas en vivo recomendadas
Sección titulada «Recetas en vivo recomendadas»Las listas de permitidos explícitos y estrechas son las más rápidas y las menos propensas a errores intermitentes:
-
Modelo único, directo (sin puerta de enlace):
OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts
-
Modelo único, prueba de humo de puerta de enlace:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Llamada a herramientas a través de 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:
- 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
- Predeterminado dinámico de Gemini 3:
Notas:
google/...usa la API de Gemini (clave de API).google-antigravity/...usa el puente OAuth de Antigravity (punto final del agente estilo Cloud Code Assist).google-gemini-cli/...usa la CLI de Gemini local en tu máquina (autenticación separada + peculiaridades de las herramientas).- API de Gemini vs CLI de Gemini:
- API: OpenClaw llama a la API de Gemini alojada de Google a través de HTTP (clave de API / autenticación de perfil); esto es lo que la mayoría de los usuarios entienden por “Gemini”.
- CLI: OpenClaw ejecuta un binario
geminilocal; tiene su propia autenticación y puede comportarse de manera diferente (streaming/soporte de herramientas/diferencia de versión).
Live: matriz de modelos (lo que cubrimos)
Sección titulada «Live: matriz de modelos (lo que cubrimos)»No hay una “lista de modelos de CI” fija (live es opcional), pero estos son los modelos recomendados para cubrir regularmente en una máquina de desarrollo con claves.
Conjunto de pruebas modernas (llamada a herramientas + imagen)
Sección titulada «Conjunto de pruebas modernas (llamada a herramientas + imagen)»Esta es la ejecución de “modelos comunes” que esperamos que siga 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(evitar los modelos más antiguos de Gemini 2.x) - 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
Ejecutar la prueba de humo de gateway con herramientas + imagen:
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)
Sección titulada «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
Cobertura adicional opcional (conveniente tener):
- xAI:
xai/grok-4.3(o la más reciente disponible) - Mistral:
mistral/… (elige un modelo con capacidad de “herramientas” que tengas habilitado) - Cerebras:
cerebras/… (si tienes acceso) - LM Studio:
lmstudio/… (local; la llamada a herramientas depende del modo API)
Visión: envío de imagen (archivo adjunto → mensaje multimodal)
Sección titulada «Visión: envío de imagen (archivo adjunto → mensaje multimodal)»Incluya al menos un modelo con capacidad de imagen en OPENCLAW_LIVE_GATEWAY_MODELS (variantes de Claude/Gemini/OpenAI con capacidad de visión, etc.) para ejercitar el sondeo de imágenes.
Agregadores / puertas de enlace alternativas
Sección titulada «Agregadores / puertas de enlace alternativas»Si tiene claves habilitadas, también admitimos las pruebas a través de:
- OpenRouter:
openrouter/...(cientos de modelos; useopenclaw models scanpara encontrar candidatos con capacidad de herramientas e imágenes) - OpenCode:
opencode/...para Zen yopencode-go/...para Go (autenticación medianteOPENCODE_API_KEY/OPENCODE_ZEN_API_KEY)
Más proveedores que puede incluir en la matriz en vivo (si tiene credenciales/configuración):
- Integrados:
openai,openai-codex,anthropic,google,google-vertex,google-antigravity,google-gemini-cli,zai,openrouter,opencode,opencode-go,xai,groq,cerebras,mistral,github-copilot - A través de
models.providers(puntos de conexión personalizados):minimax(nube/API), además de cualquier proxy compatible con OpenAI/Anthropic (LM Studio, vLLM, LiteLLM, etc.)
Credenciales (nunca las confirme)
Sección titulada «Credenciales (nunca las confirme)»Las pruebas en vivo descubren las 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 indica “sin credenciales”, depure de la misma manera en que depuraría
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 “claves de perfil” en las pruebas en vivo) -
Configuración:
~/.openclaw/openclaw.json(oOPENCLAW_CONFIG_PATH) -
Directorio de estado heredado:
~/.openclaw/credentials/(se copia en el hogar en vivo preparado cuando está presente, pero no es el almacén principal de claves de perfil) -
Las ejecuciones locales en vivo copian la configuración activa, los archivos
auth-profiles.jsonpor agente, loscredentials/heredados y los directorios de autenticación de CLI externos admitidos en un directorio de inicio de prueba temporal de forma predeterminada; los directorios de inicio en vivo preparados omitenworkspace/ysandboxes/, y las anulaciones de rutaagents.*.workspace/agentDirse eliminan para que los sondas no accedan a su espacio de trabajo real del host.
Si desea confiar en claves de entorno, expórtelas antes de las pruebas locales o use los ejecutores de Docker a continuación con un OPENCLAW_PROFILE_FILE explícito.
Deepgram en vivo (transcripción de audio)
Sección titulada «Deepgram en vivo (transcripción de audio)»- Prueba:
extensions/deepgram/audio.live.test.ts - Activar:
DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts
Plan de codificación BytePlus en vivo
Sección titulada «Plan de codificación BytePlus en vivo»- Prueba:
extensions/byteplus/live.test.ts - Activar:
BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts - Anulación de modelo opcional:
BYTEPLUS_CODING_MODEL=ark-code-latest
Medios de flujo de trabajo ComfyUI en vivo
Sección titulada «Medios de flujo de trabajo ComfyUI en vivo»- Prueba:
extensions/comfy/comfy.live.test.ts - Activar:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts - Alcance:
- Ejercita las rutas de imagen, video y
music_generateincluidas - Omite cada capacidad a menos que
plugins.entries.comfy.config.<capability>esté configurado - Útil después de cambiar el envío, sondeo, descargas o registro de complementos del flujo de trabajo de comfy
- Ejercita las rutas de imagen, video y
Generación de imágenes en vivo
Sección titulada «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 cada complemento de proveedor de generación de imágenes registrado
- Usa las variables de entorno del proveedor ya exportadas antes de sondear
- Usa claves API en vivo/por delante de los perfiles de autenticación almacenados de forma predeterminada, por lo que las claves de prueba obsoletas en
auth-profiles.jsonno enmascaran las credenciales reales del shell - Omite los proveedores sin autenticación/perfil/modelo utilizable
- Ejecuta cada proveedor configurado a través del tiempo de ejecución compartido de generación de imágenes:
<provider>:generate<provider>:editcuando el proveedor declara compatibilidad con edición
- Proveedores incluidos actualmente cubiertos:
deepinfrafalgoogleminimaxopenaiopenroutervydraxai
- Filtrado 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 anulaciones solo de entorno
Para la ruta de CLI distribuida, añada una prueba infer después de que la prueba en vivo del proveedor/runtime sea exitosa:
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 \ --jsonEsto cubre el análisis de argumentos de la CLI, la resolución de configuración/agente predeterminado, la activación de complementos integrados, el tiempo de ejecución compartido de generación de imágenes y la solicitud en vivo del proveedor. Se espera que las dependencias de los complementos estén presentes antes de la carga del tiempo de ejecución.
Generación de música en vivo
Sección titulada «Generación de música en vivo»- Prueba:
extensions/music-generation-providers.live.test.ts - Activar:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts - Arnés:
pnpm test:live:media music - Ámbito:
- Ejercita la ruta compartida e integrada del proveedor de generación de música
- Actualmente cubre Google y MiniMax
- Usa las variables de entorno del proveedor ya exportadas antes de sondear
- Usa claves API en vivo/de entorno por delante de los perfiles de autenticación almacenados de forma predeterminada, por lo que las claves de prueba obsoletas en
auth-profiles.jsonno enmascaran las credenciales reales del shell - Omite los proveedores sin autenticación/perfil/modelo utilizable
- Ejecuta ambos modos de tiempo de ejecución declarados cuando están disponibles:
generatecon entrada de solo prompteditcuando el proveedor declaracapabilities.edit.enabled
- Cobertura actual de carril compartido:
google:generate,editminimax:generatecomfy: archivo en vivo separado para Comfy, no este barrido compartido
- Filtrado 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 anulaciones solo de entorno
Generación de video en vivo
Sección titulada «Generación de video en vivo»- Prueba:
extensions/video-generation-providers.live.test.ts - Activar:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts - Arnés:
pnpm test:live:media video - Ámbito:
- Ejercita la ruta compartida e integrada del proveedor de generación de video
- Por defecto usa la ruta de prueba de humo segura para lanzamientos: proveedores que no son FAL, una solicitud de texto a video por proveedor, un prompt de langosta de un segundo y un límite de operaciones por proveedor de
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(180000por defecto) - Omite FAL por defecto porque la latencia de la cola del lado del proveedor puede dominar el tiempo de lanzamiento; pase
--video-providers faloOPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"para ejecutarlo explícitamente - Usa las variables de entorno del proveedor ya exportadas antes de sondear
- Usa claves API en vivo/entorno antes que los perfiles de autenticación almacenados por defecto, por lo que las claves de prueba obsoletas en
auth-profiles.jsonno enmascaran las credenciales reales del shell - Omite proveedores sin autenticación/perfil/modelo utilizable
- Ejecuta solo
generatepor defecto - Establezca
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1para también ejecutar 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 del 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 un accesorio de URL de imagen remota por defecto
- 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 remotas dehttp(s)/ MP4googleporque el carril compartido actual de Gemini/Veo usa entrada respaldada por búfer local y esa ruta no se acepta en el barrido compartidoopenaiporque el carril compartido actual carece de garantías de acceso específicas de la organización para la reparación/remix de video
- Reducció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 cada proveedor en el barrido predeterminado, incluyendo FALOPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000para reducir el límite de operaciones de cada proveedor para una ejecución de prueba rápida agresiva
- Comportamiento de autenticación opcional:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1para forzar la autenticación del almacén de perfiles e ignorar las anulaciones solo de entorno
Arnés de pruebas en vivo para medios
Sección titulada «Arnés de pruebas en vivo para medios»- Comando:
pnpm test:live:media - Propósito:
- Ejecuta las suites en vivo compartidas de imágenes, música y video a través de un punto de entrada nativo del repositorio
- Usa las variables de entorno del proveedor ya exportadas
- Reduce automáticamente cada suite a los proveedores que actualmente tienen autenticación utilizable de forma predeterminada
- Reutiliza
scripts/test-live.mjs, por lo que el comportamiento del latido y el 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
Sección titulada «Relacionado»- Testing - suites unitarias, de integración, QA y Docker