Contexte

Les modèles de génération de code produisent du code mais ne le valident pas. Corriger manuellement chaque itération annule le gain de productivité. L'objectif était de fermer la boucle : l'agent génère, exécute, analyse les erreurs, corrige et recommence, jusqu'à validation ou escalade.

Contrainte opérationnelle : les APIs cloud imposent des limites de débit et peuvent être indisponibles. Un mécanisme de repli robuste était nécessaire pour ne pas interrompre un traitement en cours.

Approche technique

Boucle itérative : chaque itération génère une modification de code, l'exécute dans un environnement isolé, capture le résultat (succès, erreur, sortie) et le réinjecte comme contexte pour l'itération suivante. La boucle s'arrête sur validation des tests ou après un nombre maximum de tentatives.

Triple repli :

  • Niveau 1 — API NVIDIA : Qwen3-Coder 480B ou Mistral Large 3 via LiteLLM. Priorité donnée à la qualité de génération.
  • Niveau 2 — Modèle local : Qwen3-Coder 30B sur le serveur Xeon (15,9 tokens/s). Activé automatiquement si l'API NVIDIA est indisponible ou saturée.
  • Niveau 3 — Mode dégradé : suspension de la boucle et notification, sans perte de contexte.

Orchestration : LiteLLM comme couche d'abstraction sur les fournisseurs de modèles, Python pour la logique de boucle et la gestion d'état.

Résultats

  • 74 s par itération validée de bout en bout (mesuré en production)
  • Triple repli opérationnel et testé
  • Déployé en production comme outil interne
  • Aucune perte de contexte entre itérations
  • Compatible API NVIDIA et modèle local sans modification du code métier

Stack

Python LiteLLM NVIDIA Build API Qwen3-Coder 480B Mistral Large 3 Qwen3-Coder 30B (local) Bash