Tovább a tartalomhoz

Ügynökök párhuzamos futtatása

Ez az útmutató bemutatja, hogyan futtathat egyszerre több ügynököt anélkül, hogy felülírnák egymás munkáját.

Az elszigetelés egysége a tér, nem az ügynök

Szekció neve “Az elszigetelés egysége a tér, nem az ügynök”

Amikor egy térben munka indul, a Control Center regisztrált repónként egy copy-on-write checkoutot hoz létre a tér saját gyökere alatt, a munkaterület ágsablonjából származtatott ágon. A tér minden ügynöke ezután saját overlay-munkakönyvtárat kap — az overlayek azonban megosztják a tér repos/ könyvtárát.

Tehát:

  • Két ügynök különböző térben különböző checkoutokban, különböző ágakon dolgozik. Ez valódi elszigetelés.
  • Két ügynök ugyanabban a térben ugyanabban a checkoutban, ugyanazon az ágon dolgozik. Az overlayek útvonalai eltérnek, így az indítási útvonalzár (amely csak akkor sorosítja a futtatásokat, amikor azonos munkakönyvtárat kérnek) sem sorosítja őket. Egyszerre írhatják ugyanazokat a fájlokat.

Ebből az a szabály következik: egy párhuzamos feladathoz egy tér.

Feladatok párhuzamos futtatása — külön terek

Szekció neve “Feladatok párhuzamos futtatása — külön terek”
  1. Nyisson egy teret az A ügynökkel, és küldjön neki egy feladatot.
  2. Nyisson egy második teret a B ügynökkel, és küldjön neki egy másik feladatot.
  3. Mindkettő azonnal elindul, mindegyik a saját terének checkoutjában, a saját ágán.

Ezt a receptet használja, amikor az ügynökök fájlokat fognak szerkeszteni.

Közös munka egy térben — több említés

Szekció neve “Közös munka egy térben — több említés”

Egyetlen térben említsen meg egynél több ügynököt @-jelöléssel:

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

Mindkét ügynök párhuzamosan indul, és ugyanabba a térbe streamel, feladó szerint megjelölve. Mivel megosztják a tér checkoutját, ezt együttműködésre használja — az egyik ír, a másik olvas, vagy két ügynök ugyanarról a fáról gondolkodik —, nem két független szerkesztésre.

A beépített pr_review sablon a szétágazás szállított példája: több átnéző csomópont fut egyidejűleg egyetlen triggerből, és egy Consolidate (join) csomópont egyetlen jelentésbe vonja össze a megállapításaikat. Futtassa a pipeline-ok képernyőjéről, és minden átnéző párhuzamosan indul el.

A pipeline-szerkesztő elrejti a terminális őrszemet, és úgy köti át, hogy minden élő nyelőre várjon, amikor hozzáad vagy összeköt egy lépést, így a saját maga által rajzolt ágak is lefutnak.

A Megfigyelhetőség → Élő (oldalsáv lábléce → Megfigyelhetőség, majd az Élő lap) a munkaterület ügynöknévsorát mutatja, másodpercenként frissülve: állapot (fut / tétlen / parkolva / megszakítva), hogy éppen mit tesz az egyes ügynök, a legutóbbi futtatásához tartozó tokenek és költség, valamint egy leállításvezérlő egy futó folyamathoz. Egy sor kijelölése dokkolja az élő átiratfiókot.

A Beállítások → Munkaterület → Ügynökök ugyanezt a névsort mutatja egy másik, figyelemközpontú állapotszókészlettel, amely az egyes ügynökök futtatási előzményeiből származik — fut, blokkolva, sikertelen, tétlen, még nem futott —, úgy rendezve, hogy minden figyelmet igénylő elem a tetejére kerüljön. Minden ügynök Naplók lapja a saját futtatási előzményeit tartalmazza.

Mindkét felület az aktív munkaterületre korlátozódik.

A tereken át nézve minden tér a saját ágán van, így az ütközés közönséges Git merge-konfliktusként jelenik meg, amikor egyesíti a második pull requestet. Ugyanúgy oldja fel, ahogy bármely más merge-konfliktust feloldaná.

Egy térben belül nincs ághatár és nincs zár: az ügynökök élőben ugyanazokat a fájlokat írják, és a vesztes egyszerűen felülíródik. Ha azon kapja magát, hogy két ügynök szerkesszen egy térben, ossza inkább két térre a munkát.

Az ütközések csökkentésére mindkét esetben:

  • Adjon minden ügynöknek külön hatókört — más fájlokat, más modulokat.
  • A kódgráf segítségével ellenőrizze, mit érint egy módosítás, mielőtt elindítja. Lásd: Kód keresése a kódgráffal.
  • Nézze át és egyesítse haladéktalanul minden ügynök pull requestjét.

Minden futó ügynök a következőkkel jár:

  • Egy tér checkoutja — elhanyagolható lemezterületen, amíg a copy-on-write elérhető; Windowson egy git worktree. Az a fájlrendszer, amely nem tud reflinket, a létrehozást hiúsítja meg a másolás helyett.
  • Egy folyamat a szerver hosztján
  • Modelltokenek, amelyek ügynökönként halmozódnak

A költségek a Megfigyelhetőség → Betekintések alatt jelennek meg. Vegye figyelembe, hogy egy szokásos interaktív körnek nincs költési korlátja; arról a két parancsról, amelyeknek van, a Költségek kezelése oldalon olvashat.