logo
Développement
Rechercher
Compétences

Compétences

Les compétences sont une capacité propre à LoopAgent : un manuel (SOP) que le modèle « lit » plutôt qu'il n'« appelle ». Elle se compose d'un corps SKILL.md, auquel s'ajoutent des fichiers de référence et des scripts facultatifs. Lorsque c'est nécessaire, le modèle lit le corps et suit les étapes qu'il contient.

Ce qu'est une compétence et comment elle est utilisée

  • Un paquet de compétence = un SKILL.md requis + des fichiers texte et scripts facultatifs. Le paquet entier ne doit pas dépasser 20 Mo, et aucun fichier ne doit dépasser 5 Mo.
  • À chaque tour, le système ne fournit au modèle qu'une « liste des compétences disponibles », avec uniquement les noms et les descriptions, sans le corps. Ce n'est qu'après avoir jugé une compétence pertinente que le modèle lit le corps complet de son SKILL.md.
  • Les fichiers d'un paquet de compétence ne peuvent être lus que via le mécanisme des compétences ; ils ne se trouvent sur aucun système de fichiers local (voir la note sur le bac à sable ci-dessous).
  • Un LoopAgent peut monter au maximum 10 compétences.

Trois sources

Compétence privée de l'Agent Compétence d'organisation Compétence de plateforme
Visibilité Uniquement l'agent auquel elle appartient Réutilisable entre agents au sein de l'organisation Bibliothèque officielle de la plateforme, visible par toutes les organisations
Création « Créer une compétence » dans l'agent, montée automatiquement Créée sous « Outils › Compétences » Maintenue par la plateforme ; les organisations ne peuvent pas en créer
Ouverture dans un agent Éditable Devient en lecture seule (pour la modifier, allez dans « Outils › Compétences ») Lecture seule
Quand une modification du corps passe en production À la publication de l'agent : l'enregistrement ne va que dans la version de débogage, la mise en production se fait à la publication de l'agent Immédiatement et globalement : l'enregistrement prend effet pour tous les agents qui la référencent Non éditable

Le sens de « Retirer » diffère selon la source : cliquer sur « Retirer » sur une compétence d'organisation / de plateforme = délier seulement, la compétence elle-même subsiste ; supprimer une compétence privée de l'Agent = supprimer aussi la compétence elle-même. Pour supprimer complètement le corps d'une compétence d'organisation, il faut le faire sur la page « Outils › Compétences ».

Brouillon, Debug et Production

Le processus de mise en effet du corps de compétence (SKILL.md) passe par trois états, comme pour la Persona. À noter : l'éditeur de compétence n'a qu'un bouton « Enregistrer », pas de bouton « Publier » — l'action de publication se fait ailleurs.

État Ce que c'est Qui peut le lire
Brouillon (Draft) Le contenu enregistré automatiquement pendant que vous tapez dans l'éditeur L'éditeur lui-même uniquement ; aucune conversation (y compris le chat de débogage) ne peut le lire
Enregistrement / Debug Le corps officiel écrit après un clic sur « Enregistrer » Le chat de débogage le lit immédiatement (l'enregistrement prend effet sur la version de débogage)
Mise en ligne / Production Le corps que les clients lisent réellement Canaux externes ; le moment de la mise à jour dépend de la source de la compétence (voir ci-dessous)

La mise en ligne se fait de deux façons selon la source de la compétence :

  • Compétence privée de l'Agent : le corps est mis en ligne avec la publication du LoopAgent. Cliquer sur Enregistrer dans l'éditeur ne prend effet que sur la version de débogage ; vous devez ensuite publier ce LoopAgent pour que la dernière version enregistrée passe en production (même logique que la persona).
  • Compétence d'organisation / de plateforme : le corps est immédiatement global. Après un clic sur Enregistrer, il prend effet immédiatement pour tous les agents qui la référencent (version de débogage + en ligne), sans avoir à publier l'agent.

Le piège le plus fréquent : un brouillon en cours d'édition ne peut même pas être lu par le chat de débogage. Pour vérifier une modification dans le chat de débogage, vous devez d'abord cliquer sur « Enregistrer », sinon ce qui est lu reste le corps enregistré la dernière fois.

Un autre piège : pour une compétence privée de l'Agent, cliquer uniquement sur Enregistrer ne va aussi qu'à la version de débogage — les clients voient toujours la version publiée — pensez donc à revenir publier le LoopAgent pour la mise en ligne.

Deux précisions :

  • Lisible dès la création : la création d'une compétence écrit automatiquement un corps minimal (création par formulaire = nom + description assemblés ; téléversement d'un paquet = le SKILL.md du paquet lu), de sorte qu'elle peut être lue par le modèle avant même la première publication.
  • Conflits d'édition multiple : si plusieurs personnes ou onglets modifient la même compétence en même temps, l'enregistrement peut signaler que « le contenu de la compétence a été mis à jour par quelqu'un d'autre » — il suffit de rafraîchir, recharger, puis enregistrer de nouveau.

