A teljes sandboxmentés segíthet a kódolóügynököknek, de nem mindig

A Daytona azt vizsgálta, hogy a kódolóügynökök korábbi munkakörnyezeteinek teljes mentése javítja-e a sikertelen próbálkozások folytatásának esélyét. A Terminal-Bench feladatain a friss újrapróbálkozások jobban teljesítettek, a Git-en kívüli állapotot is igénylő feladatoknál viszont a teljes sandboxmentés bizonyult hasznosabbnak.
- A Terminal-Bench teszten a friss újrapróbálkozás 68, a snapshot-ágaztatás 24 százalékos sikert ért el.
- A Daytona 24 köztes sandboxkörnyezetből mind a 24-et sikeresen állította vissza.
- A teljes mentés főleg a Git-en kívüli állapotok, például adatbázisok megőrzésénél volt hasznos.
- A staged-service-repair feladaton a teljes snapshot 5 próbából 4-et oldott meg.
- A kísérletben minden stratégia azonos, egymillió tokenes keretből gazdálkodott.
A Daytona köztes állapotokból indított újrapróbálkozásokat
A Daytona szeptember 18-án közzétett kutatása azt vizsgálta, mi történik, ha egy kódolóügynök sikertelen futása után nem az eredeti környezetből indul újra, hanem egy korábban elmentett gépállapotból folytatja a munkát. A vállalat a Go-Explore megközelítéséhez hasonló stratégiát alkalmazott: a futás közben teljes Daytona sandbox-pillanatképeket készített, majd ezekből új, friss modellkörnyezettel rendelkező ágakat indított.
Egy ügynök a forrásfájlok módosítása mellett függőségeket telepíthet, szolgáltatásokat állíthat be, adatbázist tölthet fel és egyéb környezeti állapotot hozhat létre. A Daytona szerint ezek egy része nem jelenik meg a Git eltéréseiben. A teljes sandboxmentés ezzel szemben a forráskódon túl többek között a telepített csomagokat, adatbázisokat, szolgáltatásokat, gyorsítótárakat és generált fájlokat is megőrizheti.
A vállalat 24 köztes környezet visszaállítását is ellenőrizte, és mind a 24 helyreállítása sikeres volt. Ez olyan részleteket is magában foglalt, mint egy feloldatlan Git-összefésülés és a hozzá tartozó Git-index állapota.
A Terminal-Bench feladatain a friss próbálkozások nyertek
A fő kísérletben öt, közepes nehézségű Terminal-Bench-feladatot választottak, feladatonként öt maggal. Minden mag összesen egymillió tokenből gazdálkodhatott. A független újrapróbálkozás ezt a keretet három friss kísérlet között osztotta fel, míg a snapshot-alapú keresés egy gyökérfutást, majd legfeljebb két, köztes mentésekből indított gyermekfutást használt.
A független újrapróbálkozás 25 esetből 17-et oldott meg, ami 68 százalékos arány. A snapshot-ágaztatás 6 esetben járt sikerrel, ez 24 százalék. A Daytona szerint a snapshot-visszaállítás időnként valóban segített: az extract-elf feladaton egy további kísérletben a snapshotból indított ágak a sikertelen gyökérfutások 67 százalékát hozták helyre. Ezek a sikeres helyreállítások azonban nem voltak elég gyakoriak ahhoz, hogy ellensúlyozzák az ágaztatás költségeit.
A kísérlet alapján sok kódolási feladatnál a hasznos előrehaladás nagy része már a repositoryban található. Ilyenkor a Git-eltérés megőrizheti a fontos változásokat, az új ügynök pedig újra felépítheti a környezet többi részét.
Az adatbázisállapot megőrzése döntő lehet
A Daytona egy külön feladattal azt tesztelte, amikor az előrehaladás egy része a Git-en kívül található. A staged-service-repair feladatban a kódolóügynöknek a repositoryt és a /var/lib/inventory/store.db útvonalon található SQLite-adatbázist is módosítania kellett ahhoz, hogy az ellenőrzés sikeres legyen.
Mindhárom vizsgált feltétel ugyanabból a köztes ellenőrzési pontból indult, és ugyanannyi, 200 000 tokenes fennmaradó keretet kapott. A tiszta újraindítás és a Git-eltérés visszaállítása egyaránt 0 eredményt ért el 5 próbálkozásból. A teljes snapshot 4 esetben volt sikeres az 5-ből.
A Git-eltéréses változat ugyanazokat a forráskód-módosításokat állította vissza, az adatbázis állapotát azonban elvesztette. A sikeres snapshot-folytatások hozzávetőleg 21 000 és 41 000 token között fejezték be a feladatot. A Daytona eredményei szerint a teljes sandboxmentés akkor válik különösen értékessé, amikor az ügynökök adatbázisokkal, szolgáltatásokkal, csomagkezelőkkel, böngészőkkel, fürtökkel vagy virtuális gépekkel is dolgoznak, és a folytatáshoz szükséges állapot már nem fér el a repositoryban.
Daytona: Searching Over Sandbox States for Coding Agents


