Aller au contenu

Lancer des agents relecteurs

Ce guide vous montre comment lancer des agents relecteurs pour relire des pull requests.

  1. Ouvrez la PR et rendez-vous dans son onglet Aperçu
  2. Ouvrez le menu de débordement ⋯ et choisissez Ask AI

Cela démarre le pipeline pr_review fourni d’origine, qui ouvre l’espace de revue de la PR et déploie les relecteurs selon le niveau de revue de l’espace de travail — trois par défaut (les agents qa, architect et engineer fournis d’origine) —, puis charge l’agent chef de file de consolider. Vous ne choisissez pas les rôles par ce chemin. Pour maîtriser 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 revue 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 de glob de fichiers facultatif 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, défini 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 remarques 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 remarques

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 que vous ajoutez après l’étape fournie d’origine 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 revue 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 via 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 détecte 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, donc 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 tirer son déclencheur dans le vide — le moteur rejette un modèle désactivé et revient sans démarrer d’exécution.

dispatch_reviewers évalue chaque agent de l’espace de travail par rapport à chaque libellé de rôle demandé, sans tenir compte de 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 au lieu 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 revue, 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é rejoint cet espace et y publie ses remarques review_node, ce qui rend les remarques comparables et permet à l’agent chef de file d’atteindre un consensus entre elles.

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

  • L’espace de revue, où les remarques arrivent en direct
  • L’onglet Revue de la PR, qui affiche la barre d’état de la revue 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. Aucun raccourci clavier ne permet d’y accéder — ouvrez-la depuis le pied de la barre latérale.