A DigitalOcean szimulált felhasználóval teszteli a kódoló ügynököket

A DigitalOcean Simulations a fejlesztői ügynökök egyetlen válasza helyett teljes beszélgetéseket értékel. A Public Preview állapotban elérhető képesség szimulált felhasználót, valódi eszközöket és nyelvi modell alapú bírálót használ.
- A Simulations teljes ügynöki beszélgetéseket értékel egyetlen válasz helyett.
- A rendszer szimulált felhasználót, valódi eszközöket és modell alapú bírálót használ.
- A trajektória minden üzenetet és eszközhívást rögzít.
- A forgatókönyvek JSONL-ben, Scenario Builderrel vagy Signals adataiból készülhetnek.
- A képesség Public Preview állapotban érhető el.
Egy válasz helyett teljes munkafolyamat
A DigitalOcean szerint egy kódoló ügynök egyetlen kérdésre könnyen adhat elfogadhatónak tűnő választ. Például kiválaszthat egy Python-verziót a 3.11 utáni frissítéshez, majd néhány változást idézhet a kiadási megjegyzésekből. Egy tapasztalt mérnök azonban több lépésben dolgozik: ellenőrzi a jelenleg támogatott verziókat, felvázolja a lehetőségeket, figyelembe veszi a köztes kiadásokat, majd a kódot is megvizsgálja.
A Simulations ezt a többlépcsős folyamatot próbálja mérhetővé tenni. A rendszer egy szimulált felhasználó és a tesztelt ügynök teljes beszélgetését futtatja le, minden üzenetet és eszközhívást rögzít, majd a teljes menetet értékelteti egy nyelvi modellel. Így különbséget tehet az érvelési és az eszközhasználati hibák között, valamint észreveheti azt is, ha az ügynök elfelejti a korábbi fordulók eredményeit.
Négy elem építi fel a szimulációt
A folyamat négy fő összetevőből áll. A jelölt az a tesztelt rendszer, amely lehet Harness Runtime-on futó kezelt ügynök, modell, Dedicated Inference-telepítés vagy Inference Router. A forgatókönyv írja le a helyzetet, a felhasználó célját, a kívánt eredményeket és a maximális fordulószámot.
A felhasználószimulátor modellként, fordulóról fordulóra játssza el a felhasználót, az ügynök és eszközei tényleges válaszai alapján. A bíráló modell a kész beszélgetést a kiválasztott mérőszámok szerint pontozza. Egy forduló egy felhasználói üzenetből és az arra adott ügynöki válaszból áll, az eszközhívásokat is beleértve. Az epizód egy forgatókönyv egyszeri lefuttatása, a pálya pedig ennek teljes, időrendi rekordja. Egy szimulációs futás több ilyen epizódból áll.
Az ügynök elkülönített Harness Runtime homokozóban fut, produkciós konfigurációjával és Action Gateway eszközeivel. Ugyanazokat a forgatókönyveket több ügynökverzióval vagy modellel is le lehet futtatni, így összevethető, mi javult és mi romlott.
A Python-frissítés példáján látszik a módszer
A DigitalOcean példája egy orders-api nevű, Python 3.11-en futó szolgáltatás. A fejlesztő szeretne frissíteni, de nem tudja, melyik verziót válassza, és mi törhet el. Az ügynök weboldalakat kérdezhet le, és kereshet a tárházban.
Az első fordulóban lekéri a Python aktuális kiadási és támogatási adatait, majd lehetőségeket kínál a felhasználónak. A másodikban a választott verzióhoz vezető minden kiadás változásait megvizsgálja, nem csak a célverzióét, és felsorolja az eltávolított elemeket. A harmadikban a tárházban megkeresi az érintett modulokat, és mindegyikhez helyettesítést javasol.
A forgatókönyvben a stopping_criteria mező írja le, mit kell teljesítenie az ügynöknek. A beszélgetés akkor ér véget, amikor ezek mindegyike teljesül, vagy elérik a max_turns értéket. Az expected_outcome mező csak az Agent Policy Adherence mérőszámhoz szükséges. A forgatókönyvek JSONL-fájlban tárolhatók, létrehozhatók a Scenario Builderrel, Signals által jelzett produkciós beszélgetésekből, vagy kézzel is megírhatók.
A Simulations minden lépése elérhető a doctl evaluation parancssoron és a DigitalOcean API-n keresztül. A felhasználóknak ez azt jelenti, hogy az ügynökök működése nem egyetlen jól sikerült válasz alapján vizsgálható, hanem a célhoz vezető teljes beszélgetés és eszközhasználat alapján.
DigitalOcean: Inside DigitalOcean Simulations: how user simulation, execution, and validation work


