Starta granskningsagenter
Den här guiden visar hur du dispatchar granskningsagenter för att granska pull requests.
Från PR-vyn
Avsnitt med rubriken “Från PR-vyn”- Öppna PR:en och gå till fliken Översikt
- Öppna överflödesmenyn ⋯ och välj Fråga AI
Detta startar den medföljande pr_review-pipelinen, som öppnar PR:ens
granskningsyta och dispatchar granskarna för arbetsytans granskningsnivå – tre
som standard (de medföljande agenterna qa, architect och engineer) –
och låter sedan huvudagenten sammanställa. Du väljer inte rollerna på den här
vägen. Vill du styra vilka roller som körs och vilka filer var och en tittar på
använder du MCP-verktyget eller ett pipelinesteg nedan.
Via MCP-verktyget dispatch_reviewers
Avsnitt med rubriken “Via MCP-verktyget dispatch_reviewers”Anropa det inifrån en befintlig granskningsyta:
dispatch_reviewers( space_id: "...", workspace_id: "...", reviewers: [ {role: "reviewer"}, {role: "security", scope: "src/auth/**"} ])space_id, workspace_id och reviewers är alla obligatoriska. Varje
granskningsspec tar en role plus en valfri fil-glob-scope och en
prompt_override som ersätter standardinstruktionen. En valfri concurrency
(1–8) begränsar parallella dispatcher; utelämnas den gäller arbetsytans
inställning review_concurrency (standard 3, ställs in under
Inställningar → Arbetsyta → Allmänt).
Verktyget svarar omedelbart med listorna dispatched och unmatched. Varje
dispatchad granskare läggs till i ytan som deltagare, aviseras med ett
systemmeddelande och dispatchas med sin instruktion. Fynden hamnar som
review_node-meddelanden i ytan.
Från ett pipelinesteg
Avsnitt med rubriken “Från ett pipelinesteg”Öppna Inställningar → Arbetsyta → Pipelinemallar, öppna en mall och gör sedan så här:
- Lägg till en Reviewer (prompt)-nod från paletten
- Välj agenten som ska dispatchas och skriv granskningsprompten, med
{{key}}som platshållare för utdata från uppströmssteg (till exempel{{repo_local_path}},{{pr_number}}) - Ange utdatanyckeln (standard
reviewer_findings) så att nedströmssteg kan läsa fynden
Steget dispatchar agenten och pausar till dess att körningen är klar. Motorn
skördar sedan körningens submit_output-nyttolast in i pipelinens tillstånd
under nodens utdatanyckel. (Palettbeskrivningen säger fortfarande att steget
väntar på ett complete_task-anrop – det verktyget finns inte; ignorera
texten.)
Grena ut genom att koppla flera granskningsnoder till samma uppströmssteg och sammanställ sedan deras utdata med en Consolidate (join)-nod.
Redigeraren kopplar om den dolda terminalen till varje nåbar sänka, så en nod du lägger till efter den medföljande Step-noden körs ändå. Utgrenade noder som är kopplade till samma uppströmssteg körs parallellt.
Automatisk dispatch vid en ny PR
Avsnitt med rubriken “Automatisk dispatch vid en ny PR”För att en granskningspipeline ska starta av sig själv:
- Öppna mallen under Inställningar → Arbetsyta → Pipelinemallar
- Dra PR publicerad eller Extern PR öppnad från avsnittet Triggrar i nodbiblioteket till duken (eller välj den från spökplattan Lägg till en trigger)
- Markera den nya noden och slå på Aktiverad i dess inspektör och aktivera sedan mallen
Två händelser spelar roll här och de är inte utbytbara:
| Händelse | Utlöses när | Nyttolastnycklar |
|---|---|---|
PullRequestPublished |
En PR öppnas via Control Center – komponeringsytan, eller en agent som anropar pr_lifecycle.publish |
pr_id, workspace_id, repo_owner, repo_name |
ExternalPrDetected |
PR-avsökningstjänsten hittar en PR som öppnats direkt på GitHub | repo_owner, repo_name, pr_number, pr_title, author |
En PR som öppnas på github.com utlöser aldrig PullRequestPublished, så en mall
som bara är kopplad till den händelsen ser den inte. Notera också att
PullRequestPublished inte innehåller någon pr_number – ett steg vars skript
eller prompt refererar till {{pr_number}} måste matas av ExternalPrDetected,
eller av en manuell körning som anger den.
Kontrollpunkt: öppna Pipelines efter att du aktiverat och bekräfta att en körning dyker upp för nästa matchande PR. En mall som lämnas inaktiverad låter sin trigger utlösas utan resultat – motorn avvisar en inaktiverad mall och återvänder utan att starta någon körning.
Hur en roll matchas mot en agent
Avsnitt med rubriken “Hur en roll matchas mot en agent”dispatch_reviewers poängsätter varje agent i arbetsytan mot varje efterfrågad
rolletikett, utan hänsyn till skiftläge:
| Matchning | Poäng |
|---|---|
| En skill som innehåller rolletiketten | +3 |
| En titel som innehåller rolletiketten | +2 |
| Ett agentnamn som innehåller rolletiketten | +1 |
Poängen ackumuleras och högsta summan vinner (vid lika, den första kandidaten
som hittas). Om ingen kandidat får poäng över noll kommer specen tillbaka i
verktygets unmatched-lista i stället för att dispatchas – en roll som ingen
matchar rapporteras alltså, hoppas aldrig över tyst.
Granskningsytan
Avsnitt med rubriken “Granskningsytan”En PR har exakt en granskningsyta, inte en per granskare. Den skapas
idempotent av pr.ensureSpace, länkas till PR:en via en
ReviewSpaceAssociation och provisioneras mot PR:ens head-ref. Varje
dispatchad granskare går med i ytan och postar sina review_node-fynd där,
vilket är det som gör fynden jämförbara och låter huvudagenten nå konsensus
mellan dem.
Övervaka dispatchen
Avsnitt med rubriken “Övervaka dispatchen”Varje dispatchad granskare får sin egen AgentRunLog. Följ förloppet i:
- granskningsytan, där fynden strömmar in i realtid
- PR:ens flik Granskning, som visar granskningsstatusraden och utfallet
- Observability → Live (
/workspaces/:id/observability), agentlistan med status per körning, förfluten tid i realtid, en transkriptlåda och en avslutningskontroll. Det finns ingen tangentbordsgenväg för den – nå den från sidofoten.