Sari la conținut

Rulează agenți în paralel

Acest ghid îți arată cum să rulezi mai mulți agenți în același timp fără ca ei să se suprascrie reciproc.

Când începe munca într-un spațiu, Control Center provisionează un checkout copy-on-write pentru fiecare repo înregistrat, sub rădăcina proprie a acelui spațiu, pe o ramură derivată din șablonul de ramuri al spațiului de lucru. Fiecare agent din spațiu primește apoi propriul director de lucru overlay — dar overlay-urile împart directorul repos/ al acelui spațiu.

Așadar:

  • Doi agenți din spații diferite lucrează în checkout-uri diferite, pe ramuri diferite. Aceasta este izolare reală.
  • Doi agenți din același spațiu lucrează în același checkout, pe aceeași ramură. Căile lor overlay diferă, așa că nici lacătul de cale al trimiterii (care serializează rulările doar când acestea cer exact același director de lucru) nu îi serializează. Ei pot scrie aceleași fișiere în același timp.

Regula care decurge de aici: un spațiu per sarcină paralelă.

  1. Deschide un spațiu cu agentul A și trimite-i o sarcină.
  2. Deschide un al doilea spațiu cu agentul B și trimite-i o altă sarcină.
  3. Ambele sunt trimise imediat, fiecare în propriul checkout de spațiu, pe propria ramură.

Aceasta este rețeta de folosit ori de câte ori agenții vor edita fișiere.

Lucrează împreună într-un singur spațiu — mai multe mențiuni

Secțiune intitulată „Lucrează împreună într-un singur spațiu — mai multe mențiuni”

Într-un singur spațiu, menționează cu @ mai mult de un agent:

@alice refactor the auth module. @bob review what alice lands.

Ambii agenți sunt trimiși în paralel și transmit în flux către același spațiu, etichetați după expeditor. Pentru că împart checkout-ul spațiului, folosește asta pentru colaborare — unul scrie, altul citește, sau doi agenți raționează despre același arbore — nu pentru două editări independente.

Șablonul încorporat pr_review este exemplul livrat de fan-out: mai multe noduri de revizuire rulează simultan pornind de la un singur trigger, iar un nod Consolidate (join) îmbină constatările lor într-un singur raport. Rulează-l din ecranul de pipeline-uri și fiecare revizor este trimis în paralel.

Editorul de pipeline-uri ascunde sentinela terminală și o recablează ca să aștepte fiecare nod de destinație activ atunci când adaugi sau conectezi un pas, așa că ramurile pe care le desenezi singur chiar rulează.

Observabilitate → Live (subsolul barei laterale → Observabilitate, apoi fila Live) arată lista de agenți a acestui spațiu de lucru, actualizată în fiecare secundă: starea (în rulare / inactiv / parcat / întrerupt), ce face fiecare, tokenii și costul pentru ultima lui rulare și un control de oprire pentru un proces aflat în rulare. Selectarea unui rând ancorează un sertar de transcriere live.

Setări → Spațiu de lucru → Agenți arată aceeași listă cu un vocabular de stări diferit, orientat spre atenție, derivat din istoricul de rulări al fiecărui agent — în rulare, blocat, eșuat, inactiv, niciodată rulat — sortat astfel încât orice lucru care cere atenție să urce în vârf. Fila Jurnale a fiecărui agent ține propriul istoric de rulări.

Ambele suprafețe sunt limitate la spațiul de lucru activ.

Între spații, fiecare spațiu este pe propria ramură, așa că o coliziune apare ca un conflict de îmbinare Git obișnuit atunci când îmbini al doilea pull request. Rezolvă-l așa cum ai rezolva orice conflict de îmbinare.

În interiorul unui singur spațiu nu există graniță de ramură și nici lacăt: agenții scriu aceleași fișiere în timp real, iar cel care pierde este pur și simplu suprascris. Dacă ajungi să vrei ca doi agenți să editeze într-un singur spațiu, împarte munca în două spații.

Pentru a reduce coliziunile, în oricare dintre variante:

  • Dă fiecărui agent un domeniu de lucru distinct — fișiere diferite, module diferite.
  • Folosește graful de cod pentru a verifica ce atinge o modificare înainte de a trimite. Vezi Caută cod cu graful de cod.
  • Revizuiește și îmbină fără întârziere pull request-ul fiecărui agent.

Fiecare agent aflat în rulare costă:

  • Un checkout de spațiu — neglijabil pe disc cât timp copy-on-write este disponibil; pe Windows un git worktree. Un sistem de fișiere care nu poate face reflink face ca provisionarea să eșueze, în loc să copieze.
  • Un proces pe gazda serverului
  • Tokeni de model, care se acumulează per agent

Costurile ajung în Observabilitate → Insights. Reține că un tur interactiv normal nu are plafon de cost; vezi Gestionează costurile pentru cele două comenzi care au unul.