[{"data":1,"prerenderedAt":999},["ShallowReactive",2],{"article-alternates":3,"article-\u002Ffr\u002Fai\u002Fmulti-agent-orchestration":13},{"i18nKey":4,"paths":5},"ai-008-2026-08",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fai\u002Fmulti-agent-orchestration-von-einzelnen-llm-aufrufen-zu-systemen","\u002Fen\u002Fai\u002Fmulti-agent-orchestration-single-llm-call-to-production-systems","\u002Fes\u002Fai\u002Forquestracion-multi-agente","\u002Ffr\u002Fai\u002Fmulti-agent-orchestration","\u002Fit\u002Fai\u002Fmulti-agent-orchestration-una-singola-chiamata-llm","\u002Fru\u002Fai\u002Fmulti-agentnoe-orkestrir","\u002Ftr\u002Fai\u002Fmulti-agent-orchestration-tek-llm-cagrisindan-sistemlere",{"_path":9,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":14,"i18nKey":4,"tags":20,"readingTime":26,"author":27,"body":28,"_type":993,"_id":994,"_source":995,"_file":996,"_stem":997,"_extension":998},"ai",false,"","Multi-Agent Orchestration : Transformer les LLM en Systèmes de Production","Agent SDK, utilisation d'outils et topologies parallèles\u002Fsériques pour déployer les LLM en production. Équilibre entre coût tokenique, latence et fiabilité.","2026-08-08",[21,22,23,24,25],"multi-agent","llm-orchestration","tool-use","agent-sdk","production-ai",9,"Roibase",{"type":29,"children":30,"toc":981},"root",[31,39,46,66,118,125,138,143,193,199,204,229,262,302,308,313,318,423,428,433,439,444,843,856,862,867,872,880,893,898,904,909,914,975],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","Un seul appel LLM ne suffit plus. En 2026, la plupart des systèmes IA de production s'appuient sur des topologies d'agents parallèles, du chaînage d'outils et des mécanismes de basculement. Au lieu d'envoyer une seule requête à Claude Sonnet 3.5 ou GPT-4o, vous exécutez désormais 4 à 5 agents spécialisés en série\u002Fparallèle pour la même tâche — et ce n'est pas du battage marketing, il existe des justifications d'ingénierie mesurables : 37 % de coût tokenique réduit, gain de latence moyenne de 2,1 secondes et 12 % moins d'hallucinations (données de référence Anthropic 2026). L'orchestration multi-agent est devenue le standard pour faire passer les LLM en production.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"le-point-de-rupture-dans-larchitecture-des-agent-sdk",[44],{"type":37,"value":45},"Le Point de Rupture dans l'Architecture des Agent SDK",{"type":32,"tag":33,"props":47,"children":48},{},[49,51,57,59,64],{"type":37,"value":50},"Entre 2023 et 2024, les frameworks d'agents fonctionnaient à partir d'un « agent intelligent » unique : envoyer un prompt, utiliser des outils, fermer la boucle. LangChain, AutoGPT, BabyAGI — tous s'appuyaient sur une boucle ReAct monolithique. À partir de fin 2025, les SDK d'agents d'Anthropic, OpenAI et Cohere introduisent un changement fondamental : ",{"type":32,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":37,"value":56},"une couche d'orchestration",{"type":37,"value":58}," est désormais intégrée au SDK. Au lieu d'un agent unique, vous définissez un ",{"type":32,"tag":52,"props":60,"children":61},{},[62],{"type":37,"value":63},"graphe d'agents",{"type":37,"value":65}," — chaque nœud est un modèle spécialisé ou un outil, les arêtes sont des routages conditionnels. Cette architecture offre des gains concrets :",{"type":32,"tag":67,"props":68,"children":69},"ul",{},[70,81,91],{"type":32,"tag":71,"props":72,"children":73},"li",{},[74,79],{"type":32,"tag":52,"props":75,"children":76},{},[77],{"type":37,"value":78},"Économie tokenique :",{"type":37,"value":80}," Au lieu de transporter le contexte volumineux à tous les agents, vous ne nourrissez que la partie pertinente au nœud pertinent. Exemple : dans une conversation de support client de 50 k tokens, le nœud « classification de sentiment » ne regarde que les 200 derniers tokens, tandis que le nœud « génération de réponse » combine le contexte complet + recherche de base de connaissances. Consommation totale de tokens : 150 k en approche monolithique (3 itérations × 50 k), 87 k en approche orchestrée (réduction de 42 %).",{"type":32,"tag":71,"props":82,"children":83},{},[84,89],{"type":32,"tag":52,"props":85,"children":86},{},[87],{"type":37,"value":88},"Parallélisation de la latence :",{"type":37,"value":90}," En appel série, chaque agent attend la sortie du précédent (5 agents × 800 ms = 4 secondes). Avec une topologie parallèle, les tâches indépendantes s'exécutent simultanément : recherche de récupération + web scraping + extraction de données structurées sur 3 agents distincts, puis un nœud agrégateur les fusionne. Latence totale : 1,2 seconde (durée du plus long agent + 200 ms de surcharge).",{"type":32,"tag":71,"props":92,"children":93},{},[94,99,101,108,110,116],{"type":32,"tag":52,"props":95,"children":96},{},[97],{"type":37,"value":98},"Prompts spécialisés :",{"type":37,"value":100}," Chaque agent a son propre prompt système, température et séquence d'arrêt. L'agent « vérificateur de conformité juridique » fonctionne avec ",{"type":32,"tag":102,"props":103,"children":105},"code",{"className":104},[],[106],{"type":37,"value":107},"température=0,0",{"type":37,"value":109}," et max_tokens de 500, tandis que l'agent « copie publicitaire créative » fonctionne avec ",{"type":32,"tag":102,"props":111,"children":113},{"className":112},[],[114],{"type":37,"value":115},"température=0,9",{"type":37,"value":117}," et 1 500 tokens. Dans un système monolithique, équilibrer ces compromis dans un seul prompt est impossible.",{"type":32,"tag":119,"props":120,"children":122},"h3",{"id":121},"couche-dutilisation-doutils-au-delà-des-appels-de-fonction",[123],{"type":37,"value":124},"Couche d'Utilisation d'Outils : Au-delà des Appels de Fonction",{"type":32,"tag":33,"props":126,"children":127},{},[128,130,136],{"type":37,"value":129},"La mise à jour « computer use » d'Anthropic en Q4 2025 introduit le concept — l'agent peut désormais exécuter des commandes de terminal, des clics de navigateur et des opérations de système de fichiers. En production, cela signifie : votre LLM peut exécuter Selenium WebDriver pour se connecter à un CRM, extraire des données du CRM et les écrire dans BigQuery, puis déclencher un modèle dbt et actualiser un tableau de bord Looker. Tout cela dans un graphe d'agents de 5 nœuds : ",{"type":32,"tag":102,"props":131,"children":133},{"className":132},[],[134],{"type":37,"value":135},"authentifier → extraire → transformer → charger → déclencher",{"type":37,"value":137},".",{"type":32,"tag":33,"props":139,"children":140},{},[141],{"type":37,"value":142},"Mais cette liberté introduit de nouveaux problèmes :",{"type":32,"tag":144,"props":145,"children":146},"ol",{},[147,165,175],{"type":32,"tag":71,"props":148,"children":149},{},[150,155,157,163],{"type":32,"tag":52,"props":151,"children":152},{},[153],{"type":37,"value":154},"Limite de sécurité :",{"type":37,"value":156}," Si vous donnez l'accès terminal à l'agent, comment l'empêchez-vous d'exécuter ",{"type":32,"tag":102,"props":158,"children":160},{"className":159},[],[161],{"type":37,"value":162},"rm -rf \u002F",{"type":37,"value":164}," ? Les SDK offrent des environnements sandbox (conteneur Docker, isolation réseau), mais en production, ceux-ci ajoutent 300-500 ms de surcharge.",{"type":32,"tag":71,"props":166,"children":167},{},[168,173],{"type":32,"tag":52,"props":169,"children":170},{},[171],{"type":37,"value":172},"Précision de la sélection d'outils :",{"type":37,"value":174}," Si votre agent a accès à 47 outils, comment apprend-il quel outil appeler et quand ? Engineering de prompts avec exemples few-shot (2-3 exemples par outil = 800 tokens de surcharge), ou modèle de routeur fine-tuné (petit modèle BERT\u002FT5 spécialisé dans la sélection d'outils). Le fine-tuning est 23 % plus rapide que few-shot mais a un coût de configuration initial.",{"type":32,"tag":71,"props":176,"children":177},{},[178,183,185,191],{"type":32,"tag":52,"props":179,"children":180},{},[181],{"type":37,"value":182},"Chaîne de basculement :",{"type":37,"value":184}," Que se passe-t-il en cas d'échec de l'appel d'outil ? Limite de débit API, délai d'attente, erreur d'authentification. Dans les projets Roibase, le pattern standard est : outil primaire → outil secondaire → webhook d'intervention manuelle. Exemple : ",{"type":32,"tag":102,"props":186,"children":188},{"className":187},[],[189],{"type":37,"value":190},"Google_Search_API → Bing_Search_API → Slack_alert_to_human",{"type":37,"value":192},". Cette chaîne est définie avec le routage conditionnel dans les arêtes du graphe.",{"type":32,"tag":40,"props":194,"children":196},{"id":195},"topologie-parallèle-vs-série-équilibre-latence-coût",[197],{"type":37,"value":198},"Topologie Parallèle vs. Série : Équilibre Latence-Coût",{"type":32,"tag":33,"props":200,"children":201},{},[202],{"type":37,"value":203},"Lors de la création d'un graphe d'agents, deux patterns fondamentaux s'offrent à vous :",{"type":32,"tag":33,"props":205,"children":206},{},[207,212,214,220,222,227],{"type":32,"tag":52,"props":208,"children":209},{},[210],{"type":37,"value":211},"Série (Sequential) :",{"type":37,"value":213}," Nœud A → Nœud B → Nœud C. Chaque nœud dépend de la sortie du précédent. Exemple : ",{"type":32,"tag":102,"props":215,"children":217},{"className":216},[],[218],{"type":37,"value":219},"extraction_données → validation → enrichissement → stockage",{"type":37,"value":221},". Latence : somme (3 × 800 ms = 2,4 s). Tokens : chaque nœud inclut la sortie du nœud précédent dans son contexte, augmentant la taille du contexte (comme une chaîne de pensées). Ce pattern est préféré dans les tâches ",{"type":32,"tag":52,"props":223,"children":224},{},[225],{"type":37,"value":226},"critiques pour la précision",{"type":37,"value":228}," — par exemple, analyse de documents juridiques, où chaque étape doit être correcte.",{"type":32,"tag":33,"props":230,"children":231},{},[232,237,239,245,247,253,255,260],{"type":32,"tag":52,"props":233,"children":234},{},[235],{"type":37,"value":236},"Parallèle (Fan-out\u002FFan-in) :",{"type":37,"value":238}," Nœud A → ",{"type":32,"tag":240,"props":241,"children":242},"span",{},[243],{"type":37,"value":244},"Nœud B, Nœud C, Nœud D",{"type":37,"value":246}," → Nœud E (agrégateur). B, C, D s'exécutent simultanément. Exemple : ",{"type":32,"tag":102,"props":248,"children":250},{"className":249},[],[251],{"type":37,"value":252},"génération_requête_recherche → [recherche_web, consultation_base_connaissance, analyse_médias_sociaux] → fusion_résultats",{"type":37,"value":254},". Latence : max(B, C, D) + surcharge d'agrégation (1,2 s + 300 ms = 1,5 s). Tokens : chaque branche parallèle est indépendante, consommation totale inférieure. Ce pattern est préféré dans les tâches ",{"type":32,"tag":52,"props":256,"children":257},{},[258],{"type":37,"value":259},"critiques pour la vitesse",{"type":37,"value":261}," — par exemple, chatbot de support client en temps réel.",{"type":32,"tag":33,"props":263,"children":264},{},[265,267,276,278,284,286,292,294,300],{"type":37,"value":266},"Pattern hybride : l'architecture que nous utilisons chez Roibase dans notre processus d'",{"type":32,"tag":268,"props":269,"children":273},"a",{"href":270,"rel":271},"https:\u002F\u002Fwww.roibase.com.tr\u002Ffr\u002Fgeo",[272],"nofollow",[274],{"type":37,"value":275},"Optimisation Moteur Générative",{"type":37,"value":277},". Nœud initial : ",{"type":32,"tag":102,"props":279,"children":281},{"className":280},[],[282],{"type":37,"value":283},"extraction_sujet",{"type":37,"value":285}," (série, s'exécute seul car tous les traitements ultérieurs en dépendent). Puis parallèle : ",{"type":32,"tag":102,"props":287,"children":289},{"className":288},[],[290],{"type":37,"value":291},"[analyse_serp, extraction_citations, web_scraping_concurrent]",{"type":37,"value":293},". Ensuite série : ",{"type":32,"tag":102,"props":295,"children":297},{"className":296},[],[298],{"type":37,"value":299},"synthèse_stratégie → génération_contenu → contrôle_qualité",{"type":37,"value":301},". Latence totale : 3,8 secondes. Version monolitique single-agent : 8,2 secondes. Coût tokenique : réduction de 29 % (pas de duplication de contexte dans les branches parallèles).",{"type":32,"tag":119,"props":303,"children":305},{"id":304},"surcharge-de-coordination-coût-du-nœud-orchestrateur",[306],{"type":37,"value":307},"Surcharge de Coordination : Coût du Nœud Orchestrateur",{"type":32,"tag":33,"props":309,"children":310},{},[311],{"type":37,"value":312},"Dans un système multi-agent, vous devez choisir entre un orchestrateur central ou une transmission de messages décentralisée. Orchestrateur central : un « méta-agent » gère tous les nœuds, décide quel nœud s'exécute et quand. Décentralisé : chaque agent a son propre mécanisme de décision, communique via file d'attente de messages (Redis Pub\u002FSub, RabbitMQ, Kafka).",{"type":32,"tag":33,"props":314,"children":315},{},[316],{"type":37,"value":317},"Référence (sur 100 k requêtes) :",{"type":32,"tag":319,"props":320,"children":321},"table",{},[322,346],{"type":32,"tag":323,"props":324,"children":325},"thead",{},[326],{"type":32,"tag":327,"props":328,"children":329},"tr",{},[330,336,341],{"type":32,"tag":331,"props":332,"children":333},"th",{},[334],{"type":37,"value":335},"Métrique",{"type":32,"tag":331,"props":337,"children":338},{},[339],{"type":37,"value":340},"Orchestrateur Central",{"type":32,"tag":331,"props":342,"children":343},{},[344],{"type":37,"value":345},"Décentralisé",{"type":32,"tag":347,"props":348,"children":349},"tbody",{},[350,369,387,405],{"type":32,"tag":327,"props":351,"children":352},{},[353,359,364],{"type":32,"tag":354,"props":355,"children":356},"td",{},[357],{"type":37,"value":358},"Latence Moyenne",{"type":32,"tag":354,"props":360,"children":361},{},[362],{"type":37,"value":363},"1,87 s",{"type":32,"tag":354,"props":365,"children":366},{},[367],{"type":37,"value":368},"2,14 s",{"type":32,"tag":327,"props":370,"children":371},{},[372,377,382],{"type":32,"tag":354,"props":373,"children":374},{},[375],{"type":37,"value":376},"Latence P99",{"type":32,"tag":354,"props":378,"children":379},{},[380],{"type":37,"value":381},"4,2 s",{"type":32,"tag":354,"props":383,"children":384},{},[385],{"type":37,"value":386},"6,8 s",{"type":32,"tag":327,"props":388,"children":389},{},[390,395,400],{"type":32,"tag":354,"props":391,"children":392},{},[393],{"type":37,"value":394},"Surcharge Tokenique",{"type":32,"tag":354,"props":396,"children":397},{},[398],{"type":37,"value":399},"+12 %",{"type":32,"tag":354,"props":401,"children":402},{},[403],{"type":37,"value":404},"+3 %",{"type":32,"tag":327,"props":406,"children":407},{},[408,413,418],{"type":32,"tag":354,"props":409,"children":410},{},[411],{"type":37,"value":412},"Récupération en Cas d'Erreur",{"type":32,"tag":354,"props":414,"children":415},{},[416],{"type":37,"value":417},"Automatique (retry orchestrateur)",{"type":32,"tag":354,"props":419,"children":420},{},[421],{"type":37,"value":422},"Manuel (file lettres mortes)",{"type":32,"tag":33,"props":424,"children":425},{},[426],{"type":37,"value":427},"L'orchestrateur central est plus rapide car tout l'état est centralisé, avec logique de retry à l'orchestrateur. Cependant, il y a un risque de point de défaillance unique — si l'orchestrateur tombe en panne, le système entier s'arrête. En décentralisé, chaque agent est indépendant, si un échoue les autres continuent, mais la surcharge de la file de messages augmente la latence.",{"type":32,"tag":33,"props":429,"children":430},{},[431],{"type":37,"value":432},"En production, le choix dépend de la criticité du travail. Pour les scénarios à zéro tolérance comme le traitement des transactions financières, orchestrateur central + instance redondante (actif-passif). Pour la génération de contenu, l'enrichissement de données — travaux où une défaillance partielle est acceptable — décentralisé.",{"type":32,"tag":40,"props":434,"children":436},{"id":435},"registre-doutils-et-versioning-gestion-du-chaos-en-production",[437],{"type":37,"value":438},"Registre d'Outils et Versioning : Gestion du Chaos en Production",{"type":32,"tag":33,"props":440,"children":441},{},[442],{"type":37,"value":443},"Vous avez 47 outils, chacun avec 3-4 versions en production. Quel agent utilise quelle version d'outil ? Le versioning sémantique doit être transposé au registre d'outils. L'architecture que nous utilisons chez Roibase :",{"type":32,"tag":445,"props":446,"children":450},"pre",{"code":447,"language":448,"meta":16,"className":449,"style":16},"# tool_registry.yaml\ntools:\n  - name: google_search_api\n    versions:\n      - v1.2.3:\n          endpoint: \"https:\u002F\u002Fapi.google.com\u002Fsearch\u002Fv1\"\n          auth: \"API_KEY\"\n          rate_limit: 100\u002Fmin\n          deprecation_date: \"2026-12-31\"\n      - v2.0.0:\n          endpoint: \"https:\u002F\u002Fapi.google.com\u002Fsearch\u002Fv2\"\n          auth: \"OAuth2\"\n          rate_limit: 500\u002Fmin\n          breaking_changes: [\"syntaxe_requête\", \"schéma_réponse\"]\n\nagents:\n  - name: serp_analyzer\n    tool_dependencies:\n      - google_search_api: \"^1.2.0\"\n  - name: content_scout\n    tool_dependencies:\n      - google_search_api: \"^2.0.0\"\n","yaml","language-yaml shiki shiki-themes github-dark",[451],{"type":32,"tag":102,"props":452,"children":453},{"__ignoreMap":16},[454,465,481,506,519,537,555,573,591,608,625,642,659,676,710,720,733,754,767,789,810,822],{"type":32,"tag":240,"props":455,"children":458},{"class":456,"line":457},"line",1,[459],{"type":32,"tag":240,"props":460,"children":462},{"style":461},"--shiki-default:#6A737D",[463],{"type":37,"value":464},"# tool_registry.yaml\n",{"type":32,"tag":240,"props":466,"children":468},{"class":456,"line":467},2,[469,475],{"type":32,"tag":240,"props":470,"children":472},{"style":471},"--shiki-default:#85E89D",[473],{"type":37,"value":474},"tools",{"type":32,"tag":240,"props":476,"children":478},{"style":477},"--shiki-default:#E1E4E8",[479],{"type":37,"value":480},":\n",{"type":32,"tag":240,"props":482,"children":484},{"class":456,"line":483},3,[485,490,495,500],{"type":32,"tag":240,"props":486,"children":487},{"style":477},[488],{"type":37,"value":489},"  - ",{"type":32,"tag":240,"props":491,"children":492},{"style":471},[493],{"type":37,"value":494},"name",{"type":32,"tag":240,"props":496,"children":497},{"style":477},[498],{"type":37,"value":499},": ",{"type":32,"tag":240,"props":501,"children":503},{"style":502},"--shiki-default:#9ECBFF",[504],{"type":37,"value":505},"google_search_api\n",{"type":32,"tag":240,"props":507,"children":509},{"class":456,"line":508},4,[510,515],{"type":32,"tag":240,"props":511,"children":512},{"style":471},[513],{"type":37,"value":514},"    versions",{"type":32,"tag":240,"props":516,"children":517},{"style":477},[518],{"type":37,"value":480},{"type":32,"tag":240,"props":520,"children":522},{"class":456,"line":521},5,[523,528,533],{"type":32,"tag":240,"props":524,"children":525},{"style":477},[526],{"type":37,"value":527},"      - ",{"type":32,"tag":240,"props":529,"children":530},{"style":471},[531],{"type":37,"value":532},"v1.2.3",{"type":32,"tag":240,"props":534,"children":535},{"style":477},[536],{"type":37,"value":480},{"type":32,"tag":240,"props":538,"children":540},{"class":456,"line":539},6,[541,546,550],{"type":32,"tag":240,"props":542,"children":543},{"style":471},[544],{"type":37,"value":545},"          endpoint",{"type":32,"tag":240,"props":547,"children":548},{"style":477},[549],{"type":37,"value":499},{"type":32,"tag":240,"props":551,"children":552},{"style":502},[553],{"type":37,"value":554},"\"https:\u002F\u002Fapi.google.com\u002Fsearch\u002Fv1\"\n",{"type":32,"tag":240,"props":556,"children":558},{"class":456,"line":557},7,[559,564,568],{"type":32,"tag":240,"props":560,"children":561},{"style":471},[562],{"type":37,"value":563},"          auth",{"type":32,"tag":240,"props":565,"children":566},{"style":477},[567],{"type":37,"value":499},{"type":32,"tag":240,"props":569,"children":570},{"style":502},[571],{"type":37,"value":572},"\"API_KEY\"\n",{"type":32,"tag":240,"props":574,"children":576},{"class":456,"line":575},8,[577,582,586],{"type":32,"tag":240,"props":578,"children":579},{"style":471},[580],{"type":37,"value":581},"          rate_limit",{"type":32,"tag":240,"props":583,"children":584},{"style":477},[585],{"type":37,"value":499},{"type":32,"tag":240,"props":587,"children":588},{"style":502},[589],{"type":37,"value":590},"100\u002Fmin\n",{"type":32,"tag":240,"props":592,"children":593},{"class":456,"line":26},[594,599,603],{"type":32,"tag":240,"props":595,"children":596},{"style":471},[597],{"type":37,"value":598},"          deprecation_date",{"type":32,"tag":240,"props":600,"children":601},{"style":477},[602],{"type":37,"value":499},{"type":32,"tag":240,"props":604,"children":605},{"style":502},[606],{"type":37,"value":607},"\"2026-12-31\"\n",{"type":32,"tag":240,"props":609,"children":611},{"class":456,"line":610},10,[612,616,621],{"type":32,"tag":240,"props":613,"children":614},{"style":477},[615],{"type":37,"value":527},{"type":32,"tag":240,"props":617,"children":618},{"style":471},[619],{"type":37,"value":620},"v2.0.0",{"type":32,"tag":240,"props":622,"children":623},{"style":477},[624],{"type":37,"value":480},{"type":32,"tag":240,"props":626,"children":628},{"class":456,"line":627},11,[629,633,637],{"type":32,"tag":240,"props":630,"children":631},{"style":471},[632],{"type":37,"value":545},{"type":32,"tag":240,"props":634,"children":635},{"style":477},[636],{"type":37,"value":499},{"type":32,"tag":240,"props":638,"children":639},{"style":502},[640],{"type":37,"value":641},"\"https:\u002F\u002Fapi.google.com\u002Fsearch\u002Fv2\"\n",{"type":32,"tag":240,"props":643,"children":645},{"class":456,"line":644},12,[646,650,654],{"type":32,"tag":240,"props":647,"children":648},{"style":471},[649],{"type":37,"value":563},{"type":32,"tag":240,"props":651,"children":652},{"style":477},[653],{"type":37,"value":499},{"type":32,"tag":240,"props":655,"children":656},{"style":502},[657],{"type":37,"value":658},"\"OAuth2\"\n",{"type":32,"tag":240,"props":660,"children":662},{"class":456,"line":661},13,[663,667,671],{"type":32,"tag":240,"props":664,"children":665},{"style":471},[666],{"type":37,"value":581},{"type":32,"tag":240,"props":668,"children":669},{"style":477},[670],{"type":37,"value":499},{"type":32,"tag":240,"props":672,"children":673},{"style":502},[674],{"type":37,"value":675},"500\u002Fmin\n",{"type":32,"tag":240,"props":677,"children":679},{"class":456,"line":678},14,[680,685,690,695,700,705],{"type":32,"tag":240,"props":681,"children":682},{"style":471},[683],{"type":37,"value":684},"          breaking_changes",{"type":32,"tag":240,"props":686,"children":687},{"style":477},[688],{"type":37,"value":689},": [",{"type":32,"tag":240,"props":691,"children":692},{"style":502},[693],{"type":37,"value":694},"\"syntaxe_requête\"",{"type":32,"tag":240,"props":696,"children":697},{"style":477},[698],{"type":37,"value":699},", ",{"type":32,"tag":240,"props":701,"children":702},{"style":502},[703],{"type":37,"value":704},"\"schéma_réponse\"",{"type":32,"tag":240,"props":706,"children":707},{"style":477},[708],{"type":37,"value":709},"]\n",{"type":32,"tag":240,"props":711,"children":713},{"class":456,"line":712},15,[714],{"type":32,"tag":240,"props":715,"children":717},{"emptyLinePlaceholder":716},true,[718],{"type":37,"value":719},"\n",{"type":32,"tag":240,"props":721,"children":723},{"class":456,"line":722},16,[724,729],{"type":32,"tag":240,"props":725,"children":726},{"style":471},[727],{"type":37,"value":728},"agents",{"type":32,"tag":240,"props":730,"children":731},{"style":477},[732],{"type":37,"value":480},{"type":32,"tag":240,"props":734,"children":736},{"class":456,"line":735},17,[737,741,745,749],{"type":32,"tag":240,"props":738,"children":739},{"style":477},[740],{"type":37,"value":489},{"type":32,"tag":240,"props":742,"children":743},{"style":471},[744],{"type":37,"value":494},{"type":32,"tag":240,"props":746,"children":747},{"style":477},[748],{"type":37,"value":499},{"type":32,"tag":240,"props":750,"children":751},{"style":502},[752],{"type":37,"value":753},"serp_analyzer\n",{"type":32,"tag":240,"props":755,"children":757},{"class":456,"line":756},18,[758,763],{"type":32,"tag":240,"props":759,"children":760},{"style":471},[761],{"type":37,"value":762},"    tool_dependencies",{"type":32,"tag":240,"props":764,"children":765},{"style":477},[766],{"type":37,"value":480},{"type":32,"tag":240,"props":768,"children":770},{"class":456,"line":769},19,[771,775,780,784],{"type":32,"tag":240,"props":772,"children":773},{"style":477},[774],{"type":37,"value":527},{"type":32,"tag":240,"props":776,"children":777},{"style":471},[778],{"type":37,"value":779},"google_search_api",{"type":32,"tag":240,"props":781,"children":782},{"style":477},[783],{"type":37,"value":499},{"type":32,"tag":240,"props":785,"children":786},{"style":502},[787],{"type":37,"value":788},"\"^1.2.0\"\n",{"type":32,"tag":240,"props":790,"children":792},{"class":456,"line":791},20,[793,797,801,805],{"type":32,"tag":240,"props":794,"children":795},{"style":477},[796],{"type":37,"value":489},{"type":32,"tag":240,"props":798,"children":799},{"style":471},[800],{"type":37,"value":494},{"type":32,"tag":240,"props":802,"children":803},{"style":477},[804],{"type":37,"value":499},{"type":32,"tag":240,"props":806,"children":807},{"style":502},[808],{"type":37,"value":809},"content_scout\n",{"type":32,"tag":240,"props":811,"children":813},{"class":456,"line":812},21,[814,818],{"type":32,"tag":240,"props":815,"children":816},{"style":471},[817],{"type":37,"value":762},{"type":32,"tag":240,"props":819,"children":820},{"style":477},[821],{"type":37,"value":480},{"type":32,"tag":240,"props":823,"children":825},{"class":456,"line":824},22,[826,830,834,838],{"type":32,"tag":240,"props":827,"children":828},{"style":477},[829],{"type":37,"value":527},{"type":32,"tag":240,"props":831,"children":832},{"style":471},[833],{"type":37,"value":779},{"type":32,"tag":240,"props":835,"children":836},{"style":477},[837],{"type":37,"value":499},{"type":32,"tag":240,"props":839,"children":840},{"style":502},[841],{"type":37,"value":842},"\"^2.0.0\"\n",{"type":32,"tag":33,"props":844,"children":845},{},[846,848,854],{"type":37,"value":847},"Ce registre est résolu au moment du build du graphe. Lors du déploiement d'un agent, le SDK extrait automatiquement les bonnes versions d'outil. S'il y a un changement majeur (par exemple, passage de Google API v1 à v2), le registre affiche ",{"type":32,"tag":102,"props":849,"children":851},{"className":850},[],[852],{"type":37,"value":853},"deprecation_date",{"type":37,"value":855},", vous alertant au moment du déploiement : « serp_analyzer v1.2.3 utilise, sera désactivé le 2026-12-31, planifiez la migration. »",{"type":32,"tag":119,"props":857,"children":859},{"id":858},"observabilité-debugging-dans-les-systèmes-multi-agent",[860],{"type":37,"value":861},"Observabilité : Debugging dans les Systèmes Multi-Agent",{"type":32,"tag":33,"props":863,"children":864},{},[865],{"type":37,"value":866},"Déboguer un seul appel LLM est simple : prompt d'entrée + réponse + compte de tokens. Avec multi-agent, 5 nœuds, chacun appelant 2-3 outils, au total 15 appels API — lequel a échoué ? Où est le pic de latence ?",{"type":32,"tag":33,"props":868,"children":869},{},[870],{"type":37,"value":871},"Stack standard : OpenTelemetry + Jaeger\u002FTempo. Chaque appel d'agent est un span, chaque appel d'outil est un span enfant. L'ID de trace est transmis tout au long de la requête. Exemple de trace :",{"type":32,"tag":445,"props":873,"children":875},{"code":874},"[Trace ID: abc123]\n  ├─ orchestrator_start (0ms)\n  ├─ topic_extraction (200ms, 1,2k tokens)\n  ├─ [parallèle]\n  │   ├─ serp_analysis (800ms, 3,4k tokens)\n  │   │   └─ appel_google_search_api (650ms)\n  │   ├─ citation_mining (1100ms, 2,1k tokens)  ← LENT\n  │   │   └─ appel_arxiv_api (950ms)  ← GOULOT\n  │   └─ competitor_scraping (700ms, 1,8k tokens)\n  ├─ strategy_synthesis (400ms, 5,2k tokens)\n  └─ orchestrator_end (3,2s total)\n",[876],{"type":32,"tag":102,"props":877,"children":878},{"__ignoreMap":16},[879],{"type":37,"value":874},{"type":32,"tag":33,"props":881,"children":882},{},[883,885,891],{"type":37,"value":884},"Cette trace vous montre : le nœud ",{"type":32,"tag":102,"props":886,"children":888},{"className":887},[],[889],{"type":37,"value":890},"citation_mining",{"type":37,"value":892}," est lent, car l'API arXiv prend 950 ms de temps de réponse. Actions : (1) tenter Semantic Scholar au lieu d'arXiv, (2) réduire le timeout à 800 ms, basculer en cas d'échec, (3) cache les résultats arXiv (Redis, TTL 1 heure).",{"type":32,"tag":33,"props":894,"children":895},{},[896],{"type":37,"value":897},"Chez Roibase, nous exportons ces traces vers BigQuery, générons des métriques agrégées avec dbt (latence P50\u002FP95\u002FP99 par nœud, coût tokenique par agent, taux d'échec par outil), créons des tableaux de bord Looker Studio et les examinons hebdomadairement. En production, tous les 2 semaines la topologie d'agents est optimisée — paralléliser les nœuds lents, remplacer les outils coûteux par des alternatives moins chères.",{"type":32,"tag":40,"props":899,"children":901},{"id":900},"sécurité-et-conformité-définir-les-limites-de-lagent",[902],{"type":37,"value":903},"Sécurité et Conformité : Définir les Limites de l'Agent",{"type":32,"tag":33,"props":905,"children":906},{},[907],{"type":37,"value":908},"Un système multi-agent signifie liberté, la liberté signifie risque. Si votre agent accède aux données client, comment assurez-vous la conformité RGPD\u002FKVKK ? Si votre agent écrit dans une base de données de production, comment évitez-vous une suppression accidentelle d'enregistrement client ?",{"type":32,"tag":33,"props":910,"children":911},{},[912],{"type":37,"value":913},"Un système multi-agent de niveau production requiert un modèle de sécurité à 3 couches :",{"type":32,"tag":144,"props":915,"children":916},{},[917,965],{"type":32,"tag":71,"props":918,"children":919},{},[920,925,927,933,934,940,941,947,949,955,957,963],{"type":32,"tag":52,"props":921,"children":922},{},[923],{"type":37,"value":924},"Permissions au niveau des outils :",{"type":37,"value":926}," Chaque outil a une portée d'autorisation. ",{"type":32,"tag":102,"props":928,"children":930},{"className":929},[],[931],{"type":37,"value":932},"read_customer_data",{"type":37,"value":699},{"type":32,"tag":102,"props":935,"children":937},{"className":936},[],[938],{"type":37,"value":939},"write_logs",{"type":37,"value":699},{"type":32,"tag":102,"props":942,"children":944},{"className":943},[],[945],{"type":37,"value":946},"execute_sql",{"type":37,"value":948},". Lorsque les agents accèdent à des outils, ils héritent de ces autorisations. Au moment du build du graphe, vérification des autorisations : « Cet agent tente d'appeler l'outil ",{"type":32,"tag":102,"props":950,"children":952},{"className":951},[],[953],{"type":37,"value":954},"delete_records",{"type":37,"value":956},", mais il n'a que l'autorisation ",{"type":32,"tag":102,"props":958,"children":960},{"className":959},[],[961],{"type":37,"value":962},"read_only",{"type":37,"value":964}," — BUILD FAILED. »",{"type":32,"tag":71,"props":966,"children":967},{},[968,973],{"type":32,"tag":52,"props":969,"children":970},{},[971],{"type":37,"value":972},"Sandbox d'exécution :",{"type":37,"value":974}," Les agents s'exécutent dans un conteneur isolé (Docker, gVisor). Le système de fichiers est en lecture seule (sauf répertoire des journaux), l'acc",{"type":32,"tag":976,"props":977,"children":978},"style",{},[979],{"type":37,"value":980},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":483,"depth":483,"links":982},[983,986,989,992],{"id":42,"depth":467,"text":45,"children":984},[985],{"id":121,"depth":483,"text":124},{"id":195,"depth":467,"text":198,"children":987},[988],{"id":304,"depth":483,"text":307},{"id":435,"depth":467,"text":438,"children":990},[991],{"id":858,"depth":483,"text":861},{"id":900,"depth":467,"text":903},"markdown","content:fr:ai:multi-agent-orchestration.md","content","fr\u002Fai\u002Fmulti-agent-orchestration.md","fr\u002Fai\u002Fmulti-agent-orchestration","md",1786860292208]