Je AI-agent hoeft niet slimmer te zijn. Hij moet idempotent zijn.
De meeste AI-agents in productie falen niet door slecht redeneren. Ze falen door netwerkfouten.
Het model kiest de juiste tool. Het vult de juiste details in. Vervolgens brengt het een klant twee keer in rekening.
Dit gebeurt omdat agents met schrijfrechten zich in onbetrouwbare netwerken bevinden.
- Verzoeken lopen vast (time-out).
- Verbindingen worden verbroken.
- Frameworks proberen stappen opnieuw die al zijn voltooid.
Bij een read-only agent is een retry gratis. Bij een agent met schrijfrechten is een retry een tweede, onomkeerbare actie.
De oplossing is idempotentie.
Bekijk deze veelvoorkomende fout:
- De agent roept een functie aan om een factuur te sturen.
- De service maakt de factuur aan.
- De verbinding wordt verbroken voordat de reactie de agent bereikt.
- De agent ziet een time-out en probeert het opnieuw.
- Nu heb je twee facturen.
Een slimmer model zal dit niet oplossen. Een slimmer model kan het zelfs erger maken door agressiever te zijn met retries.
Je kunt leren van betalingssystemen zoals Stripe. Zij gebruiken een Idempotency-Key. De server slaat het resultaat van het eerste verzoek op. Als de client dezelfde sleutel opnieuw verstuurt, geeft de server het opgeslagen resultaat terug in plaats van de actie een tweede keer uit te voeren.
Voor een AI-agent moet je deze sleutel afleiden uit de intentie.
Gebruik geen willekeurige ID's. Gebruik een hash van de naam van de tool en de stabiele parameters ervan.
Voorbeeld:
- Tool: charge_customer
- Params: {customer_id: 42, amount: 500}
- Key: hash(tool + params)
Als de agent exact dezelfde betaling opnieuw probeert, blijft de sleutel hetzelfde. Het systeem herkent dit en voorkomt een dubbele afschrijving.
Een waarschuwing: Je sleutel is slechts zo goed als jouw definitie van een enkele actie.
- Als je een tijdstempel in je hash opneemt, krijgt elke retry een nieuwe sleutel. Je bescherming faalt dan.
- Als je een message body opneemt die door een LLM is geschreven, kan het model één woord veranderen. Dit creëert een nieuwe sleutel en een dubbele actie.
Gebruik altijd stabiele gegevens als sleutel, zoals klant-ID's of factuur-ID's. Sluit alles uit wat het model zou kunnen veranderen.
Stop met het proberen te verbeteren van de betrouwbaarheid van agents met betere prompts.
Betrouwbaarheid gaat over het reduceren van de kosten van een herhaalde beslissing naar nul. Als je agent dezelfde actie twee keer uitvoert, mag er niets misgaan.
Optionele leercommunity: https://t.me/GyaanSetuAi
