La recherche en IA te passionne ?
Les papers et avancées qui comptent, expliqués simplement, chaque soir. Gratuit.
Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.
Choisis ton rythme
Gratuit · Pas de spam · Désabonnement en 1 clic
IBM et le cadre CUGA : une avancée dans la création d'agents
IBM a récemment introduit CUGA, un cadre novateur destiné à simplifier la création d'applications agentiques. Le nom CUGA, qui signifie Agent Généraliste Configurable, souligne son objectif principal : offrir aux entreprises un moyen efficace de gérer les aspects techniques complexes liés au développement d'agents. En utilisant CUGA, les développeurs peuvent se concentrer sur l'essentiel, à savoir la liste des outils et le prompt, sans se perdre dans les détails techniques. Pour démontrer la puissance de ce cadre, IBM a développé deux douzaines d'applications en un seul fichier, illustrant ainsi sa capacité à fonctionner de manière autonome et régulée en production. CUGA est facilement accessible via une simple commande : pip install cuga.
L'importance d'un cadre plutôt qu'un framework
Dans le domaine de la création d'agents, la question cruciale est de savoir ce qu'un cadre comme CUGA peut éviter aux développeurs d'écrire. La réponse réside dans sa capacité à orchestrer un modèle complexe sans nécessiter de reconstructions répétées. CUGA se distingue par sa capacité à planifier avant d'agir, en combinant appels d'outils et code généré, connu sous le nom de CodeAct. Lorsqu'une tâche s'étend sur plusieurs étapes, la plupart des agents échouent à cause de la perte de suivi des résultats intermédiaires. CUGA, en revanche, maintient cet état et intègre une étape de réflexion qui permet de détecter et de corriger les erreurs avant qu'elles ne perturbent le processus.
Cette approche a permis à CUGA de surpasser des benchmarks tels qu'AppWorld et WebArena. Contrairement à d'autres cadres qui dépendent d'un modèle de frontière pour récupérer les erreurs, CUGA prend en charge cette fonction, garantissant ainsi une exécution fluide et fiable. De plus, CUGA permet de définir le compromis coût/latence à partir de la configuration avec des modes de raisonnement Rapide, Équilibré et Précis, et l'exécution de code dans le bac à sable de votre choix, qu'il soit local, Docker/Podman, ou cloud E2B.
Un exemple concret d'application avec CUGA
Prenons l'exemple de l'IBM Cloud advisor, un agent conçu pour recommander des services IBM Cloud adaptés à une architecture donnée. Cet agent est entièrement contenu dans un fichier unique, le main.py, qui inclut la fabrique d'agents, les outils nécessaires et le prompt. Le code de l'agent est succinct mais puissant :
def make_agent():
from cuga import CugaAgent
from _llm import create_llm
return CugaAgent(
model=create_llm(
provider=os.getenv("LLM_PROVIDER"),
model=os.getenv("LLM_MODEL"),
tools=_make_tools(),
special_instructions=_SYSTEM,
cuga_folder=str(_DIR / ".cuga"),
)
)
Ce code utilise quatre arguments clés. Le modèle est généré par une petite fabrique (create_llm) qui peut se connecter à divers fournisseurs comme OpenAI, Anthropic, watsonx, LiteLLM ou Ollama, en fonction des variables d'environnement. Le dossier cuga_folder sert à stocker l'état et les politiques de l'application. Les outils et les instructions spéciales sont les éléments qui soutiennent l'application. De plus, l'agent inclut une petite interface utilisateur, rendant son utilisation encore plus intuitive.
La convention qui simplifie le développement
Un aspect souvent négligé mais crucial de CUGA est sa convention de retour d'outils. Chaque outil en ligne suit un format standardisé pour signaler le succès ou l'échec. Un succès est indiqué par {"ok": true, "data": {...}}, tandis qu'un échec est signalé par {"ok": false, "code": "...", "error": "..."}.
Cette convention permet à CUGA de gérer les échecs de manière élégante, en contournant les sections problématiques sans interrompre l'exécution globale. Le planificateur de CUGA gère un échec déclaré avec grâce et se bloque sur un échec non déclaré, où une trace de pile brute remonte en plein plan et l'exécution déraille. Les applications qui respectent cette convention fonctionnent de manière plus fiable, car elles évitent les exceptions brutes qui pourraient dérailler l'agent.
CUGA : une bibliothèque complète
La richesse de CUGA ne réside pas seulement dans ses deux douzaines d'applications, mais dans la structure commune qu'elles partagent. Une fois que vous avez compris le fonctionnement de l'advisor cloud, vous pouvez appliquer cette compréhension à d'autres applications. Par exemple, un recommandateur de films peut simplement échanger l'outil de catalogue IBM contre un serveur de connaissances MCP. Ainsi, cuga-apps sert de catalogue de points de départ, permettant aux développeurs de cloner le dépôt, d'identifier l'application la plus proche de leur idée, et de modifier la liste des outils et le prompt en conséquence.
Conclusion
CUGA représente une avancée significative dans la simplification de la création d'applications agentiques. En réduisant la complexité technique à une simple configuration d'outils et de prompts, ce cadre offre une flexibilité et une puissance d'exécution remarquables. Les applications développées avec CUGA démontrent la capacité de créer des agents fonctionnels et efficaces sans nécessiter une réécriture complexe pour la production.



