Agent async multi-outils
Exécuter plusieurs tool calls Python en parallèle avec asyncio.gather() : handlers async, gestion des exceptions par coroutine, et pourquoi le client API doit lui aussi devenir async.
Carnet de bord
AI Engineer · Développeur Backend Senior
AI Engineer et développeur backend senior basé à Challes-les-Eaux. J'aide des équipes à intégrer l'IA comme brique logicielle centrale : serveurs MCP, assistants conversationnels, agents, et tout ce qui rend ces systèmes fiables en production.
Exécuter plusieurs tool calls Python en parallèle avec asyncio.gather() : handlers async, gestion des exceptions par coroutine, et pourquoi le client API doit lui aussi devenir async.
Persister l'historique d'une conversation multi-tour et gérer sa croissance : fenêtre glissante, résumé périodique, et l'impact sur le cache de contexte.
Simon Willison a fait tester à Claude smolvm, une sandbox à base de microVM (libkrun) pour du code non fiable : démarrage à froid en 1,5 s, à chaud en 50 ms. De quoi rebattre l'arbitrage isolation/latence pour les tools qui exécutent du code généré par un LLM.
Séparer ce qui est testable de ce qui ne l'est pas dans un agent : tools purs en unitaire, boucle multi-tours avec un client factice, jamais d'appel API réel en CI.
WebMCP expose des tools JavaScript directement depuis une page web à un agent du navigateur, sans passer par le DOM ni un serveur MCP. Le flux complet, la mécanique de registerTool, et les limites de sécurité à connaître avant de l'utiliser en prod.
Une fois que le LLM a décidé d'appeler un tool avec certains arguments, tout se joue dans le code qui exécute cette décision. Trois couches concrètes en PHP : dispatch fermé, validation du schéma, isolation par processus.