Tartós futtatást kapnak a Pydantic AI ügynökei AWS Lambdán

A Pydantic AI Harness új AWSLambdaDurability képessége ellenőrzőpontokkal teszi folytathatóvá az AWS Lambda alatt futó AI-ügynökök munkameneteit. Egy megszakítás vagy újrapróbálkozás után a futtatás a már befejezett lépések eredményeit használja fel, így nem kell minden műveletet elölről végrehajtani.
- Az AWSLambdaDurability ellenőrzőpontozza a Pydantic AI ügynök lépéseit.
- A folytatott futtatás a már elkészült lépések tárolt eredményeit használja.
- A tartós funkciók futása akár egy évig is tarthat.
- Az alapértelmezett szabály összesen hat próbálkozást enged lépésenként.
- A mellékhatással járó eszközöket idempotens működésre kell felkészíteni.
A Lambda újrapróbálkozása ismételt műveleteket okozhat
A Pydantic szeptember 9-én bemutatott példája szerint egy ügyfélszolgálati ügynök akár tizenöt percig is dolgozhat egy hibajegyen. Elolvashatja a rendelést, meghívhatja a számlázási API-t, megkérdezheti a modellt a következő lépésről, majd egy újabb eszközt is használhat.
Ha a Lambda-futtatás a tizenegyedik percben időtúllépés miatt leáll, az AWS újraindíthatja a kezelőt az első sortól. Ilyenkor ugyanazok a modellkérések és eszközhívások ismét lefuthatnak. A forrás példája szerint ez azt eredményezheti, hogy a rendszer kétszer költi el a tokeneket, illetve a számlázási API egy már teljesített visszatérítést ismét kiad.
A Pydantic szerint ez a Lambda állapotmentes működéséből következik. A hagyományos kezelő nem rögzíti, hogy a futtatás mely lépéseket teljesítette már.
Ellenőrzőpontokkal folytatható a hosszú futtatás
Az AWS Lambda tartós funkciói olyan hosszabb munkafolyamatokat támogatnak, amelyek megszakadhatnak, külső eseményre várhatnak, hibás műveleteket újrapróbálhatnak, majd onnan folytatódhatnak, ahol félbeszakadtak. A működés alapja az ellenőrzőpontok és az újrajátszás mechanizmusa. Egy futtatás akár egy évig is tarthat, a várakozás pedig igény szerinti számlázásnál számítási költség nélkül felfüggesztheti a munkát.
A Pydantic AI Harness az AWSLambdaDurability képességgel teszi tartóssá az ügynök futását. A rendszer ellenőrzőpontként rögzíti a modellkéréseket, a függvényeszközök hívásait, az MCP-hívásokat és a dinamikus eszközkészlet feloldását. Folytatáskor a kezelő felülről újrajátssza a futást, a már teljesített lépésekhez pedig a tárolt eredményeket adja vissza.
A használathoz a Pydantic a logfire, a pydantic-ai-harness[aws-lambda] és a pydantic-ai-slim[bedrock] csomagok telepítését mutatja be. Az AWS Durable Execution SDK Python 3.11-es vagy újabb verziót igényel.
A beállításhoz két dekorátor és egy képesség kell
A tartós futtatásnál az ügynök létrehozásakor kell hozzáadni az AWSLambdaDurability() képességet, a kezelőt pedig a durable_execution és a durable_agent_handler dekorátorral kell ellátni. A Pydantic példájában a tartós végrehajtást biztosító dekorátor van kívül, mert ezt a burkolót hívja meg a Lambda. Fordított sorrendben a kezelő meghatározásakor UserError keletkezik.
A dokumentáció szerint a durable_agent_handler egy háttérben futó aszinkron eseményhurkon kezeli az ügynököt, miközben a lépéseket a Lambda kezelőszálán szolgálja ki. Így a szinkron tartós API és az aszinkron ügynökfuttatás egy folytonos lépéssorozatban működhet.
A funkciót tartós konfigurációval kell telepíteni, és közzétett verziót kell meghívni, mert a folyamatban lévő futtatások ahhoz a verzióhoz kötődnek, amelyen elindultak. A szükséges IAM-jogosultságokat az AWSLambdaDurableExecutionRolePolicy kezelt házirend tartalmazza. A Pydantic külön figyelmeztet, hogy a konzol hozzáadja ezeket, a parancssori felület viszont nem, ezért egy hagyományos végrehajtási szerepkörrel az első ellenőrzőpontnál meghiúsulhat a futás.
A lépések alapértelmezés szerint újrapróbálkozhatnak
Az ellenőrzőpontok lépésenként működnek, ezért az egyes eszközökhöz külön beállítások adhatók meg. Az AWS Lambda metaadatai között megadható az újrapróbálkozási stratégia, a lépés szemantikája és a szerializálás. Egy eszköz teljesen ki is zárható az ellenőrzőpontozásból, ilyenkor minden kísérletnél közvetlenül fut le. Az MCP-eszközöknél ez a lehetőség nem érhető el, mert azok I/O-műveleteket végeznek, amelyeket nem szabad ismételten végrehajtani.
A lépések legalább egyszer futnak le, és alapértelmezés szerint újrapróbálkoznak. Az SDK alapértelmezett szabálya összesen hat próbálkozást enged, az első futással és öt újrapróbálkozással, exponenciális várakozással. Mivel a megszakítás egy mellékhatás és az ellenőrzőpont rögzítése között is bekövetkezhet, a Pydantic idempotens, vagyis biztonságosan ismételhető mellékhatásokat javasol.
A Pydantic arra is felhívja a figyelmet, hogy az ügynök futásának szerkezetét megváltoztató módosítások eltéríthetik a folyamatban lévő végrehajtásokat. Ilyen lehet egy eszköz hozzáadása vagy eltávolítása, egy MCP-szerver módosítása, az ellenőrzőpontozás kikapcsolása, egy eseménykezelő hozzáadása vagy a modell cseréje. A javaslat szerint ilyenkor új verziót kell közzétenni, és meg kell várni, hogy a régi futtatások kifussanak.


