{
  "schemaVersion": "1.0.0",
  "benchmarkId": "compatair-mcp-agent-selection",
  "benchmarkVersion": "2026-07-20",
  "caseCount": 50,
  "targets": {
    "minimumModels": 2,
    "calculableSuccessRate": 0.8,
    "coreManifestMaximumBytes": 50000,
    "tokenMeasurement": "Record the exact tokenizer and manifest token count reported by each target client; bytes divided by four is not accepted."
  },
  "cases": [
    {
      "case_id": "identify-01",
      "prompt": "J'ai la référence Einhell 4133330, quel est ce produit ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "identify_product",
        "arguments": {
          "reference": "4133330"
        }
      }
    },
    {
      "case_id": "identify-02",
      "prompt": "Identifie la référence brute 4138540.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "identify_product",
        "arguments": {
          "reference": "4138540"
        }
      }
    },
    {
      "case_id": "identify-03",
      "prompt": "Quel produit correspond à l'EAN 4007430227911 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "identify_product",
        "arguments": {
          "ean": "4007430227911"
        }
      }
    },
    {
      "case_id": "identify-04",
      "prompt": "Retrouve le compresseur portant la référence 4010393.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "identify_product",
        "arguments": {
          "reference": "4010393"
        }
      }
    },
    {
      "case_id": "identify-05",
      "prompt": "À quoi correspond ca:tool:einhell-tc-pe-150 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "identify_product",
        "arguments": {
          "reference": "ca:tool:einhell-tc-pe-150"
        }
      }
    },
    {
      "case_id": "identify-06",
      "prompt": "Retrouve la fiche du Chicago Pneumatic CP7120.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "identify_product",
        "arguments": {
          "query": "Chicago Pneumatic CP7120"
        }
      }
    },
    {
      "case_id": "identify-07",
      "prompt": "Identifie le MPN 601559000.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "identify_product",
        "arguments": {
          "reference": "601559000"
        }
      }
    },
    {
      "case_id": "identify-08",
      "prompt": "Quel compresseur est le KAESER EUROCOMP EPC 840-100 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "identify_product",
        "arguments": {
          "query": "KAESER EUROCOMP EPC 840-100"
        }
      }
    },
    {
      "case_id": "evaluate-01",
      "prompt": "Le KAESER EPC 840-100 peut-il alimenter la ponceuse Einhell TC-PE 150 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "kaeser-eurocomp-epc-840-100",
          "toolIds": [
            "einhell-tc-pe-150"
          ]
        }
      }
    },
    {
      "case_id": "evaluate-02",
      "prompt": "Vérifie le TC-AC 240/50/10 OF avec la TC-PE 150.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "einhell-tc-ac-240-50-10-of",
          "toolIds": [
            "einhell-tc-pe-150"
          ]
        }
      }
    },
    {
      "case_id": "evaluate-03",
      "prompt": "Le KAESER EPC 840-100 couvre-t-il simultanément la TC-PE 150 et la TC-PP 220 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "kaeser-eurocomp-epc-840-100",
          "toolIds": [
            "einhell-tc-pe-150",
            "einhell-tc-pp-220"
          ],
          "mode": "simultaneous"
        }
      }
    },
    {
      "case_id": "evaluate-04",
      "prompt": "Même configuration, mais les deux outils sont utilisés successivement.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "kaeser-eurocomp-epc-840-100",
          "toolIds": [
            "einhell-tc-pe-150",
            "einhell-tc-pp-220"
          ],
          "mode": "successive"
        }
      }
    },
    {
      "case_id": "evaluate-05",
      "prompt": "L'Atlas Copco AB40E100T suffit-il pour la clé Einhell TC-PW 340 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "atlas-copco-ab40e100t",
          "toolIds": [
            "einhell-tc-pw-340"
          ]
        }
      }
    },
    {
      "case_id": "evaluate-06",
      "prompt": "Vérifie le BOGE PO 8 LTR 270 avec la CP7630.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "boge-po-8-ltr-270",
          "toolIds": [
            "chicago-pneumatic-cp7630"
          ]
        }
      }
    },
    {
      "case_id": "evaluate-07",
      "prompt": "Est-ce que l'ABAC ATF 5.5 270D passe avec la perceuse CP785 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "abac-atf-5-5-270d",
          "toolIds": [
            "chicago-pneumatic-cp785"
          ]
        }
      }
    },
    {
      "case_id": "evaluate-08",
      "prompt": "Le KAESER EPC 550-2-G convient-il à la meuleuse CP3000-420F ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "kaeser-eurocomp-epc-550-2-g",
          "toolIds": [
            "chicago-pneumatic-cp3000-420f"
          ]
        }
      }
    },
    {
      "case_id": "evaluate-09",
      "prompt": "Le Michelin MB50 peut-il alimenter la TC-PE 150 avec certitude ?",
      "calculable": false,
      "missing_reason": "Le FAD à la pression demandée n'est pas publié avec une confiance suffisante.",
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "michelin-mb50",
          "toolIds": [
            "einhell-tc-pe-150"
          ]
        }
      }
    },
    {
      "case_id": "evaluate-10",
      "prompt": "Vérifie l'ABAC POLE POSITION OS20P avec la TC-PE 150.",
      "calculable": false,
      "missing_reason": "Le débit restitué documenté est insuffisant pour conclure.",
      "expected": {
        "profile": "core",
        "tool": "evaluate_air_compatibility",
        "arguments": {
          "compressorId": "abac-pole-position-os20p",
          "toolIds": [
            "einhell-tc-pe-150"
          ]
        }
      }
    },
    {
      "case_id": "build-01",
      "prompt": "Trouve un compresseur documenté pour la TC-PE 150.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "build_complete_air_system",
        "arguments": {
          "toolIds": [
            "einhell-tc-pe-150"
          ]
        }
      }
    },
    {
      "case_id": "build-02",
      "prompt": "Construis une configuration pour la TC-PE 150 et la TC-PP 220 utilisées ensemble.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "build_complete_air_system",
        "arguments": {
          "toolIds": [
            "einhell-tc-pe-150",
            "einhell-tc-pp-220"
          ],
          "mode": "simultaneous"
        }
      }
    },
    {
      "case_id": "build-03",
      "prompt": "Je veux utiliser successivement une CP785 et une CP7120 : propose la chaîne d'air.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "build_complete_air_system",
        "arguments": {
          "toolIds": [
            "chicago-pneumatic-cp785",
            "chicago-pneumatic-cp7120"
          ],
          "mode": "successive"
        }
      }
    },
    {
      "case_id": "build-04",
      "prompt": "Quel système complet pour une clé TC-PW 340 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "build_complete_air_system",
        "arguments": {
          "toolIds": [
            "einhell-tc-pw-340"
          ]
        }
      }
    },
    {
      "case_id": "build-05",
      "prompt": "Dimensionne une solution pour la lime Metabo DBF 457.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "build_complete_air_system",
        "arguments": {
          "toolIds": [
            "metabo-dbf-457"
          ]
        }
      }
    },
    {
      "case_id": "build-06",
      "prompt": "Prépare une configuration pour le pistolet de sablage Metabo SSP 1000.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "build_complete_air_system",
        "arguments": {
          "toolIds": [
            "metabo-ssp-1000"
          ]
        }
      }
    },
    {
      "case_id": "build-07",
      "prompt": "Trouve une machine pour la clé Chicago Pneumatic CP7731.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "build_complete_air_system",
        "arguments": {
          "toolIds": [
            "chicago-pneumatic-cp7731"
          ]
        }
      }
    },
    {
      "case_id": "build-08",
      "prompt": "Propose un compresseur pour la visseuse Metabo DS 14.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "build_complete_air_system",
        "arguments": {
          "toolIds": [
            "metabo-ds-14"
          ]
        }
      }
    },
    {
      "case_id": "alternative-01",
      "prompt": "Remplace au minimum le Michelin MB50 pour alimenter la TC-PE 150.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "find_compatible_alternatives",
        "arguments": {
          "compressorId": "michelin-mb50",
          "toolIds": [
            "einhell-tc-pe-150"
          ]
        }
      }
    },
    {
      "case_id": "alternative-02",
      "prompt": "Cherche une alternative à l'Einhell TE-AC 110/6 pour la TC-PW 340.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "find_compatible_alternatives",
        "arguments": {
          "compressorId": "einhell-te-ac-110-6-silent-plus",
          "toolIds": [
            "einhell-tc-pw-340"
          ]
        }
      }
    },
    {
      "case_id": "alternative-03",
      "prompt": "Quel remplacement pour l'EPC 150-2-G avec la CP7630 ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "find_compatible_alternatives",
        "arguments": {
          "compressorId": "kaeser-eurocomp-epc-150-2-g",
          "toolIds": [
            "chicago-pneumatic-cp7630"
          ]
        }
      }
    },
    {
      "case_id": "alternative-04",
      "prompt": "Trouve le plus petit changement pour deux outils Einhell utilisés simultanément.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "find_compatible_alternatives",
        "arguments": {
          "compressorId": "einhell-tc-ac-200-24-8-of",
          "toolIds": [
            "einhell-tc-pe-150",
            "einhell-tc-pp-220"
          ],
          "mode": "simultaneous"
        }
      }
    },
    {
      "case_id": "alternative-05",
      "prompt": "Le KAESER EPC 840-100 passe déjà avec la TC-PE 150 : faut-il vraiment le remplacer ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "find_compatible_alternatives",
        "arguments": {
          "compressorId": "kaeser-eurocomp-epc-840-100",
          "toolIds": [
            "einhell-tc-pe-150"
          ]
        }
      }
    },
    {
      "case_id": "knowledge-01",
      "prompt": "Explique la différence entre débit aspiré et FAD.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "search_knowledge",
        "arguments": {
          "query": "débit aspiré FAD"
        }
      }
    },
    {
      "case_id": "knowledge-02",
      "prompt": "Je cherche le guide sur le diamètre intérieur du flexible.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "search_knowledge",
        "arguments": {
          "query": "diamètre intérieur flexible"
        }
      }
    },
    {
      "case_id": "knowledge-03",
      "prompt": "Que signifie une pression de travail de 6,3 bar ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "search_knowledge",
        "arguments": {
          "query": "pression travail 6,3 bar"
        }
      }
    },
    {
      "case_id": "knowledge-04",
      "prompt": "Trouve la méthode CompatAir pour plusieurs outils simultanés.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "search_knowledge",
        "arguments": {
          "query": "plusieurs outils simultanés"
        }
      }
    },
    {
      "case_id": "knowledge-05",
      "prompt": "Comment interpréter la qualité A des données ?",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "search_knowledge",
        "arguments": {
          "query": "qualité A données"
        }
      }
    },
    {
      "case_id": "offers-01",
      "prompt": "Y a-t-il une offre fraîche pour l'Einhell TC-PE 150 ?",
      "calculable": false,
      "missing_reason": "Aucun flux partenaire frais ne couvre nécessairement ce produit.",
      "expected": {
        "profile": "core",
        "tool": "get_current_offers",
        "arguments": {
          "productIds": [
            "einhell-tc-pe-150"
          ]
        }
      }
    },
    {
      "case_id": "offers-02",
      "prompt": "Donne les prix actuels du KAESER EPC 840-100.",
      "calculable": false,
      "missing_reason": "Une absence d'offre fraîche doit rester explicite.",
      "expected": {
        "profile": "core",
        "tool": "get_current_offers",
        "arguments": {
          "productIds": [
            "kaeser-eurocomp-epc-840-100"
          ]
        }
      }
    },
    {
      "case_id": "offers-03",
      "prompt": "Compare les offres disponibles pour la CP785 et la CP7120.",
      "calculable": false,
      "missing_reason": "La couverture commerciale dépend des flux autorisés disponibles.",
      "expected": {
        "profile": "core",
        "tool": "get_current_offers",
        "arguments": {
          "productIds": [
            "chicago-pneumatic-cp785",
            "chicago-pneumatic-cp7120"
          ]
        }
      }
    },
    {
      "case_id": "offers-04",
      "prompt": "Quel marchand vend aujourd'hui l'ABAC ATF 5.5 270D ?",
      "calculable": false,
      "missing_reason": "Le catalogue technique ne prouve pas une disponibilité marchande actuelle.",
      "expected": {
        "profile": "core",
        "tool": "get_current_offers",
        "arguments": {
          "productIds": [
            "abac-atf-5-5-270d"
          ]
        }
      }
    },
    {
      "case_id": "evidence-01",
      "prompt": "Montre les sources exactes du verdict EPC 840-100 / TC-PE 150.",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "get_compatibility_evidence",
        "arguments": {
          "compressorId": "kaeser-eurocomp-epc-840-100",
          "toolId": "einhell-tc-pe-150"
        }
      }
    },
    {
      "case_id": "evidence-02",
      "prompt": "Je veux la preuve pression-débit pour l'ABAC ATF 5.5 et la CP785.",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "get_compatibility_evidence",
        "arguments": {
          "compressorId": "abac-atf-5-5-270d",
          "toolId": "chicago-pneumatic-cp785"
        }
      }
    },
    {
      "case_id": "evidence-03",
      "prompt": "Quels champs et documents justifient le verdict du TC-AC 240/50 avec la ponceuse TC-PE 150 ?",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "get_compatibility_evidence",
        "arguments": {
          "compressorId": "einhell-tc-ac-240-50-10-of",
          "toolId": "einhell-tc-pe-150"
        }
      }
    },
    {
      "case_id": "evidence-04",
      "prompt": "Audite le graphe de preuve BOGE PO 8 LTR 270 / CP7630.",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "get_compatibility_evidence",
        "arguments": {
          "compressorId": "boge-po-8-ltr-270",
          "toolId": "chicago-pneumatic-cp7630"
        }
      }
    },
    {
      "case_id": "compare-01",
      "prompt": "Compare deux systèmes complets : EPC 840-100 avec TC-PE 150, et AB40E100T avec la même ponceuse.",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "compare_complete_systems",
        "arguments": {
          "systems": [
            {
              "compressorId": "kaeser-eurocomp-epc-840-100",
              "toolIds": [
                "einhell-tc-pe-150"
              ]
            },
            {
              "compressorId": "atlas-copco-ab40e100t",
              "toolIds": [
                "einhell-tc-pe-150"
              ]
            }
          ]
        }
      }
    },
    {
      "case_id": "compare-02",
      "prompt": "Compare l'ATF 5.5 270D et le BOGE PO 8 LTR pour la CP785.",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "compare_complete_systems",
        "arguments": {
          "systems": [
            {
              "compressorId": "abac-atf-5-5-270d",
              "toolIds": [
                "chicago-pneumatic-cp785"
              ]
            },
            {
              "compressorId": "boge-po-8-ltr-270",
              "toolIds": [
                "chicago-pneumatic-cp785"
              ]
            }
          ]
        }
      }
    },
    {
      "case_id": "compare-03",
      "prompt": "Compare trois configurations sans score commercial pour la TC-PW 340.",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "compare_complete_systems",
        "arguments": {
          "systems": [
            {
              "compressorId": "kaeser-eurocomp-epc-840-100",
              "toolIds": [
                "einhell-tc-pw-340"
              ]
            },
            {
              "compressorId": "atlas-copco-ab40e100t",
              "toolIds": [
                "einhell-tc-pw-340"
              ]
            },
            {
              "compressorId": "abac-atf-5-5-270d",
              "toolIds": [
                "einhell-tc-pw-340"
              ]
            }
          ]
        }
      }
    },
    {
      "case_id": "changes-01",
      "prompt": "Quelles données CompatAir ont changé depuis 2026-07-15 ?",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "get_changefeed",
        "arguments": {
          "since": "2026-07-15"
        }
      }
    },
    {
      "case_id": "changes-02",
      "prompt": "Donne-moi l'état courant du changefeed catalogue et méthode.",
      "calculable": true,
      "expected": {
        "profile": "extended",
        "tool": "get_changefeed",
        "arguments": {}
      }
    },
    {
      "case_id": "orient-01",
      "prompt": "Oriente-moi vers le bon tool pour identifier une référence, sans lancer encore la recherche.",
      "calculable": true,
      "expected": {
        "profile": "core",
        "tool": "orient_decision",
        "arguments": {
          "goal": "identify"
        }
      }
    }
  ]
}