Outre l’économie de tokens, ReWOO démontre un avantage supplémentaire : la robustesse en cas de défaillance d’un outil. Si un outil ne fonctionne pas sous ReAct, par exemple, le système peut se retrouver dans une boucle infinie (car le LLM interrogerait de manière répétée une base de données défaillante pour obtenir la météo à Chicago, par exemple).
ReWOO est plus agile. Même si un outil ne renvoie pas l’élément de preuve demandé, le plan général est toujours en place : le module Worker peut progresser, et le module Solver sera en mesure de fournir au moins une réponse partielle. Dans l’exemple de la météo, au lieu de s’enfermer dans une boucle infinie ou excessive en interrogeant une base de données sur la météo à Chicago, le module Solver renverrait au moins une réponse informant l’utilisateur de la météo à New York et à Milwaukee (en supposant que le module Worker soit en mesure de récupérer ces éléments), ce qui pourrait en fin de compte suffire pour répondre aux besoins de l’utilisateur.
Malgré ses avantages, ReWOO n’est pas un cadre absolument supérieur ; il est tout simplement meilleur pour certains types de tâches, en particulier lorsque les types et les quantités de preuves nécessaires sont régulières et prévisibles. Là où ReWOO échoue, c’est face aux problèmes moins prévisibles ou moins structurés qui demandent de la créativité, de l’exploration ou de l’improvisation. S’il excelle en présence d’inconnues connues, ReWOO échoue face aux inconnues inconnues.
Par exemple, ReWOO ne serait pas une solution optimale pour déboguer le code Python, un processus exploratoire et itératif où chaque correctif peut générer de nouvelles erreurs et de nouveaux indices, devenant rapidement caducs. Un cadre plus adaptable comme ReAct, bien que moins économique en tokens dans l’abstrait, serait finalement mieux adapté à un tel problème.