Aller au contenu

Lancer des agents relecteurs

Ce guide vous montre comment lancer des agents relecteurs pour relire des demandes de tirage.

  1. Ouvrez la PR et allez à son onglet Aperçu
  2. Ouvrez le menu de débordement ⋯ et choisissez Ask AI

Cela démarre le pipeline préconfiguré pr_review, qui ouvre l’espace de révision de la PR et déploie les relecteurs selon le niveau de revue de l’espace de travail — trois par défaut (les agents préconfigurés qa, architect et engineer) —, puis demande à l’agent principal de consolider. Vous ne choisissez pas les rôles par ce chemin. Pour décider quels rôles s’exécutent et quels fichiers chacun examine, utilisez l’outil MCP ou une étape de pipeline ci-dessous.

Appelez-le depuis un espace de révision existant :

dispatch_reviewers(
space_id: "...",
workspace_id: "...",
reviewers: [
{role: "reviewer"},
{role: "security", scope: "src/auth/**"}
]
)

space_id, workspace_id et reviewers sont tous obligatoires. Chaque spécification de relecteur prend un role, plus un scope facultatif (glob de fichiers) et un prompt_override qui remplace la consigne par défaut. Un concurrency facultatif (1–8) plafonne les lancements parallèles ; s’il est omis, le réglage review_concurrency de l’espace de travail s’applique (3 par défaut, réglé dans Paramètres → Espace de travail → Général).

L’outil renvoie immédiatement des listes dispatched et unmatched. Chaque relecteur lancé est ajouté à l’espace comme participant, annoncé par un message système et lancé avec sa consigne. Les constats arrivent sous forme de messages review_node dans cet espace.

Ouvrez Paramètres → Espace de travail → Modèles de pipeline, ouvrez un modèle, puis :

  1. Ajoutez un nœud Reviewer (prompt) depuis la palette
  2. Choisissez l’agent à lancer et rédigez la consigne du relecteur, en utilisant des espaces réservés {{key}} pour les sorties en amont (par exemple {{repo_local_path}}, {{pr_number}})
  3. Définissez la clé de sortie (reviewer_findings par défaut) pour que les étapes en aval puissent lire les constats

L’étape lance l’agent et suspend l’exécution jusqu’à ce que cette exécution se termine. Le moteur récolte ensuite la charge utile submit_output de l’exécution dans l’état du pipeline sous la clé de sortie du nœud. (La description de la palette dit encore que l’étape attend un appel à complete_task — cet outil n’existe pas ; ignorez cette chaîne.)

Déployez en éventail en reliant plusieurs nœuds de relecteur à la même étape en amont, puis consolidez leurs sorties avec un nœud Consolidate (join).

L’éditeur recâble le terminal masqué vers chaque puits accessible, de sorte qu’un nœud ajouté après l’étape préconfigurée s’exécute quand même. Les nœuds déployés en éventail et reliés à la même étape en amont s’exécutent en parallèle.

Lancement automatique à l’ouverture d’une nouvelle PR

Section intitulée “Lancement automatique à l’ouverture d’une nouvelle PR”

Pour qu’un pipeline de révision se déclenche tout seul :

  1. Ouvrez le modèle dans Paramètres → Espace de travail → Modèles de pipeline
  2. Glissez PR publiée ou PR externe ouverte depuis la section Déclencheurs de la bibliothèque de nœuds vers le canevas (ou choisissez-le depuis la tuile fantôme Ajouter un déclencheur)
  3. Sélectionnez le nouveau nœud et activez Activé dans son inspecteur, puis activez le modèle

Deux événements comptent ici, et ils ne sont pas interchangeables :

Événement Se déclenche quand Clés de charge utile
PullRequestPublished Une PR est ouverte par l’entremise de Control Center — la surface de composition, ou un agent qui appelle pr_lifecycle.publish pr_id, workspace_id, repo_owner, repo_name
ExternalPrDetected Le service d’interrogation des PR trouve une PR ouverte directement sur GitHub repo_owner, repo_name, pr_number, pr_title, author

Une PR ouverte sur github.com ne déclenche jamais PullRequestPublished, de sorte qu’un modèle relié uniquement à cet événement ne la verra pas. Notez aussi que PullRequestPublished ne porte aucun pr_number — une étape dont le script ou la consigne référence {{pr_number}} doit être alimentée par ExternalPrDetected, ou par une exécution manuelle qui le fournit.

Point de contrôle : après l’activation, ouvrez Pipelines et confirmez qu’une exécution apparaît pour la prochaine PR correspondante. Un modèle laissé désactivé fait en sorte que son déclencheur se déclenche dans le vide — le moteur rejette un modèle désactivé et revient sans démarrer d’exécution.

dispatch_reviewers note chaque agent de l’espace de travail par rapport à chaque libellé de rôle demandé, sans égard à la casse :

Correspondance Pointage
Un skill contenant le libellé de rôle +3
Un titre contenant le libellé de rôle +2
Un nom d’agent contenant le libellé de rôle +1

Les pointages s’accumulent et le total le plus élevé l’emporte (en cas d’égalité, le premier candidat trouvé). Si aucun candidat n’obtient un pointage supérieur à zéro, la spécification revient dans la liste unmatched de l’outil plutôt que d’être lancée — ainsi, un rôle que personne ne correspond est signalé, jamais ignoré en silence.

Une PR a exactement un espace de révision, et non un par relecteur. Il est créé de façon idempotente par pr.ensureSpace, relié à la PR par une ReviewSpaceAssociation et provisionné par rapport à la référence de tête de la PR. Chaque relecteur lancé joint cet espace et y publie ses constats review_node, ce qui rend les constats comparables et permet à l’agent principal d’atteindre un consensus entre eux.

Chaque relecteur lancé obtient son propre AgentRunLog. Suivez la progression dans :

  • L’espace de révision, où les constats arrivent en direct
  • L’onglet Revue de la PR, qui affiche la barre d’état de la révision et le verdict
  • Observabilité → En direct (/workspaces/:id/observability), la liste des agents avec l’état de chaque exécution, le temps écoulé en direct, un tiroir de transcription et une commande d’arrêt. Il n’existe aucun raccourci clavier pour y accéder — rejoignez-le depuis le pied de la barre latérale.