Waarom vergeten AI-agents voor thuis voltooide acties na het opnieuw starten van een service?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Lokale AI-agents vergeten voltooide acties na een herstart wanneer hun plan, toolresultaten en voltooiingsmarkeringen alleen in vluchtig procesgeheugen bestaan.

Een agent kan een bestand bijwerken, een gebeurtenis aanmaken, een container opnieuw starten of een deel van een batch voltooien, en die kennis toch verliezen wanneer de service opnieuw wordt uitgerold of crasht. Het externe effect kan blijven bestaan, terwijl het modelgesprek, de lusteller, het wachtende plan en het object met het toolresultaat verdwijnen. Na het opstarten kan de agent werk opnieuw uitvoeren of ervan uitgaan dat er niets is gebeurd. Voor duurzaam herstel moet de uitvoeringsstatus worden opgeslagen op grenzen die intentie, toolaanroep, waarneembaar resultaat en de volgende onvoltooide stap met elkaar verbinden.

Gespreksgeschiedenis is geen duurzame workflowstatus

Een chattranscript kan het verzoek van de gebruiker en de toelichting van de agent bevatten, maar hoeft niet vast te leggen welke neveneffecten zijn doorgevoerd, welke records zijn overgeslagen of vanaf welke vertakking de uitvoering moet worden hervat.

De gids van Augment Code over persistente workflowstatus maakt onderscheid tussen langdurige uitvoering en één proces of synchroon verzoek.

De agent heeft gestructureerde status nodig, zoals een taak-ID, huidige stap, voltooide bewerkingen, hashes van toolresultaten, wachtende goedkeuringen en aantallen nieuwe pogingen. Die status na een herstart opnieuw genereren uit een chat in natuurlijke taal is dubbelzinnig.

Voor voltooide toolaanroepen is een duurzame commitgrens nodig

Een tool kan extern succesvol zijn voordat de agent zijn lokale voltooiingsmarkering wegschrijft. Een herstart binnen dat tijdsvenster laat de actie uitgevoerd achter, terwijl de agent dat niet weet.

Zylos beschrijft duurzame uitvoeringsgrenzen die voltooid werk behouden voordat het herstel verdergaat.

Een betrouwbare grens registreert de bewerkings-ID en het resultaat in duurzame opslag, of gebruikt één transactionele service die het neveneffect en het voltooiingsrecord samen kan vastleggen.

Wanneer een atomische commit niet mogelijk is, moet de tool een statusopvraag aanbieden, zodat de herstartte agent onzekere uitkomsten kan verifiëren.

Met een snapshot kan veilige uitvoering niet altijd worden gereconstrueerd

Het opslaan van modelberichten of een geserialiseerde grafiekstatus legt vast wat de agent op één moment dacht. Het garandeert niet automatisch dat externe aanroepen bij het opnieuw afspelen niet worden gedupliceerd.

Diagrid maakt onderscheid tussen checkpoints van applicaties en runtimes die nieuwe pogingen, gebeurtenisgeschiedenis en de voltooiing van neveneffecten beheren.

Bij het herstelontwerp moet worden bepaald welke code deterministisch is, welke toolaanroepen opnieuw kunnen worden afgespeeld en welke resultaten uit de geschiedenis worden gelezen in plaats van opnieuw te worden uitgevoerd.

Anders kan een correct checkpoint alsnog hervatten met een gedupliceerd bericht, een herhaalde bestandsverplaatsing of een tweede apparaatopdracht.

Stabiele run- en stapidentiteiten voorkomen dat per ongeluk een nieuwe taak wordt gestart

Na een herstart kan een nieuw gegenereerde gespreks- of run-ID hetzelfde gebruikersdoel als een nieuwe taak laten lijken. De agent heeft dan geen sleutel om zijn oude status te vinden.

Inference.sh legt uit hoe een duurzame runidentiteit een agent in staat stelt verder te gaan vanaf het meest recente voltooide checkpoint.

Sla de workflow-ID buiten de container op en koppel deze aan de gebruiker, taak, gegevensscope en autorisatie. Servicedetectie en loadbalancing mogen geen nieuwe logische run aanmaken alleen omdat een andere worker het verzoek ontvangt.

Voltooide stappen moeten opnieuw worden gebruikt in plaats van opnieuw te worden beredeneerd

Wanneer eerdere modelaanroepen opnieuw worden uitgevoerd, kunnen daaruit een ander plan, andere toolargumenten of een andere interpretatie van het voltooide werk voortkomen.

In het runtimeartikel van Pydantic staat dat voltooide checkpoints voltooid blijven, terwijl het herstel alleen de mislukte grens opnieuw uitvoert.

Dit verlaagt het tokengebruik en voorkomt dat een herstartte agent een tweede route bedenkt door huishoudelijke systemen die al zijn gewijzigd.

Opgeslagen resultaten moeten voldoende bewijs bevatten om te controleren of de tooluitvoer nog steeds overeenkomt met de huidige doelstatus.

Idempotentie en reconciliatie beschermen herstel tegen dubbele effecten

Duurzame status kan nog steeds één stap achterlopen op het externe systeem. Bewerkings-ID's, idempotentiesleutels, statuscontroles en compenserende acties helpen die onzekerheid op te vangen.

De gids van Restate over veerkrachtige agentlussen bewaart de iteratiestatus tijdens herstarts en ondersteunt gecontroleerde voortzetting.

Het artikel van ZimaSpace over herhaalveilige automatisering laat zien waarom een beoogde eindstatus veiliger is dan optelbare opdrachten blind opnieuw afspelen.

Wanneer de actie niet idempotent kan worden gemaakt, moet de herstartte agent de huidige status verifiëren of om beoordeling vragen, in plaats van aan te nemen dat een ontbrekend lokaal record een mislukking betekent.

Herstarttests moeten elk foutvenster omvatten

Beëindig de service vóór een toolaanroep, tijdens de aanroep, na het externe effect, na het lokale checkpoint en tijdens het wachten op goedkeuring. Elke herstart moet leiden tot één voorspelbare voortzetting.

DBOS beschrijft crashbestendige uitvoering voor workflows met API's en menselijke interactie.

Controleer of voltooide acties opnieuw worden gebruikt, onzekere acties worden verzoend, wachtende acties wachtend blijven en er niet stilzwijgend nieuwe autorisatie wordt gegenereerd.

De agent onthoudt voltooid werk alleen wanneer de voortgang wordt opgeslagen als duurzaam operationeel bewijs — niet alleen als tekst die het oude proces toevallig vasthield.

Veelgestelde vragen

Is het opslaan van het chattranscript voldoende?

Nee. Het transcript kan bewerkings-ID's, doorgevoerde neveneffecten, de status van nieuwe pogingen, goedkeuringen en de precieze grens vanaf waar de uitvoering moet worden hervat, weglaten.

Moet de agent na een herstart elke toolaanroep opnieuw afspelen?

Nee. Voltooide aanroepen moeten uit de duurzame geschiedenis worden hergebruikt, terwijl onzekere aanroepen vóór elke nieuwe poging idempotentie of reconciliatie vereisen.

Kan een databasecheckpoint elke dubbele actie voorkomen?

Nee. Het checkpoint moet worden gecoördineerd met het externe neveneffect. Een crash tussen het effect en het checkpoint leidt nog steeds tot een onzekere uitkomst.

Tech & AI HUB

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.