ഒരു മറുപടി ലഭിക്കാതെ പോയാൽ നിങ്ങളുടെ AI ഏജന്റ് ഇരട്ടി തുക ഈടാക്കിയേക്കാം

ഒരു കാർഡ് ചാർജ് ചെയ്യുന്നതിനായി നിങ്ങളുടെ AI ഏജന്റ് ഒരു ടൂൾ ഉപയോഗിക്കുകയും, എന്നാൽ നെറ്റ്‌വർക്ക് തകരാർ കാരണം മറുപടി ലഭിക്കാതിരിക്കുകയും ചെയ്താൽ, നിങ്ങളുടെ ഏജന്റ് പരാജയപ്പെടും. അത് അറിയാതെ തന്നെ ഉപഭോക്താവിൽ നിന്ന് ഇരട്ടി തുക ഈടാക്കും.

പണം ഇതിനകം തന്നെ കൈമാറ്റം ചെയ്യപ്പെട്ടു കഴിഞ്ഞു. ഏജന്റിന് "ok" എന്ന മറുപടി ലഭിച്ചില്ല. എല്ലാ റീട്രൈ ലൂപ്പുകളും (retry loop) ചെയ്യുന്നത് പോലെ, അത് വീണ്ടും ശ്രമിക്കുന്നു. ഒരേ പ്രോംപ്റ്റും ഒരേ ആർഗ്യുമെന്റുകളും ഉപയോഗിച്ച് അത് വീണ്ടും ശ്രമിക്കുമ്പോൾ രണ്ടാമതൊരു ചാർജ് കൂടി നടക്കുന്നു.

ഒരു റീട്രൈ (retry) എന്നത് വെറുമൊരു നെറ്റ്‌വർക്ക് സംഭവമല്ല. അത് ഇതിനകം തന്നെ സംഭവിച്ചേക്കാവുന്ന ഒരു സൈഡ് ഇഫക്റ്റിനെ (side effect) കുറിച്ചുള്ള തീരുമാനമാണ്.

Backoff, jitter തുടങ്ങിയ സാധാരണ റീട്രൈ ടൂളുകൾ റീട്രൈകൾ കൂടുതൽ കൃത്യതയുള്ളതാക്കുന്നുണ്ടെങ്കിലും, ഇരട്ടി ചാർജ് ചെയ്യുന്നത് തടയാൻ അവയ്ക്ക് കഴിയില്ല.

നിങ്ങൾക്ക് ഒരു idempotency ledger ആവശ്യമാണ്. ഒരു പ്രവർത്തനം പരമാവധി ഒരു തവണ മാത്രം നടക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കാൻ ഇത് ഒരു യുണീക് കീ (unique key) ഉപയോഗിക്കുന്നു.

ഒരു ടൂൾ കോൾ പരാജയപ്പെടാൻ രണ്ട് വഴികളുണ്ട്:

ഒരു ഏജന്റിനെ സംബന്ധിച്ചിടത്തോളം ഇവ രണ്ടും ഒന്നുതന്നെയാണ്. ഇവ രണ്ടും ഒരു ടൈമൗട്ട് (timeout) അല്ലെങ്കിൽ കണക്ഷൻ നഷ്ടപ്പെട്ടത് പോലെയാണ് തോന്നിക്കുക.

പേയ്‌മെന്റ്, ഇമെയിൽ അല്ലെങ്കിൽ റീഫണ്ട് പോലുള്ള സൈഡ് ഇഫക്റ്റുകൾ ഉള്ള ഒരു ടൂൾ ആണെങ്കിൽ, വെറും റീട്രൈകളെ മാത്രം ആശ്രയിക്കാൻ കഴിയില്ല. നിങ്ങൾ നിർബന്ധമായും ഒരു idempotency key ഉപയോഗിക്കണം.

ഇത് എങ്ങനെ പരിഹരിക്കാം:

"at-least-once" എന്നതിനെ "exactly-once" ആയി തെറ്റിദ്ധരിക്കരുത്. ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങളിൽ (distributed systems), at-most-once ഡെലിവറിയും, at-least-once റീട്രൈകളും, ഒരു deduplication ledger-ഉം സംയോജിപ്പിച്ചാൽ മാത്രമേ നിങ്ങൾക്ക് "exactly-once" ലഭിക്കൂ.

'Writes'-നെ 'Reads' പോലെ കാണുന്നത് നിർത്തുക. ഒരു 'Read' റീട്രൈ ചെയ്യുന്നത് സൗജന്യമാണ്. എന്നാൽ ഒരു 'Write' റീട്രൈ ചെയ്യുന്നത് പണം ചിലവാക്കുന്ന കാര്യമാണ്.

Source: https://dev.to/0012303/your-ai-agent-will-double-charge-on-a-lost-response-5eed

Optional learning community: https://t.me/GyaanSetuAi