Hoppa till innehåll

Starta granskningsagenter

Den här guiden visar hur du dispatchar granskningsagenter för att granska pull requests.

  1. Öppna PR:en och gå till fliken Översikt
  2. Ö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.

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.

Öppna Inställningar → Arbetsyta → Pipelinemallar, öppna en mall och gör sedan så här:

  1. Lägg till en Reviewer (prompt)-nod från paletten
  2. 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}})
  3. 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.

För att en granskningspipeline ska starta av sig själv:

  1. Öppna mallen under Inställningar → Arbetsyta → Pipelinemallar
  2. 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)
  3. 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.

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.

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.

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.