L’objectif de ce tutoriel est de créer des agents autonomes simples capables de travailler ensemble avec une fonction bien précise pour chacun d’eux afin de bâtir du code pour l’ERP Microsoft Dynamics 365 Business Central. C’est aussi de montrer les possibilités en 20/30mns de ce qu’on peut faire rapidement. Pour des résultats poussés et affinés, ca prend un peu plus de temps 🙂. Dans notre exemple, nous aurons un dev pour le backend et la logique (tables, codeunit, etc.), un autre dev pour les interfaces (pages, rapports, etc.), un analyste QA pour optimiser, et donner des solutions d’améliorations dans le code et un dev principal chargé de modifier le code via les suggestions de notre QA. Nous avons un vrai module de développeur virtuel que nous proposerons dans la boutique Shellbots au mois de Juin. |
L’intérêt aussi supplémentaire de faire appel à des agents, c’est qu’on peut découper la demande en petit bout en travaillant ensemble. Si vous faites cela avec ChatGPt avec une requête et donner une spécification détaillée, vous serez déjà limité en terme de tokens pour votre requête et les résultats ne pourront pas être très poussés. Si on découpe la demande en plusieurs morceaux, et que les agents travaillent ensemble ou séquentiellement, le résultat sera beaucoup plus précis. |
Avec l’aide du module open source de Crewai pour python et du framework Shellbots, je vais vous montrer comment créer un modèle simple pour bâtir une app avec des agents autonomes capables de travailler seul et d’obtenir le code lié à la spécification demandée. Nous avons aussi un module dans Shellbots (Shellbots_Agents) qui permet de créer des agents autonomes soit de façon séquentielle ou hiérarchique en fonction des besoins.
En résumé, nous allons faire saisir à l’utilisateur sa spécification peu importe le détail, et les agents vont se charger de la développer et travailler en équipe.
Pour que les agents génèrent le code AL en fonction de leurs tâches, nous utiliserons OpenAI pour des questions de facilités et tutoriels. Mais dans notre module « dev virtuel bc pro » bientôt disponible à la vente, nous utilisons un llm local « llama » de Meta avec un modèle spécifique.
Le code de cet App qui regroupe plusieurs agents a été généré avec Shellbots_Agents. Nous pouvons après le modifier dans l’environnement Shellbots OS avec Pycharm version Community.
Première chose, nous allons définir un .env en Python pour déclarer notre clé API OpenAI :

Ensuite, nous déclarons les classes Crewai et demandons à l’utilisateur ses spécifications de développement en texte

Déclaration et objectifs de chaque agent
Ici, pour chaque agent, on va définir son rôle, son objectif, son expérience, etc…
Pour cette petite app, j’ai créé 4 Agents qui vont travailler ensemble : – Un Agent « Développeur fonctionnel BC qui est chargé de créer la logique et le backend avec les tables, codeunit, etc. – Un Agent « Développeur d’interface BC » qui est chargé lui de créer les interfaces écrans (Pages BC, Reports, etc.) – Un Architecte et/ou un analyste QA pour tester le code et valider si le code est conforme. Il fait des propositions d’améliorations. – Et enfin, un Développeur Sénior principal qui est chargé de mettre en place les propositions de l’analyste / Architecte en modifiant le code réalisé par les 2 autres développeurs. |

On va maintenant assigner des tâches à ces agents
Pour chaque tâche, on l’associe à un agent, un agent pourrait avoir plusieurs tâches, ce qui n’est pas notre cas ici.
Voici les tâches assignées aux agents :
Pour chaque tâche, on indique une description de la tâche, qu’es ce qu’on veut en ressortir ou générer, si des fichiers doivent être créés, à quel agent on attribue la tâche, etc…
- Tâche 1 –> « Développeur fonctionnel BC » : Doit créer la structure des tables et la logique et fonctions dans des codeunits et autres. Tous les objets doivent être supérieurs à 50000. On note ici que la tâche 1 est dépendante de la saisie par l’utilisateur de la spécification. On aurait pu faire complètement autre chose mais c’est pour l’exemple ici et la simplification.
- Tâche 2 –> « Développeur d’interface BC » : Doit construire les pages en mode liste et formulaire afin de pouvoir ajouter aussi des enregistrements.
- Tâche 3 –> « Analyste QA/Architecte » : Révision du AL code et conseils sur ce qui a été développé.
- Tâche 4 –> « Développeur Sénior principal » : Modification à effectuer suite aux conseils données à la tâche 3.
On orchestre le tout simplement avec un processus de type séquentiel ici.
c’est la fonction Process ici qui détermine si les agents travaillent d’une manière séquentielle ou hiérarchique. Une version « consensuelle » est prévu bientôt.
On exécute maintenant l’app d’agents créé pour Business Central :
Vous pouvez voir le résultat de l’exécution en vidéo ici
Bien sûr, c’est un exemple simple et avec une petite spécification on n’aura pas des résultats raffinés mais en ajoutant des « Tools » aux agents pour générer des fichiers séparés par exemple et juste le code ou compiler en ligne de commande les codes générés, cela peut être intéressant.
Dans notre module « dev virtuel bc pro », il est possible de mettre des fichiers pdf comme spécification ou envoyer une image scannée de votre spec rédigée à la main 🙂
Sinon voici quelques copies écrans de l’exécution et une partie du code généré pour l’extension :