[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fsupervision\u002Fbenchmarks":3,"docs-nav-fr":476},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":470,"_id":471,"_source":472,"_file":473,"_stem":474,"_extension":475},"\u002Fdocs\u002Fsupervision\u002Fbenchmarks","supervision",false,"","Benchmarks","Mesurer la qualité d'un pipeline avec des scénarios reproductibles. Détecter les régressions avant la production.",{"type":11,"children":12,"toc":461},"root",[13,36,43,48,68,73,79,84,110,116,275,280,286,311,340,350,356,375,380,412,418],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,27,29,34],{"type":19,"value":20},"text","Un ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":26},"benchmark",{"type":19,"value":28}," est un ensemble de scénarios d'évaluation rejoués automatiquement contre un pipeline. C'est l'outil pour mesurer ",{"type":14,"tag":22,"props":30,"children":31},{},[32],{"type":19,"value":33},"objectivement",{"type":19,"value":35}," la qualité d'un agent et détecter les régressions avant qu'elles n'arrivent en prod.",{"type":14,"tag":37,"props":38,"children":40},"h2",{"id":39},"pourquoi",[41],{"type":19,"value":42},"Pourquoi",{"type":14,"tag":15,"props":44,"children":45},{},[46],{"type":19,"value":47},"Un agent qui « semblait marcher » peut régresser silencieusement après :",{"type":14,"tag":49,"props":50,"children":51},"ul",{},[52,58,63],{"type":14,"tag":53,"props":54,"children":55},"li",{},[56],{"type":19,"value":57},"une modification de mission ;",{"type":14,"tag":53,"props":59,"children":60},{},[61],{"type":19,"value":62},"un changement de modèle LLM ;",{"type":14,"tag":53,"props":64,"children":65},{},[66],{"type":19,"value":67},"un nouveau tool ajouté.",{"type":14,"tag":15,"props":69,"children":70},{},[71],{"type":19,"value":72},"Sans benchmark, vous le découvrez en prod. Avec un benchmark, vous le voyez au run suivant — avant vos utilisateurs.",{"type":14,"tag":37,"props":74,"children":76},{"id":75},"anatomie-dun-scénario",[77],{"type":19,"value":78},"Anatomie d'un scénario",{"type":14,"tag":15,"props":80,"children":81},{},[82],{"type":19,"value":83},"Un scénario contient :",{"type":14,"tag":49,"props":85,"children":86},{},[87,98],{"type":14,"tag":53,"props":88,"children":89},{},[90,91,96],{"type":19,"value":20},{"type":14,"tag":22,"props":92,"children":93},{},[94],{"type":19,"value":95},"stimulus",{"type":19,"value":97}," — l'entrée que reçoit le pipeline (message ou séquence de tours, fixtures de données).",{"type":14,"tag":53,"props":99,"children":100},{},[101,103,108],{"type":19,"value":102},"Des ",{"type":14,"tag":22,"props":104,"children":105},{},[106],{"type":19,"value":107},"checks",{"type":19,"value":109}," — assertions explicites évaluées sur chaque tour : la sortie produite, la forme de la réponse, la chaîne d'appels de tools, le coût des actions.",{"type":14,"tag":37,"props":111,"children":113},{"id":112},"catalogue-de-checks",[114],{"type":19,"value":115},"Catalogue de checks",{"type":14,"tag":117,"props":118,"children":119},"table",{},[120,139],{"type":14,"tag":121,"props":122,"children":123},"thead",{},[124],{"type":14,"tag":125,"props":126,"children":127},"tr",{},[128,134],{"type":14,"tag":129,"props":130,"children":131},"th",{},[132],{"type":19,"value":133},"Check",{"type":14,"tag":129,"props":135,"children":136},{},[137],{"type":19,"value":138},"Vérifie",{"type":14,"tag":140,"props":141,"children":142},"tbody",{},[143,162,186,203,226,243],{"type":14,"tag":125,"props":144,"children":145},{},[146,157],{"type":14,"tag":147,"props":148,"children":149},"td",{},[150],{"type":14,"tag":151,"props":152,"children":154},"code",{"className":153},[],[155],{"type":19,"value":156},"pipeline_output_match",{"type":14,"tag":147,"props":158,"children":159},{},[160],{"type":19,"value":161},"Une clé du flux de sortie correspond à la valeur attendue (chemin + assertion)",{"type":14,"tag":125,"props":163,"children":164},{},[165,174],{"type":14,"tag":147,"props":166,"children":167},{},[168],{"type":14,"tag":151,"props":169,"children":171},{"className":170},[],[172],{"type":19,"value":173},"response_shape",{"type":14,"tag":147,"props":175,"children":176},{},[177,179,184],{"type":19,"value":178},"La ",{"type":14,"tag":22,"props":180,"children":181},{},[182],{"type":19,"value":183},"forme",{"type":19,"value":185}," de la réponse de l'agent (longueur, structure), mesurée sans juge",{"type":14,"tag":125,"props":187,"children":188},{},[189,198],{"type":14,"tag":147,"props":190,"children":191},{},[192],{"type":14,"tag":151,"props":193,"children":195},{"className":194},[],[196],{"type":19,"value":197},"llm_rubric",{"type":14,"tag":147,"props":199,"children":200},{},[201],{"type":19,"value":202},"Le fond de la réponse, noté par un juge LLM sur une rubrique de critères vérifiables",{"type":14,"tag":125,"props":204,"children":205},{},[206,215],{"type":14,"tag":147,"props":207,"children":208},{},[209],{"type":14,"tag":151,"props":210,"children":212},{"className":211},[],[213],{"type":19,"value":214},"tool_chain_analysis",{"type":14,"tag":147,"props":216,"children":217},{},[218,219,224],{"type":19,"value":178},{"type":14,"tag":22,"props":220,"children":221},{},[222],{"type":19,"value":223},"séquence",{"type":19,"value":225}," d'appels de tools suit la stratégie attendue",{"type":14,"tag":125,"props":227,"children":228},{},[229,238],{"type":14,"tag":147,"props":230,"children":231},{},[232],{"type":14,"tag":151,"props":233,"children":235},{"className":234},[],[236],{"type":19,"value":237},"tool_cost",{"type":14,"tag":147,"props":239,"children":240},{},[241],{"type":19,"value":242},"Le budget d'actions : chaque appel a un coût, atteindre la cible rapporte un bonus",{"type":14,"tag":125,"props":244,"children":245},{},[246,270],{"type":14,"tag":147,"props":247,"children":248},{},[249,255,257,263,264],{"type":14,"tag":151,"props":250,"children":252},{"className":251},[],[253],{"type":19,"value":254},"static",{"type":19,"value":256}," \u002F ",{"type":14,"tag":151,"props":258,"children":260},{"className":259},[],[261],{"type":19,"value":262},"tests",{"type":19,"value":256},{"type":14,"tag":151,"props":265,"children":267},{"className":266},[],[268],{"type":19,"value":269},"diff_quality",{"type":14,"tag":147,"props":271,"children":272},{},[273],{"type":19,"value":274},"Checks orientés fichiers et code (sortie d'un pipeline de développement)",{"type":14,"tag":15,"props":276,"children":277},{},[278],{"type":19,"value":279},"Le catalogue est extensible côté plateforme : chaque check est un plugin enregistré côté serveur.",{"type":14,"tag":37,"props":281,"children":283},{"id":282},"créer-un-benchmark",[284],{"type":19,"value":285},"Créer un benchmark",{"type":14,"tag":287,"props":288,"children":289},"ol",{},[290,300],{"type":14,"tag":53,"props":291,"children":292},{},[293,298],{"type":14,"tag":22,"props":294,"children":295},{},[296],{"type":19,"value":297},"Applications → Évaluation → Scénarios",{"type":19,"value":299},".",{"type":14,"tag":53,"props":301,"children":302},{},[303,305,310],{"type":19,"value":304},"Créer les scénarios (stimulus, checks, fixtures de données) ; chaque scénario est dédié à un modèle (le pipeline cible). Les fixtures se gèrent dans l'onglet ",{"type":14,"tag":22,"props":306,"children":307},{},[308],{"type":19,"value":309},"Fixtures",{"type":19,"value":299},{"type":14,"tag":15,"props":312,"children":313},{},[314,316,323,325,331,332,338],{"type":19,"value":315},"Un scénario peut aussi être créé ou modifié par proposition depuis le ",{"type":14,"tag":317,"props":318,"children":320},"a",{"href":319},"\u002Fdocs\u002Fdeveloppeurs\u002Fmcp",[321],{"type":19,"value":322},"serveur MCP",{"type":19,"value":324}," (",{"type":14,"tag":151,"props":326,"children":328},{"className":327},[],[329],{"type":19,"value":330},"benchmark_create",{"type":19,"value":256},{"type":14,"tag":151,"props":333,"children":335},{"className":334},[],[336],{"type":19,"value":337},"benchmark_update",{"type":19,"value":339},"), qui reste en attente jusqu'à son acceptation.",{"type":14,"tag":341,"props":342,"children":344},"alert",{"type":343},"info",[345],{"type":14,"tag":15,"props":346,"children":347},{},[348],{"type":19,"value":349},"Un bon benchmark contient un mélange : cas nominal, cas limites, cas adverses (tentatives de manipulation, ambiguïté, données manquantes).",{"type":14,"tag":37,"props":351,"children":353},{"id":352},"lancer-un-benchmark",[354],{"type":19,"value":355},"Lancer un benchmark",{"type":14,"tag":15,"props":357,"children":358},{},[359,361,366,368,373],{"type":19,"value":360},"Depuis l'admin, lancez un ",{"type":14,"tag":22,"props":362,"children":363},{},[364],{"type":19,"value":365},"run",{"type":19,"value":367}," : il est mis en file durable puis exécuté par un worker dédié, hors du serveur web. Si ce worker s'arrête en plein run, le run est marqué ",{"type":14,"tag":22,"props":369,"children":370},{},[371],{"type":19,"value":372},"en échec",{"type":19,"value":374}," au redémarrage (il n'est pas repris automatiquement) : relancez-le. Un drawer donne le détail par scénario.",{"type":14,"tag":15,"props":376,"children":377},{},[378],{"type":19,"value":379},"Le rapport indique :",{"type":14,"tag":49,"props":381,"children":382},{},[383,388,407],{"type":14,"tag":53,"props":384,"children":385},{},[386],{"type":19,"value":387},"Taux de succès par check",{"type":14,"tag":53,"props":389,"children":390},{},[391,393,398,400,405],{"type":19,"value":392},"Évolution des scores entre les runs (onglets ",{"type":14,"tag":22,"props":394,"children":395},{},[396],{"type":19,"value":397},"Historique",{"type":19,"value":399}," et ",{"type":14,"tag":22,"props":401,"children":402},{},[403],{"type":19,"value":404},"Évolution",{"type":19,"value":406},")",{"type":14,"tag":53,"props":408,"children":409},{},[410],{"type":19,"value":411},"Liste des scénarios échoués, avec le détail de chaque check",{"type":14,"tag":37,"props":413,"children":415},{"id":414},"bonnes-pratiques",[416],{"type":19,"value":417},"Bonnes pratiques",{"type":14,"tag":49,"props":419,"children":420},{},[421,431,441,451],{"type":14,"tag":53,"props":422,"children":423},{},[424,429],{"type":14,"tag":22,"props":425,"children":426},{},[427],{"type":19,"value":428},"Démarrer petit",{"type":19,"value":430}," — 5 scénarios bien ciblés valent mieux que 50 scénarios approximatifs.",{"type":14,"tag":53,"props":432,"children":433},{},[434,439],{"type":14,"tag":22,"props":435,"children":436},{},[437],{"type":19,"value":438},"Bencher avant chaque publication",{"type":19,"value":440},", et comparer au run précédent avant de pousser.",{"type":14,"tag":53,"props":442,"children":443},{},[444,449],{"type":14,"tag":22,"props":445,"children":446},{},[447],{"type":19,"value":448},"Versionner les missions.",{"type":19,"value":450}," Pas seulement les pipelines : les missions aussi évoluent.",{"type":14,"tag":53,"props":452,"children":453},{},[454,459],{"type":14,"tag":22,"props":455,"children":456},{},[457],{"type":19,"value":458},"Garder les checks lisibles.",{"type":19,"value":460}," Un check qui demande 20 lignes d'explication pour être compris est un check qu'il faut décomposer.",{"title":7,"searchDepth":462,"depth":462,"links":463},2,[464,465,466,467,468,469],{"id":39,"depth":462,"text":42},{"id":75,"depth":462,"text":78},{"id":112,"depth":462,"text":115},{"id":282,"depth":462,"text":285},{"id":352,"depth":462,"text":355},{"id":414,"depth":462,"text":417},"markdown","content:docs:4.supervision:3.benchmarks.md","content","docs\u002F4.supervision\u002F3.benchmarks.md","docs\u002F4.supervision\u002F3.benchmarks","md",[477],{"title":478,"_path":479,"children":480},"Docs","\u002Fdocs",[481,494,522,550,561,577,589,650],{"title":482,"_path":483,"children":484},"Démarrer","\u002Fdocs\u002Fdemarrer",[485,488,491],{"title":486,"_path":487},"Bienvenue","\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":489,"_path":490},"Créer un compte","\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":492,"_path":493},"Brancher une clé LLM","\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":495,"_path":496,"children":497},"Canaux","\u002Fdocs\u002Fcanaux",[498,501,504,507,510,513,516,519],{"title":499,"_path":500},"Vue d'ensemble des canaux","\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":502,"_path":503},"Téléphonie temps réel","\u002Fdocs\u002Fcanaux\u002Ftelephone",{"title":505,"_path":506},"Email","\u002Fdocs\u002Fcanaux\u002Femail",{"title":508,"_path":509},"Chat widget web","\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":511,"_path":512},"Webhook HTTP","\u002Fdocs\u002Fcanaux\u002Fwebhook",{"title":514,"_path":515},"Messageries (WhatsApp, Messenger, Telegram, Mattermost)","\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":517,"_path":518},"Meta Lead Ads","\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":520,"_path":521},"Planification (cron)","\u002Fdocs\u002Fcanaux\u002Fschedule",{"title":523,"_path":524,"children":525},"Pipelines","\u002Fdocs\u002Fpipelines",[526,529,532,535,538,541,544,547],{"title":527,"_path":528},"L'éditeur visuel","\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",{"title":530,"_path":531},"Agents IA","\u002Fdocs\u002Fpipelines\u002Fagents",{"title":533,"_path":534},"Opérateurs déterministes","\u002Fdocs\u002Fpipelines\u002Foperateurs",{"title":536,"_path":537},"Contrôle de flux","\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":539,"_path":540},"Étapes de code","\u002Fdocs\u002Fpipelines\u002Fcode-step",{"title":542,"_path":543},"Sous-pipelines","\u002Fdocs\u002Fpipelines\u002Fsous-pipelines",{"title":545,"_path":546},"Actions sans code","\u002Fdocs\u002Fpipelines\u002Factions-no-code",{"title":548,"_path":549},"Base de connaissances","\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",{"title":551,"_path":552,"children":553},"Supervision","\u002Fdocs\u002Fsupervision",[554,557,560],{"title":555,"_path":556},"Historique d'exécutions","\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":558,"_path":559},"Crédits & metering","\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":8,"_path":4},{"title":562,"_path":563,"children":564},"Sécurité","\u002Fdocs\u002Fsecurite",[565,568,571,574],{"title":566,"_path":567},"Principes de sécurité","\u002Fdocs\u002Fsecurite\u002Fprincipes",{"title":569,"_path":570},"Multi-tenant strict","\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",{"title":572,"_path":573},"Audit RGPD & journal d'accès","\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",{"title":575,"_path":576},"Déploiement souverain","\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",{"title":578,"_path":579,"children":580},"Développeurs","\u002Fdocs\u002Fdeveloppeurs",[581,584,587],{"title":582,"_path":583},"API admin","\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",{"title":585,"_path":586},"Webhooks sortants","\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":588,"_path":319},"Piloter betool depuis Claude (MCP)",{"title":590,"_path":591,"children":592},"Intégrations","\u002Fdocs\u002Fintegrations",[593,596,599,602,605,608,611,614,617,620,623,626,629,632,635,638,641,644,647],{"title":594,"_path":595},"Vue d'ensemble des intégrations","\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":597,"_path":598},"Stripe","\u002Fdocs\u002Fintegrations\u002Fstripe",{"title":600,"_path":601},"GitHub","\u002Fdocs\u002Fintegrations\u002Fgithub",{"title":603,"_path":604},"Google","\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":606,"_path":607},"LinkedIn Ads","\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":609,"_path":610},"Kavkom","\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":612,"_path":613},"Jira","\u002Fdocs\u002Fintegrations\u002Fjira",{"title":615,"_path":616},"Slack","\u002Fdocs\u002Fintegrations\u002Fslack",{"title":618,"_path":619},"SMS","\u002Fdocs\u002Fintegrations\u002Fsms",{"title":621,"_path":622},"Enable Banking (open banking)","\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":624,"_path":625},"CRM, marketing & productivité","\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":627,"_path":628},"HeyGen (vidéo)","\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":630,"_path":631},"La Poste","\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":633,"_path":634},"CRM métier (beTool Application, Qhare)","\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":636,"_path":637},"Mitti (inspections terrain)","\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":639,"_path":640},"Meta (Messenger, Pages, Meta Ads)","\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":642,"_path":643},"Onoff Business (Beta)","\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":645,"_path":646},"Smart Life \u002F Tuya (objets connectés)","\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":648,"_path":649},"Produits beTool (Desktop, Kiosk, Terminal)","\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":651,"_path":652,"children":653},"Cas d'usage","\u002Fdocs\u002Fcas-usage",[654,657,660,663,666,669],{"title":655,"_path":656},"Agents métier types","\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":658,"_path":659},"CFO IA","\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":661,"_path":662},"COO IA","\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":664,"_path":665},"CTO IA","\u002Fdocs\u002Fcas-usage\u002Fcto-ia",{"title":667,"_path":668},"Product Manager IA","\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":670,"_path":671},"Assistant personnel","\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]