Linter de définitions de fonctions/outils
Validez et analysez vos définitions de function calling IA pour les formats OpenAI, Anthropic, Google et Cohere
Collez une définition JSON de fonction/outil ci-dessus pour la valider selon les spécifications OpenAI, Anthropic, Google et Cohere.
Prend en charge le function calling OpenAI, l'utilisation d'outils Anthropic, les déclarations de fonctions Google Gemini et le tool use de Cohere.
Qu'est-ce qu'un linter de définitions d'outils IA ?
Un linter de définitions d'outils IA valide les structures JSON qui définissent les fonctions et outils pour les API de grands modèles de langage. Lorsque vous utilisez le function calling (également appelé utilisation d'outils) avec des fournisseurs comme OpenAI, Anthropic Claude, Google Gemini ou Cohere, vous devez fournir des définitions JSON correctement structurées décrivant vos fonctions — leurs noms, descriptions et schemas de paramètres.
Même de petites erreurs dans ces définitions — un nom de champ mal orthographié, un type invalide ou une propriété obligatoire manquante — peuvent provoquer l'échec silencieux des appels API ou un comportement inattendu. Un linter de définitions d'outils détecte ces erreurs avant le déploiement, économisant du temps de débogage et prévenant les problèmes en production.
Notre linter gratuit valide vos définitions par rapport aux quatre principaux fournisseurs (OpenAI, Anthropic, Google et Cohere) simultanément. Mistral AI, xAI (Grok) et DeepSeek utilisent le format compatible OpenAI, donc passer la validation OpenAI les couvre aussi. Le linter vous montre exactement où se trouvent les erreurs et fournit des suggestions concrètes pour corriger chaque problème. Il fonctionne entièrement dans votre navigateur sans qu'aucune donnée ne soit envoyée à un serveur.
Comment utiliser ce linter
L'utilisation du linter de définitions d'outils est simple — il suffit de coller et c'est parti :
- Collez votre définition JSON — Copiez votre définition d'outil/fonction depuis votre code et collez-la dans l'éditeur. Le linter accepte des objets d'outils individuels, des tableaux d'outils ou des objets enveloppés avec un tableau `tools`.
- Consultez les résultats en temps réel — Le linter valide automatiquement à mesure que vous tapez (avec un bref délai). Pas besoin de cliquer sur un bouton. Vous verrez immédiatement le format détecté, le statut de compatibilité avec les fournisseurs et tous les problèmes.
- Examinez la compatibilité — Les quatre cartes de fournisseurs montrent si votre définition est compatible avec OpenAI, Anthropic, Google et Cohere. Le vert signifie compatible, le rouge signifie qu'il y a des problèmes bloquants à corriger.
- Corrigez les problèmes — Chaque problème affiche le chemin du champ concerné, un message d'erreur clair et une suggestion de correction. Les problèmes sont catégorisés par gravité : erreurs (à corriger impérativement), avertissements (à corriger de préférence) et informations (souhaitable).
- Copiez le JSON corrigé — Une fois satisfait, utilisez le bouton « Copier le JSON corrigé » pour obtenir une version propre et formatée avec les corrections automatiques de base appliquées.
Comprendre les formats de function calling IA
Chaque fournisseur IA a son propre format pour définir les fonctions appelables, bien qu'ils partagent le même concept sous-jacent : un nom, une description et un JSON Schema pour les paramètres.
Function calling OpenAI
OpenAI enveloppe les définitions d'outils dans une structure `{ type: "function", function: { ... } }`. L'objet interne contient `name`, `description` et `parameters` (un objet JSON Schema). OpenAI prend également en charge un mode `strict` qui active les sorties structurées — lorsqu'il est activé, le modèle suivra toujours exactement le schema, mais cela nécessite `additionalProperties: false`.
Utilisation d'outils Anthropic
Anthropic utilise une structure plate sans wrapper. Chaque outil est défini avec `name`, `description` et `input_schema` — notez le nom de champ différent par rapport au `parameters` d'OpenAI. Anthropic recommande de garder les descriptions sous 1024 caractères pour des performances optimales. Le champ `cache_control` peut optionnellement être utilisé pour la mise en cache des prompts.
Déclarations de fonctions Google Gemini
Google Gemini utilise une structure plate similaire à Anthropic mais avec `parameters` comme OpenAI. La différence clé est que le support JSON Schema de Google est plus limité — il ne prend pas en charge `$ref` pour les références de schemas et a un support limité pour les mots-clés de composition comme `oneOf`, `anyOf` et `allOf`.
Tool Use de Cohere
Cohere utilise un format `parameter_definitions` au lieu du JSON Schema standard. Chaque paramètre est défini avec `description`, `type` et `required` comme clés individuelles plutôt que via un objet JSON Schema. Cohere est certifié SOC 2 et HIPAA, ce qui en fait un choix privilégié pour les applications d'entreprise nécessitant une conformité stricte.
Fournisseurs compatibles OpenAI
Mistral AI, xAI (Grok) et DeepSeek utilisent le format de function calling compatible OpenAI. Si vos définitions d'outils passent la validation OpenAI, elles fonctionneront avec ces fournisseurs sans modification. Cela simplifie considérablement le développement multi-fournisseurs — une seule définition couvre quatre fournisseurs.
Erreurs courantes dans les définitions d'outils
D'après les patterns courants que nous observons, voici les erreurs les plus fréquentes dans les définitions d'outils IA :
- Mauvais nom de champ de schema — Utiliser « parameters » quand le fournisseur attend « input_schema » (Anthropic) ou inversement. C'est le problème n°1 de compatibilité inter-fournisseurs.
- Structure de wrapper manquante — Oublier le wrapper `{ type: "function", function: { ... } }` pour OpenAI, ou l'inclure quand on cible Anthropic/Google.
- Noms de fonctions invalides — Utiliser des espaces, des caractères spéciaux ou des noms de plus de 64 caractères. Tous les fournisseurs exigent uniquement des caractères alphanumériques, des underscores et des tirets.
- Champs obligatoires absents des propriétés — Lister un champ dans le tableau « required » qui n'existe pas dans l'objet « properties ».
- « type » manquant dans les objets de schema — Chaque objet JSON Schema a besoin d'un champ « type ». Le schema racine doit avoir « type » : « object ».
- Descriptions de propriétés manquantes — Bien que techniquement pas toujours obligatoires, les descriptions de propriétés améliorent significativement la compréhension du modèle et la précision des appels de fonctions.
- Violations du mode strict — Lors de l'utilisation du mode strict d'OpenAI, oublier de définir « additionalProperties » : false ou ne pas lister toutes les propriétés comme obligatoires.
Questions Fréquentes
Quels formats le linter de définitions d'outils prend-il en charge ?
Notre linter valide les définitions d'outils/fonctions par rapport à quatre fournisseurs IA majeurs : le format function calling OpenAI (avec le wrapper { type: "function", function: {...} }), le format utilisation d'outils Anthropic (utilisant input_schema), les déclarations de fonctions Google Gemini (utilisant parameters) et le format tool use de Cohere (utilisant parameter_definitions). De plus, les fournisseurs compatibles OpenAI (Mistral AI, xAI, DeepSeek) sont couverts par la validation OpenAI. Il détecte automatiquement le format que vous collez et vérifie la compatibilité avec tous les fournisseurs.
Quelle est la différence entre les formats de function calling OpenAI, Anthropic et Google ?
Les principales différences sont structurelles. OpenAI enveloppe les définitions d'outils dans { type: "function", function: {...} } et utilise « parameters » pour le JSON Schema. Anthropic utilise une structure plate avec « input_schema » au lieu de « parameters ». Google utilise également une structure plate avec « parameters » mais a un support JSON Schema plus limité — il ne prend pas en charge $ref, et a un support limité pour oneOf, anyOf et allOf. Cohere utilise « parameter_definitions » avec un format propriétaire au lieu du JSON Schema standard. Mistral AI, xAI et DeepSeek utilisent le format compatible OpenAI. Tous les fournisseurs exigent name, description et une définition de paramètres.
Le linter détecte-t-il toutes les erreurs possibles ?
Le linter détecte les erreurs structurelles les plus courantes : champs obligatoires manquants, noms invalides (doivent contenir 1 à 64 caractères alphanumériques avec underscores/tirets), JSON Schema malformé (types invalides, champs obligatoires absents des propriétés, items manquants pour les tableaux) et problèmes spécifiques au format (mauvaise structure de wrapper, mauvais nom de champ de schema). Il ne valide pas la logique métier ni l'efficacité de la description de la fonction pour la compréhension du modèle.
Puis-je valider des définitions d'outils avec des paramètres imbriqués ?
Oui, le linter valide les structures JSON Schema imbriquées jusqu'à 5 niveaux de profondeur. Il vérifie chaque objet imbriqué pour des définitions de types correctes, valide les tableaux enum, les schemas d'items de tableaux et s'assure que les champs obligatoires référencent des propriétés qui existent réellement à chaque niveau d'imbrication.
La fonctionnalité « Copier le JSON corrigé » est-elle sûre à utiliser ?
Le JSON corrigé applique des corrections sûres et non destructives : mise en forme du JSON, ajout de « type » : « object » manquant là où c'est nécessaire, et suppression des entrées required qui référencent des propriétés inexistantes. Il ne modifie pas le nom de votre fonction, la description ou les définitions de propriétés. Vérifiez toujours la sortie corrigée avant de l'utiliser en production.
Outils associés
Découvrez d'autres outils pour construire avec les API IA :
- Générateur de JSON Schema pour l'IA — Générez des JSON Schemas à partir de données d'exemple optimisés pour le function calling
- OpenAPI vers function calling IA — Convertissez des spécifications Swagger/OpenAPI en définitions d'outils
- Constructeur de messages de conversation — Construisez et testez visuellement des tableaux de messages de chat completion
Outils associés
Constructeur de messages de conversation
Construisez et testez des tableaux de messages pour le chat completion avec un éditeur visuel basé sur les rôles
Générateur de JSON Schema pour l'IA
Générez des schemas JSON à partir de données d'exemple, optimisés pour le function calling IA et les sorties structurées
OpenAPI vers function calling IA
Convertissez vos spécifications OpenAPI/Swagger en définitions de function calling IA pour n'importe quel fournisseur