Skip to main content
OpenClaw se connecte à tout point de terminaison compatible OpenAI via un fournisseur personnalisé. Le processus d’intégration crée l’entrée pour vous, et le fichier de configuration la conserve par la suite. OpenClaw n’a pas de champ de délai par requête qui lui soit propre, le délai est donc associé à la clé. Créez-en une d’abord (voir clés d’agent).

Configurez ceci avec un agent

Ouvrez le bloc ci-dessous et copiez-le dans n’importe quel agent de codage. L’invite ne vous demandera jamais votre clé API : l’agent configure tout le reste, puis affiche la ligne d’exportation que vous devrez exécuter vous-même.

Intégrer un fournisseur personnalisé

  1. Démarrez la configuration guidée.
  2. Choisissez l’option de fournisseur personnalisé lorsqu’il vous demande l’authentification. C’est custom-api-key.
  3. Saisissez le routeur comme URL de base, en incluant le suffixe /v1.
  4. Collez votre clé d’agent.
  5. Laissez le mode de compatibilité sur openai. C’est notre interface de Chat Completions.
  6. Saisissez un ID de modèle que nous exécutons, tel que gpt-5.6-sol.
L’invite ne place jamais votre clé sur une ligne de commande, c’est pourquoi c’est le chemin indiqué ici. openclaw onboard --non-interactive existe également, mais son mode d’authentification custom-api-key lit les informations d’identification depuis --custom-api-key, de sorte que le secret se retrouve dans l’historique de votre shell et dans les arguments du processus. Scriptez plutôt la configuration avec des commandes de configuration et une référence de secret, ce qui donne le même résultat sans l’exposition. Quelle que soit la méthode que vous choisissez, définissez vous-même l’ID du fournisseur :
Laissé à lui-même, OpenClaw dérive l’ID de l’hôte et se retrouve avec custom-api-flexinference-com, et chaque commande ultérieure sur cette page nécessiterait ce nom à la place. L’écriture inclut une ligne de modèle car c’est obligatoire. OpenClaw refuse un fournisseur tiers qui ne déclare aucun models, donc une écriture avec seulement baseUrl échoue à la validation du schéma. Remplacez toute la ligne dans la section suivante. Le mode de compatibilité correspond à api. openai écrit openai-completions, qui est celui avec lequel notre point de terminaison Chat Completions fonctionne. Les autres choix sont openai-responses et anthropic.

Le fichier de configuration

Le processus d’intégration écrit dans ~/.openclaw/openclaw.json sous models.providers. Affichez le chemin utilisé par OpenClaw avec openclaw config file.
"mode": "merge" conserve vos fournisseurs intégrés et ajoute celui-ci à côté. api doit être openai-completions. Le mode de compatibilité openai du processus d’intégration écrit exactement cela. apiKey accepte également une chaîne de caractères simple, ce que le processus d’intégration écrit. La référence montrée ici maintient le secret hors du fichier. Voir garder la clé hors du fichier de configuration. Listez vos modèles vous-même. Seuls les ID de fournisseur intégrés d’OpenClaw peuvent omettre models. Un ID tiers doit déclarer à la fois baseUrl et models, alors ajoutez une ligne par modèle que vous souhaitez dans le sélecteur. Définissez compat.supportsUsageInStreaming. OpenClaw rend l’utilisation du streaming optionnelle pour un point de terminaison tiers, car certains serveurs le refusent. Sans cet indicateur, nous ne recevons jamais la demande de cadre d’utilisation, de sorte que chaque tour diffusé rapporte zéro jeton et aucun coût.

Remplir la liste des modèles à partir de notre catalogue

OpenClaw n’appellera pas GET /v1/models pour un fournisseur que vous définissez dans la configuration. La découverte de modèles est une capacité de plugin, et les plugins fournis qui l’ont sont les seuls à l’utiliser. Un fournisseur défini par la configuration lit son tableau models et rien d’autre. Générez plutôt ce tableau à partir de notre catalogue, et écrivez-le en une seule commande.
config patch fusionne les objets et remplace les tableaux, ce qui échange la liste des modèles et laisse baseUrl et apiKey intacts. Ajoutez --dry-run pour voir l’écriture d’abord. Ne conservez que les modèles qui concourent dans le niveau le moins cher en filtrant sur l’indicateur propre au catalogue.
Notre catalogue ne publie aucune fenêtre de contexte ni de plafond de jetons, donc les lignes créées de cette manière n’en ont pas. Ajoutez contextWindow et maxTokens vous-même là où les valeurs par défaut d’OpenClaw ne correspondent pas au modèle. Réexécutez la commande chaque fois que notre catalogue change. Vérifiez le résultat :

Configuration globale et profils

OpenClaw conserve une configuration par profil, et non une par dossier. Le répertoire de travail ne modifie jamais le fichier qu’il lit. Utilisez un profil nommé pour essayer FlexInference sans modifier votre configuration habituelle.
Un profil isole l’état ainsi que la configuration, de sorte que son port de passerelle et son espace de travail sont également séparés.

Garder la clé hors du fichier de configuration

Le processus d’intégration écrit la clé dans openclaw.json en texte brut. Définissez plutôt apiKey sur une référence de secret, et la configuration stocke le nom de la variable plutôt que sa valeur.
  1. Exportez la clé dans le shell à partir duquel vous exécuterez ces commandes.
  2. Déclarez un fournisseur de secrets d’environnement et autorisez cette variable.
  3. Pointez l’ apiKey du fournisseur vers celle-ci.
La configuration contient alors {"source": "env", "provider": "default", "id": "FLEXINFERENCE_API_KEY"} et aucun secret. La clé n’atteint jamais non plus une ligne de commande, car l’étape 3 ne transmet que le nom de la variable. OpenClaw résout la référence lorsque vous exécutez l’étape 3, alors exportez d’abord la variable. Une variable manquante ou vide fait échouer l’écriture avec SecretRefResolutionError plutôt que de stocker quelque chose de corrompu. Ajoutez --dry-run pour vérifier sans écrire. Vérifiez ce qui est exposé avec l’audit intégré.

Confirmer l’application de la clé

Chaque réponse est accompagnée de x-flexinference-defaults-applied. OpenClaw n’affiche pas les en-têtes de réponse, alors lisez plutôt la requête dans le tableau de bord sous Logs.

Dépannage

Le sélecteur de modèles est incomplet, ou un modèle est manquant. Un fournisseur défini par la configuration n’appelle jamais GET /v1/models, il n’affiche donc que les lignes que vous avez écrites. Régénérez la liste à partir de notre catalogue. Les tours signalent zéro jeton et aucun coût. OpenClaw ne nous a pas demandé l’utilisation du streaming, nous n’avons donc envoyé aucun cadre d’utilisation. Définissez compat.supportsUsageInStreaming sur true pour chaque ligne de modèle. Un ID de modèle est refusé. Les lignes que vous avez écrites manuellement peuvent différer de ce que nous exécutons, car l’ id est envoyé exactement tel quel. Régénérez la liste à partir de notre catalogue plutôt que de modifier les ID. Les modifications de configuration ne prennent pas effet. La passerelle conserve l’ancienne configuration. Redémarrez-la et confirmez que vous avez modifié le fichier affiché par openclaw config file. Consultez erreurs pour chaque refus que nous renvoyons, et clés d’agent pour ceux qui ne sont pas spécifiques à OpenClaw.