Scripts Python et bac à sable d'exécution

Un paquet de compétence peut embarquer des scripts Python (les placer dans un répertoire scripts/ n'est qu'une convention, pas une obligation) : les étapes nécessitant un calcul précis, une conversion de format ou l'appel de bibliothèques spécifiques peuvent être écrites sous forme de code, que le modèle exécute à la demande.

Mécanisme d'exécution :

  • Les scripts s'exécutent dans un bac à sable isolé (un environnement Linux distinct + Python 3.11), ni sur votre serveur, ni sur la machine locale du modèle — naturellement isolés et sans interférence mutuelle.
  • Lorsque c'est nécessaire, le modèle envoie un script du paquet dans le bac à sable pour l'exécuter et en récupère le résultat ; les fichiers du paquet de compétence ne peuvent également être lus que via le mécanisme des compétences, et ne peuvent pas être parcourus avec cat / find via bash (le paquet ne se trouve pas sur le système de fichiers local).

Le « Lancer le test » de l'éditeur = une exécution réelle dans le bac à sable :

  • Cliquer sur « Lancer le test » sur un script .py dans l'éditeur de compétence est une exécution réelle dans le bac à sable côté serveur, et non une simulation front-end ; il utilise le même bac à sable que le modèle à l'exécution — si le test passe dans l'éditeur, il passera aussi à l'exécution du modèle.
  • Une erreur du script lui-même ≠ un échec de l'API : lorsqu'un script lève une erreur en interne, il renvoie normalement avec sa sortie et sa pile d'erreurs (pour faciliter le diagnostic), ce qui ne signifie pas que l'API d'exécution est en panne ; seul un problème au niveau du bac à sable (par exemple si le bac à sable n'est pas déployé dans cet environnement) constitue un échec de l'API.
  • Les variables de canal / de session sont indisponibles pendant le test : il n'y a pas de contexte de conversation réel pendant l'édition, de sorte que les attributs de canal (comme ceux liés à WhatsApp / Telegram) et les attributs de session seront vides ; ils n'ont de valeur qu'à l'exécution d'une vraie conversation. Il est donc normal que ces variables soient vides pendant le test.

L'outil bash : chaque LoopAgent est fourni avec un outil bash, servant à piloter les appels d'API décrits dans la documentation de la compétence (assembler les commandes selon les instructions du SKILL.md) ; mais les scripts Python d'un paquet de compétence s'exécutent dans le bac à sable, et non via bash.

Que faire si une compétence n'a pas d'effet

Pour qu'une compétence soit lue par le modèle, elle doit franchir plusieurs niveaux dans l'ordre — vérifiez-les en séquence :

  1. Si l'interrupteur général du module Compétences est activé ;
  2. Si l'entrée de montage de cette compétence est activée ;
  3. Si la compétence elle-même est activée ;
  4. Si le corps de la compétence est non vide (un corps vide est ignoré et le modèle ne peut pas le lire) ;
  5. S'il porte le même nom qu'une autre compétence (les noms de compétence sont sensibles à la casse ; en cas d'homonymie, seule la première montée est conservée).

Après avoir modifié l'interrupteur de montage d'une compétence, elle apparaît / disparaît de la liste des compétences disponibles dès le message suivant, sans qu'il soit nécessaire de réenregistrer l'agent.