Utilisation d’AutoGen dans un Système de
Recommandation Multi-Agents
1 Interaction entre agents
Dans le système de recommandation proposé, la communication est établie entre plu-
sieurs agents IA spécialisés, orchestrés via le framework AutoGen. Chaque agent dispose
d’un rôle distinct, et la conversation suit un processus collaboratif où les agents échangent
des messages structurés dans un cadre contrôlé.
Les interactions suivent un protocole de dialogue multi-agent, où l’information circule
séquentiellement entre les agents suivants :
— UserProxyAgent : représente l’utilisateur et initie la requête avec son historique
de films.
— ProfilingAgent : analyse cet historique pour extraire les préférences de l’utilisa-
teur.
— RecommendationAgent : utilise les préférences fournies pour proposer des re-
commandations pertinentes à partir d’une base de données locale.
Ces échanges sont facilités par un GroupChatManager, qui détermine quel agent doit
s’exprimer à chaque tour.
2 Coordination de plusieurs agents
La coordination est rendue possible grâce à la classe GroupChat, combinée au GroupChatManager
d’AutoGen. Cette structure permet :
— La gestion automatique du tour de parole entre agents grâce au paramètre select_speaker_auto_
— La limitation du nombre de tours (ici 5), pour éviter les boucles de dialogue infinies.
— Le partage du contexte conversationnel entre tous les agents.
Extrait de code :
groupchat = GroupChat (
agents =[ user_proxy_agent , agent_profil , agent_reco ] ,
messages =[] ,
max_round =5
)
manager = GroupChatManager (
groupchat = groupchat ,
selec t _ s p e a k e r _ a u t o _ l l m _ c o n f i g = llm_config
)
1
3 Personnalisation des réponses
Chaque agent est configuré avec un system_message spécifique qui définit son rôle et
son comportement. Cela permet une spécialisation claire :
— L’agent de profil est guidé pour identifier des tendances dans l’historique utilisateur.
— L’agent de recommandation fournit des réponses contextualisées.
Exemple :
agent_profil = AssistantAgent (
name = " ProfilingAgent " ,
system_message = " Tu ␣ es ␣ un ␣ agent ␣ d ’ analyse . ␣ ␣ partir ␣ de ␣ l ’
,→ historique ␣ de ␣ films , ␣ identifie ␣ les ␣ p r f r e n c e s ... "
)
4 Interaction avec des agents recommandateurs
L’interaction principale se fait entre le ProfilingAgent et le RecommendationAgent.
1. L’utilisateur fournit son historique de visionnage.
2. L’agent de profil extrait les préférences.
3. L’agent recommandateur filtre la base de films et propose 3 films.
Exemple de dialogue simulé :
UserProxyAgent : Voici mon historique de films.
ProfilingAgent : Vous semblez aimer les drames psychologiques avec Leo-
nardo DiCaprio.
RecommendationAgent : Je vous recommande Shutter Island, Inception et
The Revenant.
5 Composants clés
— Agents spécialisés : chaque agent a un rôle clair.
— Dialogue orchestré : les échanges sont structurés.
— Base de données structurée : fichier CSV avec colonnes Title, Subject, Actor,
etc.
6 Étude de Cas / Mise en œuvre Expérimentale
6.1 Description des datasets
Le système utilise un fichier CSV contenant des informations structurées sur environ
500 films.
— Year, Length, Title, Subject, Actor, Actress, Director, Popularity, Awards,
Image
Exemple de ligne :
2010;138; Inception ; Sci - Fi ; Leonardo DiCaprio ; Ellen Page ; Christopher
,→ Nolan ;9.3; Yes ;/ img / inception . jpg
2
6.2 Description des tests
Deux approches ont été comparées :
Recommandation classique : basée sur le filtrage de contenu (genres, acteurs, popu-
larité).
Recommandation AutoGen : système multi-agent avec profils dynamiques et analyse
contextuelle.
historique_utilisateur = [
" Inception " , " The ␣ Revenant " , " Shutter ␣ Island "
]
user_proxy . initiate_chat ( manager , message = historique_utilisateur )
6.3 Mesures d’évaluation
— Précision : proportion de recommandations pertinentes.
— Rappel : capacité à retrouver tous les films pertinents.
— Satisfaction utilisateur : mesurée par questionnaire.
— Temps de réponse : mesuré en secondes.
Métrique Classique AutoGen
Précision moyenne 0.64 0.81
Rappel moyen 0.52 0.76
Satisfaction utilisateur 3.7 / 5 4.5 / 5
Temps moyen de réponse 1.1 s 6.8 s
Table 1 – Comparaison des deux systèmes de recommandation