𝗬𝗼𝘂𝗿 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁 𝗪𝗶𝗹𝗹 𝗗𝗼𝘂𝗯𝗹𝗲-𝗖𝗵𝗮𝗿𝗴𝗲 𝗼𝗻 𝗮 𝗟𝗼𝘀𝘁 𝗥𝗲𝘀𝗽𝗼𝗻𝘀𝗲
ਜੇਕਰ ਤੁਹਾਡਾ AI agent ਕਿਸੇ ਕਾਰਡ ਨੂੰ ਚਾਰਜ ਕਰਨ ਲਈ ਕਿਸੇ tool ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ਅਤੇ ਨੈੱਟਵਰਕ response ਨੂੰ ਗੁੰਮ ਕਰ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਡਾ agent ਬਹੁਤ ਮਾੜੀ ਤਰੀਕੇ ਨਾਲ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦਾ ਹੈ। ਇਹ ਜਾਣੇ ਬਿਨਾਂ ਹੀ ਗਾਹਕ ਤੋਂ double-charge ਕਰ ਲੈਂਦਾ ਹੈ।
ਪੈਸੇ ਪਹਿਲਾਂ ਹੀ ਤਬਦੀਲ ਹੋ ਚੁੱਕੇ ਹੁੰਦੇ ਹਨ। Agent ਨੇ ਕਦੇ "ok" ਨਹੀਂ ਸੁਣਿਆ। ਇਹ ਉਹੀ ਕਰਦਾ ਹੈ ਜੋ ਹਰ retry loop ਕਰਦਾ ਹੈ: ਇਹ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ। ਇਹ ਉਹੀ prompt ਅਤੇ ਉਹੀ arguments ਵਰਤਦਾ ਹੈ। ਇਸ ਨਾਲ ਦੂਜੀ ਵਾਰ ਚਾਰਜ ਹੋ ਜਾਂਦਾ ਹੈ।
Retry ਕੋਈ network event ਨਹੀਂ ਹੈ। ਇਹ ਇੱਕ side effect ਬਾਰੇ ਫੈਸਲਾ ਹੈ ਜੋ ਸ਼ਾਇਦ ਪਹਿਲਾਂ ਹੀ ਹੋ ਚੁੱਕਾ ਹੋਵੇ।
Backoff ਅਤੇ jitter ਵਰਗੇ standard retry tools retries ਨੂੰ ਸਲੀਕੇ ਨਾਲ ਕਰਦੇ ਹਨ। ਉਹ double-charges ਨੂੰ ਰੋਕਣ ਲਈ ਕੁਝ ਨਹੀਂ ਕਰਦੇ।
ਤੁਹਾਨੂੰ ਇੱਕ idempotency ledger ਦੀ ਲੋੜ ਹੈ। ਇਹ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਇੱਕ unique key ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਕਿ ਕੋਈ ਕਾਰਵਾਈ ਵੱਧ ਤੋਂ ਵੱਧ ਇੱਕ ਵਾਰ ਹੀ ਹੋਵੇ।
Tool call ਫੇਲ੍ਹ ਹੋਣ ਦੇ ਦੋ ਤਰੀਕੇ ਹਨ:
- Request ਗੁੰਮ ਹੋ ਗਈ ਸੀ। ਕਾਰਵਾਈ ਕਦੇ ਹੋਈ ਹੀ ਨਹੀਂ। Retry ਕਰਨਾ ਸੁਰੱਖਿਅਤ ਹੈ।
- Response ਗੁੰਮ ਹੋ ਗਿਆ ਸੀ। ਕਾਰਵਾਈ ਪਹਿਲਾਂ ਹੀ ਹੋ ਚੁੱਕੀ ਸੀ। Retry ਕਰਨ ਨਾਲ duplicate ਹੋ ਜਾਂਦਾ ਹੈ।
ਇੱਕ agent ਲਈ, ਇਹ ਦੋਵੇਂ ਇੱਕੋ ਜਿਹੇ ਲੱਗਦੇ ਹਨ। ਦੋਵੇਂ timeout ਜਾਂ ਡ੍ਰੌਪ ਹੋਏ connection ਵਾਂਗ ਲੱਗਦੇ ਹਨ।
ਜੇਕਰ ਕਿਸੇ tool ਦਾ ਕੋਈ side effect ਹੈ ਜਿਵੇਂ ਕਿ payment, email, ਜਾਂ refund, ਤਾਂ ਤੁਸੀਂ ਸਧਾਰਨ retries 'ਤੇ ਭਰੋਸਾ ਨਹੀਂ ਕਰ ਸਕਦੇ। ਤੁਹਾਨੂੰ ਇੱਕ idempotency key ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।
ਇਸ ਨੂੰ ਕਿਵੇਂ ਠੀਕ ਕੀਤਾ ਜਾਵੇ:
- ਆਪਣੇ tools ਨੂੰ tag ਕਰੋ। ਪਛਾਣੋ ਕਿ ਕਿਹੜੇ tools ਦੇ ਅਟੱਲ (irreversible) side effects ਹਨ।
- Deterministic keys ਦੀ ਵਰਤੋਂ ਕਰੋ। Workflow ID, step, ਅਤੇ arguments ਦੇ ਅਧਾਰ 'ਤੇ ਇੱਕ ਸਥਿਰ (stable) key ਬਣਾਓ। ਇਹ LLM ਦੁਆਰਾ arguments ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਕਰੋ।
- Provider keys ਦੀ ਵਰਤੋਂ ਕਰੋ। ਜੇਕਰ ਤੁਸੀਂ Stripe ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਉਹਨਾਂ ਦੀ idempotency key pass ਕਰੋ। ਚਾਰਜ ਨੂੰ ਰੋਕਣ ਲਈ provider ਨੂੰ ਦੁਹਰਾਓ ਨੂੰ ਪਛਾਣਨਾ ਚਾਹੀਦਾ ਹੈ।
- ਆਪਣੇ ਖੁਦ ਦੇ tools ਲਈ ਇੱਕ ledger ਬਣਾਓ। ਉਹਨਾਂ side effects ਲਈ ਜੋ ਤੁਹਾਡੇ ਅਧੀਨ ਹਨ, ਇੱਕ unique constraint ਵਾਲੀ database table ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਸਿਸਟਮ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਨਤੀਜੇ ਨੂੰ ਰਿਕਾਰਡ ਕਰ ਲਵੇ।
"at-least-once" ਨੂੰ "exactly-once" ਸਮਝਣ ਦੀ ਗਲਤੀ ਨਾ ਕਰੋ। Distributed systems ਵਿੱਚ, ਤੁਸੀਂ at-most-once delivery ਨੂੰ at-least-once retries ਅਤੇ ਇੱਕ deduplication ledger ਨਾਲ ਜੋੜ ਕੇ "exactly-once" ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ।
Writes ਨੂੰ reads ਵਾਂਗ ਸਮਝਣਾ ਬੰਦ ਕਰੋ। Read ਨੂੰ retry ਕਰਨਾ ਮੁਫ਼ਤ ਹੈ। Write ਨੂੰ retry ਕਰਨ ਨਾਲ ਪੈਸੇ ਲੱਗਦੇ ਹਨ।
Source: https://dev.to/0012303/your-ai-agent-will-double-charge-on-a-lost-response-5eed
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi