Így dolgoznak együtt a Lovable ügynökei a Chats rendszerben

A Lovable Chats rendszere a beszélgetésekből indított alkalmazásépítési feladatokat több, együttműködő ügynök segítségével kezeli. A vállalat bemutatta, hogyan őrzi meg közben az előzményeket, továbbítja az utasításokat, és juttatja vissza az eredményeket a kiinduló beszélgetésbe.
- A Chats a megerősített módosításokat az alkalmazást építő ügynökhöz továbbítja.
- A Lovable Trajectory Systemje nagyjából félmilliárd eseményt kezel egy átlagos munkanapon.
- Az ügynökök Git-szerű, csak hozzáfűzhető és elágaztatható történeteket használnak.
- Az inbox és a trajectory külön naplóként kezeli a beérkező üzeneteket és a futási előzményeket.
- A részleges válaszok streamelése a végleges események mellett, külön csatornán történik.
A Chats az ötlettől az alkalmazás módosításáig vezet
A Lovable szeptember 24-i bejegyzése szerint a Chats arra szolgál, hogy a felhasználó egy beszélgetésben dolgozzon ki ötleteket és döntéseket, miközben a Lovable projektjei is a beszélgetés részei maradnak. Amikor a felhasználó megerősít egy módosítást, a Chats továbbítja a feladatot az alkalmazást építő ügynöknek, majd annak frissítéseit visszahozza a beszélgetésbe.
A háttérben olyan infrastruktúra működik, amelyet eredetileg az ügynökök és alügynökök együttműködésére fejlesztettek. A Lovable szerint a Trajectory System egy átlagos munkanapon nagyjából félmilliárd eseményt fűz hozzá a rendszerhez, körülbelül 2,6 millió felhasználói fordulathoz kapcsolódva.
Git-szerű eseménytörténet tárolja az ügynökök munkáját
A rendszer az ügynökök beszélgetéseit megváltoztathatatlan, csak hozzáfűzhető eseménynaplóként, úgynevezett trajectoryként kezeli. Ebben szerepelnek többek között a felhasználói üzenetek, az ügynök válaszának kezdetét és végét jelző események, az egyes modellhívások, a modell gondolkodása, a tartalom, az eszközhívások és az eszközök teljes életciklusa. A visszavonás sem törli a korábbi eseményeket, hanem külön Revert eseményként kerül a naplóba.
A felépítés a Git commitjaihoz és előzményeihez hasonlít. Minden esemény egyetlen szülőre mutat, a megnevezett fejek pedig az egyes történetszálak végét jelölik. Egy IterationEnd vagy AgentDone pontból új szál indítható. Ilyenkor nem másolják le az előzményeket, az új szál első eseménye, a ThreadForkConfig, csak a kiindulópontot nevezi meg. A Lovable nem egyesíti az ügynökök történeteit, mivel a különálló gondolatok, eszközhívások és eredmények összefésülésének jelentése nem lenne egyértelmű.
A trajectory a rendszer forrása, de nem kerül változtatás nélkül a modell elé. Minden iteráció elején a promptépítő ebből állítja össze az aktuális kontextust. Ez lehetővé teszi például a tömörítést is: egy háttérben futó összegző ügynök mellékszálon készít összefoglalót, amelyet az eredeti ügynök később PromptCompactionEnd eseményként vesz fel a saját történetébe.
Külön napló kezeli az üzeneteket és a futó munkát
A Lovable leírása szerint minden ügynökhöz két eseménynapló tartozik. Az inboxba érkeznek a felhasználói üzenetek, a többi ügynöktől vagy a vezérlési síktól származó értesítések, egy alügynök befejezett munkájáról szóló jelzések és az ütemezett ébresztések. A másik a trajectory, amely az ügynök tényleges futási előzményeit tartalmazza, vagyis azt, hogy mit gondolt, mondott és tett.
Futáskor az ügynök az inbox még fel nem dolgozott tartalmát átmásolja a saját trajectoryjába. Ez az induláskor és minden iterációs határnál megtörténik, így a válasz közben beérkező üzenet közbevetésként is bekerülhet, ahelyett hogy a teljes válasz végéig várakozna.
A modell válaszának streamelését külön, ideiglenes részleges állapotok segítik. A böngésző ezeket azonnal megkapja és megjeleníti, a végleges esemény azonban csak a válasz lezárásakor kerül a trajectoryba. A Lovable szerint ez biztosítja, hogy az újracsatlakozások, az oldalfrissítések és a több böngészőlap ugyanahhoz az eseménytörténethez igazodjon. A felhasználók ebből azt látják, hogy a Chats beszélgetése és az alkalmazáson végzett munka egyetlen folyamatként kapcsolódik össze.
Lovable: Inside Chats: How Lovable's Agents Work Together

