Sari la conținut

Trimite agenți revizori

Acest ghid îți arată cum să trimiți agenți revizori care să revizuiască pull request-uri.

  1. Deschide PR-ul și mergi la tab-ul Prezentare
  2. Deschide meniul derulant ⋯ și alege Întreabă AI

Aceasta pornește pipeline-ul predefinit pr_review, care deschide spațiul de revizuire al PR-ului și trimite recenzenții pentru nivelul de revizuire al spațiului de lucru — trei implicit (agenții predefiniți qa, architect și engineer) — apoi îl pune pe agentul lider să consolideze. Pe această cale nu alegi rolurile. Pentru control asupra rolurilor care rulează și asupra fișierelor la care se uită fiecare, folosește instrumentul MCP sau un pas de pipeline de mai jos.

Apelează-l din interiorul unui spațiu de revizuire existent:

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

space_id, workspace_id și reviewers sunt toate obligatorii. Fiecare specificație de recenzent ia un role plus un scope opțional de tip glob de fișiere și un prompt_override care înlocuiește instrucțiunea implicită. Un concurrency opțional (1–8) limitează trimiterile paralele; când este omis, se aplică setarea review_concurrency a spațiului de lucru (implicit 3, setată în Setări → Spațiu de lucru → General).

Instrumentul se întoarce imediat cu listele dispatched și unmatched. Fiecare recenzent trimis este adăugat în spațiu ca participant, anunțat printr-un mesaj de sistem și trimis cu instrucțiunea lui. Constatările ajung ca mesaje review_node în acel spațiu.

Deschide Setări → Spațiu de lucru → Șabloane pipeline, deschide un șablon, apoi:

  1. Adaugă un nod Reviewer (prompt) din paletă
  2. Alege agentul de trimis și scrie promptul de recenzent, folosind substituenți {{key}} pentru ieșirile din amonte (de exemplu {{repo_local_path}}, {{pr_number}})
  3. Setează cheia de ieșire (implicit reviewer_findings) ca pașii din aval să poată citi constatările

Pasul trimite agentul și suspendă execuția până când rularea respectivă se încheie. Motorul colectează apoi payload-ul submit_output al rulării în starea pipeline-ului, sub cheia de ieșire a nodului. (Descrierea din paletă spune în continuare că pasul așteaptă un apel complete_task — acel instrument nu există; ignoră textul.)

Ramifică în paralel conectând mai multe noduri de recenzent la același pas din amonte, apoi consolidează-le ieșirile cu un nod Consolidate (join).

Editorul recablează terminalul ascuns către fiecare destinație accesibilă, așa că un nod pe care îl adaugi după pasul predefinit rulează totuși. Nodurile de ramificare conectate la același pas din amonte rulează în paralel.

Pentru ca un pipeline de revizuire să pornească singur:

  1. Deschide șablonul la Setări → Spațiu de lucru → Șabloane pipeline
  2. Trage PR publicat sau PR extern deschis din secțiunea Declanșatori a bibliotecii de noduri pe canvas (sau alege-l din plăcuța fantomă Adaugă un declanșator)
  3. Selectează nodul nou și activează Activat în inspectorul lui, apoi activează șablonul

Două evenimente contează aici și nu sunt interschimbabile:

Eveniment Se declanșează când Chei de payload
PullRequestPublished Un PR este deschis prin Control Center — suprafața de compunere sau un agent care apelează pr_lifecycle.publish pr_id, workspace_id, repo_owner, repo_name
ExternalPrDetected Serviciul de interogare a PR-urilor găsește un PR deschis direct pe GitHub repo_owner, repo_name, pr_number, pr_title, author

Un PR deschis pe github.com nu declanșează niciodată PullRequestPublished, așa că un șablon conectat doar la acel eveniment nu îl va vedea. Reține de asemenea că PullRequestPublished nu poartă niciun pr_number — un pas al cărui script sau prompt face referire la {{pr_number}} trebuie alimentat de ExternalPrDetected sau de o rulare manuală care îl furnizează.

Punct de verificare: după activare, deschide Pipeline-uri și confirmă că apare o rulare pentru următorul PR potrivit. Un șablon lăsat dezactivat face ca declanșatorul lui să tragă în gol — motorul respinge un șablon dezactivat și se întoarce fără să pornească vreo rulare.

dispatch_reviewers punctează fiecare agent din spațiul de lucru față de fiecare etichetă de rol cerută, fără să țină cont de majuscule:

Potrivire Punctaj
Un skill care conține eticheta de rol +3
Un titlu care conține eticheta de rol +2
Un nume de agent care conține eticheta de rol +1

Punctajele se acumulează și câștigă totalul cel mai mare (la egalitate, primul candidat găsit). Dacă niciun candidat nu punctează peste zero, specificația se întoarce în lista unmatched a instrumentului în loc să fie trimisă — așa că un rol pe care nu îl potrivește nimeni este raportat, niciodată omis în tăcere.

Un PR are exact un spațiu de revizuire, nu unul per recenzent. Este creat idempotent de pr.ensureSpace, legat de PR printr-o ReviewSpaceAssociation și provisionat față de ref-ul de vârf al PR-ului. Fiecare recenzent trimis se alătură acelui spațiu și își publică acolo constatările review_node, ceea ce face constatările comparabile și îi permite agentului lider să ajungă la consens asupra lor.

Fiecare recenzent trimis primește propriul AgentRunLog. Urmărește progresul în:

  • Spațiul de revizuire, unde constatările curg în timp real
  • Tab-ul Revizuire al PR-ului, care afișează bara de stare a revizuirii și verdictul
  • Observabilitate → Live (/workspaces/:id/observability), lista de agenți cu starea per rulare, timpul scurs în direct, un sertar de transcriere și un control de oprire forțată. Nu are scurtătură de tastatură — ajungi la ea din subsolul barei laterale.