Aller au contenu

Mentionner des agents avec @

Ce guide vous montre comment mentionner des agents et des coéquipiers avec @ dans un espace.

Saisissez @ dans le compositeur et choisissez un agent dans l’autocomplétion, ou tapez le nom vous-même :

@alice fix the login bug

L’agent mentionné est ajouté à l’espace comme participant s’il ne l’est pas déjà, puis lancé avec le contexte et le mode de l’espace. Les participants non mentionnés voient le message, mais ne sont pas lancés.

Si vous envoyez un message sans mention d’agent, Control Center choisit lui-même qui répond : l’agent qui a parlé en dernier dans la conversation, sinon le propriétaire de la conversation lorsqu’elle en a un, sinon le premier agent de premier niveau parmi les participants de l’espace. Dans un espace à un seul agent, c’est toujours l’unique agent.

Un jeton de mention est mis en correspondance sans distinction de casse, par nom exact ou préfixe. Ainsi, @arch atteint un agent nommé architect et @Alice atteint alice.

Deux conséquences à anticiper :

  • Un jeton court n’est pas une erreur. Si deux agents partagent un préfixe, le premier trouvé l’emporte, et lequel c’est dépend de l’ordre — pas d’une règle de départage. Utilisez le nom complet dès que des noms se chevauchent.
  • Seuls les lettres, les chiffres et les traits de soulignement font partie d’un jeton. L’analyseur applique @(\w+), donc @code-reviewer est lu comme le jeton code et @my agent comme my. Un agent dont le nom contient un trait d’union, un point ou une espace ne peut pas être mentionné de manière fiable — y compris via l’autocomplétion, qui insère le nom comme texte brut. Nommez les agents en un seul mot, ou avec des traits de soulignement.

Les mentions sont retirées du texte avant qu’il n’atteigne l’agent. Un message qui n’est que des mentions (@alice) ne lance donc rien : donnez-lui quelque chose à faire.

@alice refactor the auth module. @bob write tests for it.

Les deux agents sont lancés en parallèle dans la même conversation et reçoivent tous les deux le message complet.

Ils partagent aussi les arbres de travail de cet espace. Les arbres de travail des dépôts sont provisionnés par espace, et non par agent ; chaque agent dispose de son propre répertoire de travail superposé pour son AGENTS.md, ses skills et sa configuration, les dépôts partagés étant liés en lecture-écriture. Deux agents mentionnés ensemble peuvent donc voir les modifications de l’autre — et entrer en collision avec elles.

Tout @token qui ne correspond à aucun agent est confronté aux membres humains de l’espace de travail, par identifiant, avec la même règle : nom exact ou préfixe, sans distinction de casse.

Une mention de personne résolue ne lance rien. Elle ne voyage dans les métadonnées du message que pour que le routeur de notifications puisse alerter cette personne.

Les noms d’agents sont toujours essayés en premier, et un jeton revendiqué par un agent n’est jamais proposé à la liste des membres : un @word ne peut jamais se résoudre qu’en une seule identité.

Un agent lancé reçoit dans son prompt un bloc « Summons » qui nomme celui qui l’a convoqué et énumère l’effectif de l’espace — les autres agents (signalés comme de premier niveau ou subordonnés) et les membres humains — afin qu’il sache à qui il peut transmettre du travail. Le bloc lui indique aussi que mentionner un autre agent dans sa réponse réveille cet agent, et que se mentionner lui-même est ignoré.

Un agent peut transmettre du travail dans sa propre réponse. Quand un tour se termine proprement, les mentions de son texte sont résolues, et ces agents sont ajoutés à l’espace et lancés dans la même conversation, avec pour prompt le tour qui les mentionne. Un tour qui a échoué ou qui a été interrompu ne réveille personne : il s’est arrêté en pleine réflexion.

Les règles sont délibérément plus strictes que celles du compositeur, car personne ne surveille pour corriger une supposition erronée :

  • Noms exacts uniquement. Aucune correspondance par préfixe. @arch atteint architect quand un humain le saisit ; venant d’un agent, il n’atteint personne. Un nom qui correspond à deux agents n’atteint personne non plus.
  • Le code n’est pas de la prose. Les mentions à l’intérieur de blocs délimités ou de `backticks` sont ignorées, donc citer une annotation @Override ou un pip install foo@1.2 est sans risque. Un bloc délimité non fermé neutralise tout ce qui suit.
  • Un @ collé au jeton précédent n’est pas une mention — sam@host.com, pkg/@scope et node@20 ne se résolvent vers personne.
  • Les traits d’union sont conservés, donc @code-reviewer se résout comme lui-même et non comme le jeton code.
  • Trois agents au maximum par tour. Un agent qui énumère six coéquipiers dans un résumé les énumère, il ne les convoque pas.

Une chaîne de réveil est bornée de la même manière que la délégation : profondeur 3, et un agent déjà présent dans la chaîne ne peut pas être réveillé à nouveau par elle (pas de A → B → A). Une paire ordonnée est aussi soumise à une limite de fréquence d’une chaîne à l’autre. Un réveil refusé publie un message système dans la conversation, indiquant quelle mention n’a pas été transmise et pourquoi ; un nom non résolu ne le fait pas, sinon chaque @ d’une phrase se raconterait lui-même.

Pour une transmission qui ne doit pas dépendre de la prose — une requête avec réponse, ou atteindre un agent hors de l’espace —, utilisez plutôt les outils send_to_agent, ask_agent et delegate_task.