← Réalisations

Plateforme SaaS · salarié

Adèle

L'agent d'ALLinOne, une plateforme de recrutement par IA. Elle répond aux questions, passe de vrais appels téléphoniques, cherche dans les données et écrit dans la plateforme. Elle dispose pour cela d'une quarantaine d'outils, chacun encadré par des règles qui limitent ce qu'elle peut modifier.

Elle s'appelle Adèle parce que c'est moi qui l'ai nommée. Adel, Adèle. Personne n'a relevé, et le nom est resté. Elle est depuis passée sur M6, Brut et Le Parisien.

01

Le problème

Un agent qui se contente de répondre à des questions apporte peu de choses. L'intérêt commence quand il agit sur les données, et c'est aussi à ce moment-là que le risque apparaît.

Un recruteur répète les mêmes gestes toute la journée : retrouver une annonce, filtrer des candidatures, appeler quelqu'un, replanifier un entretien, relancer. Chacun de ces gestes prend une ou deux minutes. Mis bout à bout, ils occupent l'essentiel du temps de travail.

Automatiser la lecture est simple. Automatiser l'écriture, c'est-à-dire créer, modifier et envoyer, demande beaucoup plus de précautions. Un modèle qui se trompe en lecture donne une réponse fausse et on la corrige. Un modèle qui se trompe en écriture abîme les données d'un client.

Il fallait aussi que tout cela fonctionne au téléphone, avec de vrais candidats et en temps réel.

02

Ce que j'ai construit

Une boucle d'agent outillée

Adèle s'appuie sur un orchestrateur qui enchaîne les appels d'outils sur plusieurs tours, en flux continu, jusqu'à produire une réponse. Chaque outil est déclaré avec son schéma, sa nature (lecture ou écriture) et sa portée. Une quarantaine d'outils couvrent les annonces, les candidatures, les appels, les statistiques et la planification.

Le cycle d'écriture en deux temps

C'est la partie la plus importante du système. Un outil d'écriture ne s'exécute jamais directement. Il renvoie d'abord ce qu'il ferait : l'ancienne valeur, la nouvelle, l'enregistrement concerné. L'utilisateur voit l'effet exact et confirme. L'exécution part ensuite avec un jeton d'action signé qui encode l'opération validée.

Le modèle ne peut donc exécuter que ce qui a été affiché à l'écran. C'est le jeton, vérifié au moment de l'exécution, qui apporte cette garantie.

Les appels vocaux temps réel

Adèle passe et reçoit de vrais appels. Le flux audio de la téléphonie est ponté vers un modèle vocal temps réel, dans les deux sens, pendant toute la durée de l'appel. Elle qualifie le candidat, propose des créneaux et confirme un rendez-vous. Elle gère aussi le cas où son interlocuteur lui coupe la parole.

Le cloisonnement

La plateforme héberge plusieurs clients sur la même infrastructure. Chaque outil filtre par organisation au niveau de la requête, et non à l'affichage. Les données personnelles sont masquées avant l'envoi au modèle, puis restaurées au retour : le fournisseur du LLM ne reçoit jamais un numéro de téléphone ou un nom de candidat en clair.

03

Ce qui était difficile

La mémoire entre les tours d'outils

« Les appels de cette semaine », puis « rappelle le premier ». Si le contexte ne conserve que les identifiants des résultats précédents et pas les données associées, l'agent ne sait plus qui est « le premier ». Il repose la question, ou il désigne la mauvaise personne.

La correction passe par les outils. J'ai standardisé le format de retour de tous les outils : un même contenant, une même clé d'identité, un même libellé. Cette normalisation corrige d'un seul coup la mémoire entre les tours, le masquage des données personnelles et la qualité des résumés.

L'interruption au téléphone

Quand un candidat coupe la parole, arrêter la lecture audio ne suffit pas. Le modèle croit avoir prononcé toute sa phrase et poursuit comme s'il avait été écouté. Il faut tronquer son historique et lui indiquer la lecture s'est réellement arrêtée. Le calcul se fait sur l'audio effectivement entendu, pas sur l'audio envoyé, parce que la téléphonie met le son en tampon.

Sans cette correction, le décalage s'accumule à chaque interruption et l'agent finit par répondre à la question précédente.

Un prompt système qui grossit

Un prompt système qui enfle indique presque toujours des outils mal conçus : on écrit en langage naturel ce qui aurait dû être une contrainte de schéma. Corriger les outils permet de raccourcir le prompt, ce qui améliore à la fois la fiabilité, la latence et le coût.

Ce qui n'apparaît qu'en production

Les fournisseurs de téléphonie rejouent leurs webhooks. C'est documenté et c'est normal. Deux appelants peuvent aussi confirmer le même créneau à deux cents millisecondes d'intervalle. Ces situations ne se présentent pas en démonstration, elles se présentent une fois le service ouvert aux utilisateurs. Le traitement est classique : rendre chaque opération idempotente, et poser un verrou là où deux écritures peuvent se croiser.

Ce que j'en retiens

La qualité d'un agent se joue dans la conception de ses outils et dans les garde-fous qui encadrent ses écritures. Un client accepte de laisser une IA modifier ses données quand il voit l'aperçu avant l'exécution, qu'il confirme lui-même, et qu'il sait comment revenir en arrière.

04

La stack

Un agent pour votre métier ?

Décrivez-moi la tâche que vos équipes répètent vingt fois par jour, et je vous dis quelle part un agent peut prendre en charge.

contact@adelzemiti.com