Pour le démarrage rapide, les exécuteurs QA, les suites unitaires/d’intégration et les flux Docker, consultez Tests. Cette page couvre les suites de test live (qui touchent au réseau) : matrice de modèles, backends CLI, ACP et tests live des fournisseurs multimédias, ainsi que la gestion des identifiants.Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Live : commandes de smoke locales avec profil
Sourcez~/.profile avant les vérifications live ad hoc afin que les clés de fournisseurs et les chemins
d’outils locaux correspondent à votre shell :
voicecall smoke est une simulation, sauf si --yes est également présent. Utilisez --yes uniquement
lorsque vous voulez intentionnellement passer un véritable appel de notification. Pour Twilio, Telnyx et
Plivo, une vérification de préparation réussie nécessite une URL Webhook publique ; les solutions de repli
loopback locales uniquement/privées sont rejetées par conception.
Live : balayage des capacités du nœud Android
- Test :
src/gateway/android-node.capabilities.live.test.ts - Script :
pnpm android:test:integration - Objectif : invoquer chaque commande actuellement annoncée par un nœud Android connecté et vérifier le comportement du contrat de commande.
- Portée :
- Configuration préalable/manuelle (la suite n’installe pas, n’exécute pas et n’appaire pas l’application).
- Validation Gateway
node.invoke, commande par commande, pour le nœud Android sélectionné.
- Préconfiguration requise :
- Application Android déjà connectée et appairée au Gateway.
- Application maintenue au premier plan.
- Autorisations/consentement de capture accordés pour les capacités que vous vous attendez à voir réussir.
- Remplacements de cible facultatifs :
OPENCLAW_ANDROID_NODE_IDouOPENCLAW_ANDROID_NODE_NAME.OPENCLAW_ANDROID_GATEWAY_URL/OPENCLAW_ANDROID_GATEWAY_TOKEN/OPENCLAW_ANDROID_GATEWAY_PASSWORD.
- Détails complets de configuration Android : Application Android
Live : smoke des modèles (clés de profil)
Les tests live sont séparés en deux couches afin d’isoler les échecs :- « Modèle direct » nous indique si le fournisseur/modèle peut répondre avec la clé donnée.
- « Smoke Gateway » nous indique si le pipeline complet gateway+agent fonctionne pour ce modèle (sessions, historique, outils, stratégie de sandbox, etc.).
Couche 1 : complétion directe du modèle (sans Gateway)
- Test :
src/agents/models.profiles.live.test.ts - Objectif :
- Énumérer les modèles découverts
- Utiliser
getApiKeyForModelpour sélectionner les modèles pour lesquels vous avez des identifiants - Exécuter une petite complétion par modèle (et des régressions ciblées si nécessaire)
- Activation :
pnpm test:live(ouOPENCLAW_LIVE_TEST=1si vous invoquez Vitest directement)
- Définissez
OPENCLAW_LIVE_MODELS=modern(ouall, alias de modern) pour exécuter réellement cette suite ; sinon elle est ignorée afin de garderpnpm test:livecentré sur le smoke Gateway - Sélection des modèles :
OPENCLAW_LIVE_MODELS=modernpour exécuter la liste d’autorisation moderne (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4.3)OPENCLAW_LIVE_MODELS=allest un alias de la liste d’autorisation moderne- ou
OPENCLAW_LIVE_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,..."(liste d’autorisation séparée par des virgules) - Les balayages modern/all utilisent par défaut une limite organisée à signal élevé ; définissez
OPENCLAW_LIVE_MAX_MODELS=0pour un balayage moderne exhaustif ou un nombre positif pour une limite plus petite. - Les balayages exhaustifs utilisent
OPENCLAW_LIVE_TEST_TIMEOUT_MSpour le délai d’expiration global du test de modèle direct. Valeur par défaut : 60 minutes. - Les sondes de modèle direct s’exécutent par défaut avec un parallélisme de 20 ; définissez
OPENCLAW_LIVE_MODEL_CONCURRENCYpour le remplacer.
- Sélection des fournisseurs :
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(liste d’autorisation séparée par des virgules)
- Provenance des clés :
- Par défaut : magasin de profils et solutions de repli d’environnement
- Définissez
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1pour imposer uniquement le magasin de profils
- Pourquoi cela existe :
- Sépare « l’API fournisseur est cassée / la clé est invalide » de « le pipeline d’agent Gateway est cassé »
- Contient de petites régressions isolées (exemple : relecture de raisonnement OpenAI Responses/Codex Responses + flux d’appels d’outils)
Couche 2 : smoke Gateway + agent de développement (ce que fait réellement « @openclaw »)
- Test :
src/gateway/gateway-models.profiles.live.test.ts - Objectif :
- Démarrer un Gateway en processus
- Créer/corriger une session
agent:dev:*(remplacement de modèle à chaque exécution) - Parcourir les modèles avec clés et vérifier :
- réponse « significative » (sans outils)
- un véritable appel d’outil fonctionne (sonde de lecture)
- sondes d’outils supplémentaires facultatives (sonde exec+read)
- les chemins de régression OpenAI (appel d’outil uniquement → suivi) continuent de fonctionner
- Détails des sondes (pour expliquer rapidement les échecs) :
- sonde
read: le test écrit un fichier nonce dans l’espace de travail et demande à l’agent de lereadpuis de renvoyer le nonce. - sonde
exec+read: le test demande à l’agent d’écrire, viaexec, un nonce dans un fichier temporaire, puis de le relire avecread. - sonde d’image : le test joint un PNG généré (cat + code aléatoire) et s’attend à ce que le modèle renvoie
cat <CODE>. - Référence d’implémentation :
src/gateway/gateway-models.profiles.live.test.tsetsrc/gateway/live-image-probe.ts.
- sonde
- Activation :
pnpm test:live(ouOPENCLAW_LIVE_TEST=1si vous invoquez Vitest directement)
- Sélection des modèles :
- Par défaut : liste d’autorisation moderne (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=allest un alias de la liste d’autorisation moderne- Ou définissez
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(ou une liste séparée par des virgules) pour restreindre - Les balayages Gateway modern/all utilisent par défaut une limite organisée à signal élevé ; définissez
OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0pour un balayage moderne exhaustif ou un nombre positif pour une limite plus petite.
- Sélection des fournisseurs (éviter « tout OpenRouter ») :
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(liste d’autorisation séparée par des virgules)
- Les sondes d’outils et d’images sont toujours activées dans ce test live :
- sonde
read+ sondeexec+read(stress des outils) - la sonde d’image s’exécute lorsque le modèle annonce la prise en charge de l’entrée image
- Flux (vue d’ensemble) :
- Le test génère un petit PNG avec « CAT » + code aléatoire (
src/gateway/live-image-probe.ts) - L’envoie via
agentattachments: [{ mimeType: "image/png", content: "<base64>" }] - Gateway analyse les pièces jointes en
images[](src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - L’agent intégré transmet au modèle un message utilisateur multimodal
- Assertion : la réponse contient
cat+ le code (tolérance OCR : erreurs mineures autorisées)
- Le test génère un petit PNG avec « CAT » + code aléatoire (
- sonde
Live : smoke du backend CLI (Claude, Codex, Gemini ou autres CLI locales)
- Test :
src/gateway/gateway-cli-backend.live.test.ts - Objectif : valider le pipeline Gateway + agent avec un backend CLI local, sans toucher à votre configuration par défaut.
- Les valeurs par défaut de smoke propres au backend vivent avec la définition
cli-backend.tsde l’extension propriétaire. - Activer :
pnpm test:live(ouOPENCLAW_LIVE_TEST=1si vous invoquez Vitest directement)OPENCLAW_LIVE_CLI_BACKEND=1
- Valeurs par défaut :
- Fournisseur/modèle par défaut :
claude-cli/claude-sonnet-4-6 - Le comportement commande/arguments/image provient des métadonnées du Plugin backend CLI propriétaire.
- Fournisseur/modèle par défaut :
- Remplacements (facultatifs) :
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=1pour envoyer une véritable pièce jointe image (les chemins sont injectés dans le prompt). Les recettes Docker désactivent cela par défaut sauf demande explicite.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"pour passer les chemins de fichiers image comme arguments CLI au lieu d’une injection dans le prompt.OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(ou"list") pour contrôler la manière dont les arguments d’image sont passés lorsqueIMAGE_ARGest défini.OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1pour envoyer un second tour et valider le flux de reprise.OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1pour activer la sonde de continuité de même session Claude Sonnet -> Opus lorsque le modèle sélectionné prend en charge une cible de bascule. Les recettes Docker désactivent cela par défaut pour la fiabilité agrégée.OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1pour activer la sonde MCP/outil loopback. Les recettes Docker désactivent cela par défaut sauf demande explicite.
gemini --debug mcp list pour prouver qu’un serveur
transport: "streamable-http" enregistré est normalisé vers la forme MCP HTTP de Gemini
et peut se connecter à un serveur MCP streamable-HTTP local.
Recette Docker :
- L’exécuteur Docker se trouve dans
scripts/test-live-cli-backend-docker.sh. - Il exécute le smoke live du backend CLI dans l’image Docker du dépôt en tant qu’utilisateur non root
node. - Il résout les métadonnées de smoke CLI depuis l’extension propriétaire, puis installe le package CLI Linux correspondant (
@anthropic-ai/claude-code,@openai/codexou@google/gemini-cli) dans un préfixe inscriptible mis en cache àOPENCLAW_DOCKER_CLI_TOOLS_DIR(par défaut :~/.cache/openclaw/docker-cli-tools). pnpm test:docker:live-cli-backend:claude-subscriptionnécessite l’OAuth portable d’abonnement Claude Code via~/.claude/.credentials.jsonavecclaudeAiOauth.subscriptionTypeouCLAUDE_CODE_OAUTH_TOKENdepuisclaude setup-token. Il prouve d’abordclaude -pdirect dans Docker, puis exécute deux tours Gateway CLI-backend sans conserver les variables d’environnement de clé API Anthropic. Cette voie d’abonnement désactive par défaut les sondes MCP/outil et image de Claude, car Claude route actuellement l’usage par des applications tierces via une facturation d’utilisation supplémentaire plutôt que via les limites normales du plan d’abonnement.- Le smoke live du backend CLI exerce désormais le même flux de bout en bout pour Claude, Codex et Gemini : tour texte, tour de classification d’image, puis appel d’outil MCP
cronvérifié via la CLI Gateway. - Le smoke par défaut de Claude corrige également la session de Sonnet vers Opus et vérifie que la session reprise se souvient encore d’une note antérieure.
Live : accessibilité du proxy HTTP/2 APNs
- Test :
src/infra/push-apns-http2.live.test.ts - Objectif : passer par un proxy HTTP CONNECT local jusqu’au point de terminaison APNs sandbox d’Apple, envoyer la requête de validation HTTP/2 APNs et vérifier que la véritable réponse
403 InvalidProviderTokend’Apple revient par le chemin du proxy. - Activer :
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts
- Délai d’expiration facultatif :
OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000
Live : smoke de bind ACP (/acp spawn ... --bind here)
- Test :
src/gateway/gateway-acp-bind.live.test.ts - Objectif : valider le flux réel de liaison de conversation ACP avec un agent ACP en direct :
- envoyer
/acp spawn <agent> --bind here - lier en place une conversation synthétique de canal de messages
- envoyer un suivi normal dans cette même conversation
- vérifier que le suivi arrive dans la transcription de session ACP liée
- envoyer
- Activer :
pnpm test:live src/gateway/gateway-acp-bind.live.test.tsOPENCLAW_LIVE_ACP_BIND=1
- Valeurs par défaut :
- Agents ACP dans Docker :
claude,codex,gemini - Agent ACP pour
pnpm test:live ...direct :claude - Canal synthétique : contexte de conversation de type MP Slack
- Backend ACP :
acpx
- Agents ACP dans Docker :
- Remplacements :
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
- Notes :
- Cette voie utilise la surface
chat.senddu gateway avec des champs de route d’origine synthétiques réservés aux administrateurs, afin que les tests puissent attacher un contexte de canal de messages sans prétendre livrer en externe. - Lorsque
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMANDn’est pas défini, le test utilise le registre d’agents intégré du pluginacpxembarqué pour l’agent de harnais ACP sélectionné. - La création MCP Cron de session liée est en mode meilleur effort par défaut, car les harnais ACP externes peuvent annuler les appels MCP après la réussite de la preuve de liaison/image ; définissez
OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1pour rendre cette sonde Cron post-liaison stricte.
- Cette voie utilise la surface
- Le lanceur Docker se trouve dans
scripts/test-live-acp-bind-docker.sh. - Par défaut, il exécute le smoke de liaison ACP contre les agents CLI en direct agrégés dans l’ordre :
claude,codex, puisgemini. - Utilisez
OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,OPENCLAW_LIVE_ACP_BIND_AGENTS=codex,OPENCLAW_LIVE_ACP_BIND_AGENTS=droid,OPENCLAW_LIVE_ACP_BIND_AGENTS=geminiouOPENCLAW_LIVE_ACP_BIND_AGENTS=opencodepour réduire la matrice. - Il source
~/.profile, prépare le matériel d’authentification CLI correspondant dans le conteneur, puis installe la CLI en direct demandée (@anthropic-ai/claude-code,@openai/codex, Factory Droid viahttps://app.factory.ai/cli,@google/gemini-cliouopencode-ai) si elle est absente. Le backend ACP lui-même est le packageacpx/runtimeembarqué du pluginacpxofficiel. - La variante Docker Droid prépare
~/.factorypour les paramètres, transmetFACTORY_API_KEYet exige cette clé API, car l’authentification locale Factory OAuth/keyring n’est pas portable dans le conteneur. Elle utilise l’entrée de registre intégrée d’ACPXdroid exec --output-format acp. - La variante Docker OpenCode est une voie de régression mono-agent stricte. Elle écrit un modèle par défaut temporaire
OPENCODE_CONFIG_CONTENTà partir deOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(opencode/kimi-k2.6par défaut) après avoir sourcé~/.profile, etpnpm test:docker:live-acp-bind:opencodeexige une transcription d’assistant liée au lieu d’accepter le saut post-liaison générique. - Les appels CLI
acpxdirects ne sont qu’un chemin manuel/de contournement pour comparer le comportement hors du Gateway. Le smoke Docker de liaison ACP exerce le backend d’exécutionacpxembarqué d’OpenClaw.
En direct : smoke du harnais de serveur d’application Codex
- Objectif : valider le harnais Codex détenu par le plugin via la méthode normale
agentdu gateway :- charger le plugin
codexgroupé - sélectionner
openai/gpt-5.5, qui route par défaut les tours d’agent OpenAI via Codex - envoyer un premier tour d’agent gateway à
openai/gpt-5.5avec le harnais Codex sélectionné - envoyer un second tour à la même session OpenClaw et vérifier que le fil du serveur d’application peut reprendre
- exécuter
/codex statuset/codex modelsvia le même chemin de commande gateway - éventuellement exécuter deux sondes shell avec élévation revues par Guardian : une commande bénigne qui devrait être approuvée et un téléversement de faux secret qui devrait être refusé afin que l’agent réponde en demandant une clarification
- charger le plugin
- Test :
src/gateway/gateway-codex-harness.live.test.ts - Activer :
OPENCLAW_LIVE_CODEX_HARNESS=1 - Modèle par défaut :
openai/gpt-5.5 - Sonde d’image optionnelle :
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 - Sonde MCP/outil optionnelle :
OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 - Sonde Guardian optionnelle :
OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 - Le smoke force la configuration provider/modèle
agentRuntime.id: "codex"afin qu’un harnais Codex cassé ne puisse pas passer en se rabattant silencieusement sur PI. - Authentification : auth serveur d’application Codex issue de la connexion locale à l’abonnement Codex. Les smokes Docker
peuvent aussi fournir
OPENAI_API_KEYpour les sondes non Codex lorsque c’est applicable, ainsi que des copies optionnelles de~/.codex/auth.jsonet~/.codex/config.toml.
- Le lanceur Docker se trouve dans
scripts/test-live-codex-harness-docker.sh. - Il source le
~/.profilemonté, transmetOPENAI_API_KEY, copie les fichiers d’authentification de la CLI Codex lorsqu’ils sont présents, installe@openai/codexdans un préfixe npm monté accessible en écriture, prépare l’arborescence source, puis exécute uniquement le test en direct du harnais Codex. - Docker active par défaut les sondes d’image, MCP/outil et Guardian. Définissez
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0ouOPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0ouOPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0lorsque vous avez besoin d’une exécution de débogage plus étroite. - Docker utilise la même configuration d’exécution Codex explicite, de sorte que les alias hérités ou le repli PI ne puissent pas masquer une régression du harnais Codex.
Recettes en direct recommandées
Les listes d’autorisation étroites et explicites sont les plus rapides et les moins fragiles :-
Modèle unique, direct (sans gateway) :
OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts
-
Modèle unique, smoke gateway :
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Appel d’outils sur plusieurs providers :
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
-
Focus Google (clé API Gemini + Antigravity) :
- Gemini (clé 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 (clé API) :
-
Smoke de réflexion adaptative Google :
- Si les clés locales se trouvent dans le profil shell :
source ~/.profile - Valeur par défaut dynamique 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 - Budget dynamique 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 les clés locales se trouvent dans le profil shell :
google/...utilise l’API Gemini (clé API).google-antigravity/...utilise le pont OAuth Antigravity (point de terminaison d’agent de type Cloud Code Assist).google-gemini-cli/...utilise la CLI Gemini locale sur votre machine (authentification séparée + particularités d’outillage).- API Gemini vs CLI Gemini :
- API : OpenClaw appelle l’API Gemini hébergée de Google via HTTP (clé API / auth de profil) ; c’est ce que la plupart des utilisateurs entendent par « Gemini ».
- CLI : OpenClaw lance un binaire
geminilocal via le shell ; il a sa propre authentification et peut se comporter différemment (prise en charge du streaming/des outils/décalage de version).
En direct : matrice des modèles (ce que nous couvrons)
Il n’y a pas de « liste de modèles CI » fixe (le direct est opt-in), mais voici les modèles recommandés à couvrir régulièrement sur une machine de développement avec des clés.Jeu de smoke moderne (appel d’outils + image)
Il s’agit de l’exécution « modèles courants » que nous voulons maintenir opérationnelle :- OpenAI (non Codex) :
openai/gpt-5.5 - OpenAI Codex OAuth :
openai-codex/gpt-5.5 - Anthropic :
anthropic/claude-opus-4-6(ouanthropic/claude-sonnet-4-6) - Google (API Gemini) :
google/gemini-3.1-pro-previewetgoogle/gemini-3-flash-preview(évitez les anciens modèles Gemini 2.x) - Google (Antigravity) :
google-antigravity/claude-opus-4-6-thinkingetgoogle-antigravity/gemini-3-flash - DeepSeek :
deepseek/deepseek-v4-flashetdeepseek/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
Référence : appel d’outils (Read + Exec optionnel)
Choisissez au moins un modèle par famille de providers :- OpenAI :
openai/gpt-5.5 - Anthropic :
anthropic/claude-opus-4-6(ouanthropic/claude-sonnet-4-6) - Google :
google/gemini-3-flash-preview(ougoogle/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(ou le plus récent disponible) - Mistral :
mistral/… (choisissez un modèle compatible avec les « tools » que vous avez activé) - Cerebras :
cerebras/… (si vous avez accès) - LM Studio :
lmstudio/… (local ; l’appel d’outils dépend du mode API)
Vision : envoi d’image (pièce jointe → message multimodal)
Incluez au moins un modèle compatible image dansOPENCLAW_LIVE_GATEWAY_MODELS (variantes Claude/Gemini/OpenAI compatibles vision, etc.) afin d’exercer la sonde d’image.
Agrégateurs / gateways alternatifs
Si vous avez activé les clés, nous prenons aussi en charge les tests via :- OpenRouter :
openrouter/...(des centaines de modèles ; utilisezopenclaw models scanpour trouver des candidats compatibles outils+image) - OpenCode :
opencode/...pour Zen etopencode-go/...pour Go (authentification viaOPENCODE_API_KEY/OPENCODE_ZEN_API_KEY)
- Intégrés :
openai,openai-codex,anthropic,google,google-vertex,google-antigravity,google-gemini-cli,zai,openrouter,opencode,opencode-go,xai,groq,cerebras,mistral,github-copilot - Via
models.providers(points de terminaison personnalisés) :minimax(cloud/API), plus tout proxy compatible OpenAI/Anthropic (LM Studio, vLLM, LiteLLM, etc.)
Identifiants (ne jamais commit)
Les tests en direct découvrent les identifiants de la même manière que la CLI. Implications pratiques :- Si la CLI fonctionne, les tests en direct devraient trouver les mêmes clés.
-
Si un test en direct indique « aucune information d’identification », déboguez de la même manière que vous débogueriez
openclaw models list/ la sélection de modèle. -
Profils d’authentification par agent :
~/.openclaw/agents/<agentId>/agent/auth-profiles.json(c’est ce que signifie « clés de profil » dans les tests en direct) -
Configuration :
~/.openclaw/openclaw.json(ouOPENCLAW_CONFIG_PATH) -
Répertoire d’état hérité :
~/.openclaw/credentials/(copié dans le répertoire personnel de test en direct préparé lorsqu’il est présent, mais pas dans le magasin principal des clés de profil) -
Les exécutions locales en direct copient par défaut la configuration active, les fichiers
auth-profiles.jsonpar agent, les ancienscredentials/et les répertoires d’authentification CLI externes pris en charge dans un répertoire personnel de test temporaire ; les répertoires personnels en direct préparés ignorentworkspace/etsandboxes/, et les substitutions de cheminagents.*.workspace/agentDirsont supprimées afin que les sondes restent hors de votre véritable espace de travail hôte.
~/.profile), exécutez les tests locaux après source ~/.profile, ou utilisez les exécuteurs Docker ci-dessous (ils peuvent monter ~/.profile dans le conteneur).
Deepgram en direct (transcription audio)
- Test :
extensions/deepgram/audio.live.test.ts - Activer :
DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts
Plan de codage BytePlus en direct
- Test :
extensions/byteplus/live.test.ts - Activer :
BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts - Substitution de modèle facultative :
BYTEPLUS_CODING_MODEL=ark-code-latest
Médias de workflow ComfyUI en direct
- Test :
extensions/comfy/comfy.live.test.ts - Activer :
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts - Portée :
- Exerce les chemins comfy groupés pour l’image, la vidéo et
music_generate - Ignore chaque capacité sauf si
plugins.entries.comfy.config.<capability>est configuré - Utile après avoir modifié la soumission de workflow comfy, l’interrogation, les téléchargements ou l’enregistrement du Plugin
- Exerce les chemins comfy groupés pour l’image, la vidéo et
Génération d’images en direct
- Test :
test/image-generation.runtime.live.test.ts - Commande :
pnpm test:live test/image-generation.runtime.live.test.ts - Harnais :
pnpm test:live:media image - Portée :
- Énumère chaque Plugin fournisseur de génération d’images enregistré
- Charge les variables d’environnement de fournisseur manquantes depuis votre shell de connexion (
~/.profile) avant la sonde - Utilise par défaut les clés API en direct/d’environnement avant les profils d’authentification stockés, afin que les clés de test obsolètes dans
auth-profiles.jsonne masquent pas les véritables identifiants du shell - Ignore les fournisseurs sans authentification/profil/modèle utilisable
- Exécute chaque fournisseur configuré à travers le runtime partagé de génération d’images :
<provider>:generate<provider>:editlorsque le fournisseur déclare la prise en charge de l’édition
- Fournisseurs groupés actuels couverts :
deepinfrafalgoogleminimaxopenaiopenroutervydraxai
- Restriction facultative :
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"
- Comportement d’authentification facultatif :
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1pour forcer l’authentification via le magasin de profils et ignorer les substitutions uniquement par environnement
infer après la réussite du test en direct fournisseur/runtime :
Génération de musique en direct
- Test :
extensions/music-generation-providers.live.test.ts - Activer :
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts - Harnais :
pnpm test:live:media music - Portée :
- Exerce le chemin partagé des fournisseurs groupés de génération de musique
- Couvre actuellement Google et MiniMax
- Charge les variables d’environnement de fournisseur depuis votre shell de connexion (
~/.profile) avant la sonde - Utilise par défaut les clés API en direct/d’environnement avant les profils d’authentification stockés, afin que les clés de test obsolètes dans
auth-profiles.jsonne masquent pas les véritables identifiants du shell - Ignore les fournisseurs sans authentification/profil/modèle utilisable
- Exécute les deux modes de runtime déclarés lorsqu’ils sont disponibles :
generateavec une entrée contenant uniquement une inviteeditlorsque le fournisseur déclarecapabilities.edit.enabled
- Couverture actuelle de la voie partagée :
google:generate,editminimax:generatecomfy: fichier Comfy en direct séparé, pas ce balayage partagé
- Restriction facultative :
OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"
- Comportement d’authentification facultatif :
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1pour forcer l’authentification via le magasin de profils et ignorer les substitutions uniquement par environnement
Génération de vidéo en direct
- Test :
extensions/video-generation-providers.live.test.ts - Activer :
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts - Harnais :
pnpm test:live:media video - Portée :
- Exerce le chemin partagé des fournisseurs groupés de génération de vidéo
- Utilise par défaut le chemin smoke adapté aux publications : fournisseurs non FAL, une requête texte-vers-vidéo par fournisseur, une invite de homard d’une seconde et un plafond d’opération par fournisseur depuis
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(180000par défaut) - Ignore FAL par défaut, car la latence de file d’attente côté fournisseur peut dominer le temps de publication ; passez
--video-providers falouOPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"pour l’exécuter explicitement - Charge les variables d’environnement de fournisseur depuis votre shell de connexion (
~/.profile) avant la sonde - Utilise par défaut les clés API en direct/d’environnement avant les profils d’authentification stockés, afin que les clés de test obsolètes dans
auth-profiles.jsonne masquent pas les véritables identifiants du shell - Ignore les fournisseurs sans authentification/profil/modèle utilisable
- Exécute uniquement
generatepar défaut - Définissez
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1pour exécuter également les modes de transformation déclarés lorsqu’ils sont disponibles :imageToVideolorsque le fournisseur déclarecapabilities.imageToVideo.enabledet que le fournisseur/modèle sélectionné accepte une entrée d’image locale adossée à un tampon dans le balayage partagévideoToVideolorsque le fournisseur déclarecapabilities.videoToVideo.enabledet que le fournisseur/modèle sélectionné accepte une entrée vidéo locale adossée à un tampon dans le balayage partagé
- Fournisseurs
imageToVideoactuellement déclarés mais ignorés dans le balayage partagé :vydra, car leveo3groupé est texte uniquement et leklinggroupé nécessite une URL d’image distante
- Couverture Vydra propre au fournisseur :
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts- ce fichier exécute le texte-vers-vidéo
veo3ainsi qu’une voieklingqui utilise par défaut un fixture d’URL d’image distante
- Couverture en direct actuelle de
videoToVideo:runwayuniquement lorsque le modèle sélectionné estrunway/gen4_aleph
- Fournisseurs
videoToVideoactuellement déclarés mais ignorés dans le balayage partagé :alibaba,qwen,xai, car ces chemins nécessitent actuellement des URL de référence distanteshttp(s)/ MP4google, car la voie Gemini/Veo partagée actuelle utilise une entrée locale adossée à un tampon et ce chemin n’est pas accepté dans le balayage partagéopenai, car la voie partagée actuelle ne dispose pas de garanties d’accès aux fonctions vidéo inpaint/remix propres à l’organisation
- Restriction facultative :
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=""pour inclure chaque fournisseur dans le balayage par défaut, y compris FALOPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000pour réduire le plafond d’opération de chaque fournisseur pour une exécution smoke agressive
- Comportement d’authentification facultatif :
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1pour forcer l’authentification via le magasin de profils et ignorer les substitutions uniquement par environnement
Harnais médias en direct
- Commande :
pnpm test:live:media - Objectif :
- Exécute les suites en direct partagées d’image, de musique et de vidéo via un point d’entrée natif du dépôt
- Charge automatiquement les variables d’environnement de fournisseur manquantes depuis
~/.profile - Restreint automatiquement chaque suite aux fournisseurs qui disposent actuellement d’une authentification utilisable par défaut
- Réutilise
scripts/test-live.mjs, afin que le comportement de Heartbeat et du mode silencieux reste cohérent
- Exemples :
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
Connexe
- Tests - suites unitaires, d’intégration, QA et Docker