Ваш ШІ-агент здійснить подвійне списання коштів у разі втрати відповіді

Якщо ваш ШІ-агент викликає інструмент для списання коштів з картки, а мережа перериває відповідь, ваш агент зазнає невдачі. Він двічі списує кошти з клієнта, навіть не знаючи про це.

Гроші вже переказані. Агент так і не отримав «ok». Він робить те саме, що й будь-який цикл повторних спроб: намагається знову. Він використовує той самий промпт і ті самі аргументи. Це призводить до повторного списання.

Повторна спроба — це не мережева подія. Це рішення щодо побічного ефекту, який, можливо, вже відбувся.

Стандартні інструменти повторних спроб, такі як backoff та jitter, роблять повтори «ввічливими». Вони ніяк не запобігають подвійним списанням.

Вам потрібен реєстр ідемпотентності (idempotency ledger). Він використовує унікальний ключ, щоб гарантувати, що дія відбудеться не більше одного разу.

Виклик інструменту може завершитися невдачею двома способами:

Для агента вони виглядають однаково. Обидва випадки схожі на таймаут або розрив з'єднання.

Якщо інструмент має побічний ефект, такий як платіж, електронний лист або повернення коштів, ви не можете покладатися на прості повторні спроби. Ви повинні використовувати ключ ідемпотентності (idempotency key).

Як це виправити:

Не плутайте «at-least-once» (щонайменше один раз) з «exactly-once» (рівно один раз). У розподілених системах «exactly-once» досягається шляхом поєднання доставки «at-most-once» (не більше одного разу) з повторними спробами «at-least-once» та реєстром дедуплікації.

Припиніть ставитися до операцій запису так само, як до операцій читання. Повторна спроба читання безкоштовна. Повторна спроба запису коштує грошей.

Джерело: https://dev.to/0012303/your-ai-agent-will-double-charge-on-a-lost-response-5eed

Додаткова спільнота для навчання: https://t.me/GyaanSetuAi