Het bouwen van een veilige delivery pipeline voor agents

De meeste agent-demo's slaan een cruciale vraag over. Hoe laat je een autonoom systeem namens jou dingen versturen zonder dat er dubbel wordt verzonden of ongeautoriseerd werk wordt verstuurd?

Een dubbele verzending is geen zeldzame fout. Het is het standaardgedrag van een eenvoudige queue wanneer een worker halverwege een taak uitvalt. Een worker verstuurt een bericht en crasht vervolgens voordat het succes wordt geregistreerd. Het systeem denkt dat de taak is mislukt en vraagt een nieuwe worker om het opnieuw te proberen. De klant krijgt twee e-mails en jij krijgt een supportticket.

Je kunt niet elke crash voorkomen. Je moet ontwerpen met het oog op een crash in de kloof tussen de actie en de registratie.

Gebruik deze zesfasen-pipeline voor elke agent-output met reële gevolgen:

• Produceer: De agent genereert het volledige artefact. Er wordt nog niets verzonden. • Persisteer: Schrijf eerst de intentie en het artefact naar duurzame opslag. • Score: Koppel een betrouwbaarheidsscore aan de output. • Review: Leid items met een lage betrouwbaarheid door naar een mens. • Approve: Gebruik een fail-closed poort. Het systeem blokkeert alle verzendingen, tenzij een mens expliciete autorisatie geeft. • Verstuur en bevestig: Verstuur het item onder een lease, en schrijf vervolgens een bewijsregistratie.

Elke fase moet een aparte, duurzame transitie zijn. De status leeft in je database, niet in het geheugen van een worker.

Om duplicaten te voorkomen, gebruik je row-level leasing. Gebruik in Postgres SELECT ... FOR UPDATE SKIP LOCKED. Dit zorgt ervoor dat slechts één worker op een bepaald moment eigenaar is van een taak.

De belangrijkste regel is hoe je omgaat met verlopen leases. Als een worker uitvalt terwijl er een extern bericht wordt verzonden, probeer dit dan niet automatisch opnieuw. Laat de taak in plaats daarvan onafgehandeld voor menselijke controle. Een zichtbare, vastgelopen taak is beter dan een onzichtbare dubbele verzending.

Je moet ook de fail-closed principes volgen:

  • Verzenden staat standaard uit. Eén enkele flag moet al het uitgaande verkeer inschakelen.
  • Identiteit wordt gecontroleerd. Het systeem moet het verzendadres en de transportbeveiliging verifiëren op het moment van verzenden.
  • Alles laat een bewijs achter. Een niet-geregistreerde verzending is een fout.

Bouw dit niet voor taken met een laag risico, zoals interne logs. Gebruik het wanneer een fout geld kost, een juridisch probleem veroorzaakt of een supportticket vereist.

Bron: https://dev.to/danmercede/building-a-governed-double-send-safe-delivery-pipeline-for-agent-outputs-80e

Optionele leercommunity: https://t.me/GyaanSetuAi