Zum Hauptinhalt
Intelliger
Zuverlässige Agentenzahlungen

Zahlungs-Idempotenz für KI-Agenten: Verhindern Sie doppelte Ausführung

Verhindern Sie doppelte Zahlungen von KI-Agenten mit kanonischen Request Digests, atomaren Idempotenz-Reservierungen, Ungewissheitsabgleich und Wiederholungstests.

Zwei gleichzeitige AI-Agent-Zahlungsversuche konvergieren auf einer idempotenten Transaktion
Intelliger•
9 Minuten lesen · Zahlungen und Überprüfung der verteilten Systeme erforderlich

Zahlungs-Idempotenz für KI-Agenten bedeutet, dass Wiederholungen der gleichen beabsichtigten Transaktion eine geschützte Operation erzeugen. Es erfordert einen stabilen Business Key, kanonischen Request Digest, atomare Reservierung und Anbieterabgleich. Eine Wiederholungs-Nonce verhindert die Wiederverwendung von Berechtigungen; sie beantwortet nicht, ob eine zeitgesteuerte Zahlung erneut eingereicht werden kann.

Die Agentischer Zahlungsleitfaden Idempotenz wird zu einem eigenen technischen problem, sobald zwei arbeiter antreten oder ein anbieter eine anfrage akzeptiert und die antwort fallen lässt.

Reserve Absicht vor dem Aufruf des Anbieters

type PaymentReservation = {
  tenantId: string;
  idempotencyKey: string;
  requestDigest: string;
  state: 'reserved' | 'submitted' | 'accepted' | 'rejected' | 'uncertain';
  providerReference?: string;
};

async function reservePayment(input: PaymentInput) {
  const prior = await store.insertIfAbsent({
    tenantId: input.tenantId,
    idempotencyKey: input.idempotencyKey,
    requestDigest: digest(input),
    state: 'reserved',
  });
  if (prior.requestDigest !== digest(input)) throw new Error('KEY_REUSED_FOR_DIFFERENT_REQUEST');
  return prior;
}

Wenn der gleiche Schlüssel mit unterschiedlichem Betrag, unterschiedlicher Währung, unterschiedlichem Lieferanten oder unterschiedlichem Ziel ankommt, lehnen Sie ihn ab, anstatt das frühere Ergebnis zurückzugeben.

Unterscheiden von Replay und Retry

MechanismusSchützt vorTypischer Schlüssel
Proof Replay Store UbersetzungenWiederverwendung unterzeichneter Nachweise oder NachweiseKey, Publikum, Nonce
Authority Used Counterüber die delegierten Verwendungen hinausgehenBewilligungs-ID und Verwendungsnummer
Domain-IdempotenzDoppelter GeschäftsbetriebMieter und Transaktionsabsicht
Anbieter-IdempotenzDuplikat des AnbietersProvider-Scoped Request Key

Lassen Sie diese Läden nicht zusammenbrechen, ihre Lebensdauer und ihr Erholungsverhalten unterscheiden sich.

Behandeln Sie Timeouts als unbekannt

Nach dem Senden der Provider-Anfrage, persist submitted vor der Interpretation der Antwort: Wenn die Verbindung ausfällt, markieren uncertain Fragen Sie das Modell niemals, ob es glaubt, dass die Zahlung wahrscheinlich durchgegangen ist.

Testen Sie einen Anbieter, der die Zahlung akzeptiert und die Antwort verliert, zwei Mitarbeiter, die vor dem Versand rasen, ein Datenbank-Failover nach der Reservierung und einen Wiederholungsversuch nach dem Neustart des Prozesses.

Wählen und behalten Sie den Schlüssel sorgfältig

Der idempotency-Schlüssel sollte Business Intention darstellen, nicht einen HTTP-Versuch. Generieren Sie ihn vor dem ersten Versand und halten Sie ihn stabil durch Agent-Neuplanung, Prozessneustarts und menschliche Überprüfung. Wenn eine geänderte Anfrage wirklich eine neue Transaktion ist, geben Sie einen neuen Schlüssel aus und bewahren Sie den Link zu der zuvor aufgegebenen oder abgelehnten Absicht.

Bewahren Sie die Reservierung länger auf, als der Anbieter die Transaktion akzeptieren, abrechnen oder melden kann. Wenn Sie sie nach einem kurzen API-Timeout ablaufen lassen, wird das doppelte Risiko wiederhergestellt. Der genaue Zeitraum hängt vom Schienen- und Geschäftsprozess ab, also dokumentieren Sie sie mit Zahlungen und Aufzeichnungen Eigentümer.

Geben Sie keine alte erfolgreiche Antwort zurück, wenn der Anrufer den gleichen Schlüssel mit einem anderen Digest präsentiert, der einen Programmier- oder Substitutionsfehler verbirgt, geben Sie einen Konflikt zurück und verlangen Sie, dass der Anrufer die bestehende Transaktion überprüft.

RFC 9110 definiert HTTP-Methodensemantik, einschließlich idempotenter Methoden, aber die geschäftliche Idempotenz eines Zahlungsvorgangs hängt immer noch vom Anwendungs- und Anbietervertrag ab.

Die Abgleichszustandsmaschine Spezifiziert späte Ergebnisse. Ohne Doppelzahlungen zahlbare Konten wendet das Muster auf Rechnungen an. OATI-Empfangspfad deckt Evidenzkonzepte in der Entwicklervorschau ab.

Idempotency reduziert die doppelte Ausführung; sie garantiert nicht die exakte Lieferung über jedes System hinweg.

Idempotenz Design Fragen

Wer erstellt den Business Key?

Erstellen Sie es in einem vertrauenswürdigen Transaktionsdienst, wenn die Zahlungsabsicht strukturiert wird, bevor der erste Anbieter anruft. Lassen Sie es nicht von einem Sprachmodell bei jedem Plan frei regenerieren. Binden Sie es an Mieter und Geschäftsbetrieb, setzen Sie es dem Agenten als undurchsichtigen Wert aus und behalten Sie es durch Wiederholungen und Abgleich.

Was ist, wenn der Anbieter keine Idempotenzunterstützung hat?

Eine interne Atomreservierung verwenden und den Anbieter oder das Aufzeichnungssystem vor der Wiederholung abfragen. Einige Schienen legen eine Clientreferenz frei, die den Abgleich auch ohne strikte Idempotenz unterstützen kann. Wenn der Anbieter nicht feststellen kann, ob eine zeitgesteuerte Anforderung ausgeführt wird, erfordert der Workflow möglicherweise eine manuelle Auflösung anstelle einer automatisierten erneuten Einreichung.

Sollten abgelehnte Zahlungen den Schlüssel behalten?

Speichern Sie den Datensatz und die Anbieter-Semantik. Eine endgültige Ablehnung kann eine korrigierte Anforderung unter einem neuen Business-Schlüssel ermöglichen, der mit dem alten verknüpft ist. Die Wiederverwendung desselben Schlüssels für den geänderten Betrag oder das geänderte Ziel ist mehrdeutig und sollte abgelehnt werden.

Wie werden Concurrent Agents behandelt?

Beide müssen gegen denselben Mandanten und Geschäftsschlüssel in einem gemeinsamen Atomspeicher reservieren. Ein prozesslokaler Mutex ist über Replikate hinweg unzureichend. Geben Sie den bestehenden Transaktionszustand an den verlorenen Anrufer zurück, ohne eine weitere Aktion zu starten. Test bricht zwischen Reservierung, Einreichung und Zustandspermanenz ab.

Was soll mit einem unsicheren Vorbehalt geschehen?

Halten Sie es aktiv, bis der Abgleich ein Endergebnis beweist oder ein rechenschaftspflichtiges Verfahren es löst. Das Freigeben bei Timeout kann ein Duplikat ermöglichen.

Wie wird idempotency auditiert?

Schlüssel, Anforderungsverdauung, Reservierungsübergänge, Anbieterreferenz und jede Wiederholung ohne sensible Anmeldedaten; Probe duplizierter Versuche und Bestätigung eines Anbietervorgangs; Überwachung von Schlüsselkonflikten, da sie auf einen Anruferfehler, ein Ausbleiben von Mandantenschlüsseln oder einen Substitutionsversuch hinweisen können.

Machen Sie das Neustartverhalten Teil des Akzeptanztests. Reservieren Sie eine Transaktion, stoppen Sie den Worker, nachdem der Provider die Anfrage erhalten hat, starten Sie dann eine andere Replik ohne Prozessspeicher. Es sollte den gleichen Schlüssel wiederherstellen und den Digest anfordern, den dauerhaften Zustand prüfen und sich abgleichen, bevor Sie etwas Neues versuchen. Wiederholen Sie mit dem Absturz eine Anweisung früher, vor dem Versand. Diese beiden Fälle sehen in einem Anwendungsprotokoll fast identisch aus, erfordern aber eine andere Wiederherstellung. Die dauerhafte Reservierung und die Anbieterbeobachtung müssen sie unterscheiden.

Reservierungen überwachen, die niemals zur Einreichung gelangen, sowie unsichere Anbieteranrufe; sie können auf Mitarbeiterausfälle, tote Briefe oder eine Transaktion hinweisen, die Kapazitäten freigeben sollte; Wiederherstellungsregeln müssen sie unterscheiden, ohne den Schlüssel für eine geänderte Absicht erneut zu verwenden.

Ein wachsender Pre-Dispatch-Backlog erfordert eine andere Antwort als Zahlungen, die auf die Bestätigung des Anbieters warten, obwohl beide als unvollständige Transaktionen erscheinen können.