𝗔𝗜 ഏജന്റുകൾക്ക് ഒരു റിലയബിലിറ്റി പ്രശ്നമുണ്ട്
AI ഏജന്റുകൾ പ്രതികരിക്കുന്ന സോഫ്റ്റ്വെയറിൽ നിന്ന് പ്രവർത്തിക്കുന്ന സോഫ്റ്റ്വെയറുകളിലേക്ക് മാറിക്കൊണ്ടിരിക്കുകയാണ്. അവ API-കൾ വിളിക്കുന്നു, പണം കൈമാറുന്നു, ഡാറ്റാബേസുകൾ അപ്ഡേറ്റ് ചെയ്യുന്നു.
എന്നാൽ ബുദ്ധിശക്തിയും (intelligence) വിശ്വാസ്യതയും (reliability) തമ്മിൽ വലിയൊരു വ്യത്യാസമുണ്ട്.
മികച്ച മോഡലുകളിലും മികച്ച പ്രോംപ്റ്റിംഗിലും (prompting) മാത്രമാണ് നമ്മൾ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത്. എന്നാൽ ഇൻഫ്രാസ്ട്രക്ചറിനെ നമ്മൾ അവഗണിക്കുന്നു. ഈ പൊരുത്തക്കേട് യഥാർത്ഥ ലോകത്ത് പരാജയങ്ങൾക്കും കാരണമാകുന്നു.
ഒരു ഏജന്റ് ഒരു റീഫണ്ട് പ്രോസസ്സ് ചെയ്യുന്നത് സങ്കൽപ്പിക്കുക. അത് പേയ്മെന്റ് API വിളിക്കുന്നു. API വിജയകരമായി പ്രവർത്തിക്കുന്നു. എന്നാൽ ഏജന്റ് ആ വിജയം രേഖപ്പെടുത്തുന്നതിന് മുമ്പ് ഒരു സെർവർ ക്രാഷ് സംഭവിക്കുന്നു. സിസ്റ്റം ആ ടാസ്ക് വീണ്ടും ചെയ്യാൻ ശ്രമിക്കുന്നു (retry). ഏജന്റ് വീണ്ടും API വിളിക്കുന്നു. ഉപഭോക്താവിന് ഇരട്ടി റീഫണ്ട് ലഭിക്കുന്നു.
ആരും ഒരു ബഗ്ഗും എഴുതിയിട്ടില്ല. മോഡൽ ശരിയായ രീതിയിൽ ചിന്തിച്ചു. API ശരിയായി പ്രവർത്തിച്ചു. ഇൻഫ്രാസ്ട്രക്ചർ അപൂർണ്ണമായതുകൊണ്ടാണ് ഈ പരാജയം സംഭവിച്ചത്.
മിക്ക ഏജന്റുകളും ഡെമോകളിൽ നന്നായി പ്രവർത്തിക്കുന്നു. ഡെമോകൾ ഒരു സിംഗിൾ പ്രോസസ്സിലാണ് പ്രവർത്തിക്കുന്നത്. അവ ഒരേസമയം ഒരു ടാസ്ക് മാത്രമേ ചെയ്യുന്നുള്ളൂ. അവയ്ക്ക് ക്രാഷുകളോ കൺകറൻസി (concurrency) പ്രശ്നങ്ങളോ നേരിടേണ്ടി വരുന്നില്ല. എന്നാൽ പ്രൊഡക്ഷൻ (production) സാഹചര്യം വ്യത്യസ്തമാണ്.
നിങ്ങൾ ഏജന്റുകളെ പ്രൊഡക്ഷനിലേക്ക് മാറ്റുമ്പോൾ, മൂന്ന് കാര്യങ്ങൾ തകരാറിലാകുന്നു:
• പ്രോസസ് ഇമ്മോർട്ടാലിറ്റി (Process Immortality): പ്രോസസ് ഒരിക്കലും അവസാനിക്കില്ല എന്നാണ് ഏജന്റുകൾ കരുതുന്നത്. എന്നാൽ യഥാർത്ഥത്തിൽ, ഹോസ്റ്റുകൾ നിലയ്ക്കാം അല്ലെങ്കിൽ പുതിയ ഡിപ്ലോയ്മെന്റുകൾ നടക്കാം. ഒരു പ്രോസസ് അവസാനിക്കുമ്പോൾ, ഇൻ-മെമ്മറി സ്റ്റേറ്റ് (in-memory state) ഇല്ലാതാകുന്നു. • പ്യുവർ ടൂൾ കോൾസ് (Pure Tool Calls): ഡെവലപ്പർമാർ ടൂൾ കോൾസിനെ വെറും റീഡുകൾ (reads) പോലെയാണ് കാണുന്നത്. എന്നാൽ ഏജന്റുകൾ സൈഡ് ഇഫക്റ്റുകൾ (side effects) ഉണ്ടാക്കുന്നു. പണം കൈമാറുന്നതോ ഇമെയിൽ അയക്കുന്നതോ എളുപ്പത്തിൽ റദ്ദാക്കാൻ കഴിയില്ല. • എക്സാക്റ്റ്ലി-വൺസ് എക്സിക്യൂഷൻ (Exactly-once Execution): വിശ്വാസ്യതയ്ക്കായി റീട്രൈകൾ (retries) ആവശ്യമാണ്. എന്നാൽ ഒരു ഡ്യൂറബിൾ ലോഗ് (durable log) ഇല്ലാതെ ഇൻ-മെമ്മറി ലൂപ്പ് വീണ്ടും പ്രവർത്തിപ്പിക്കുന്നത് ഡ്യൂപ്ലിക്കേറ്റ് ആക്ഷനുകൾക്ക് കാരണമാകുന്നു.
ഇതൊരു പ്രോംപ്റ്റിംഗ് പ്രശ്നമല്ല. ഇതൊരു ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റംസ് (distributed systems) പ്രശ്നമാണ്. ഇത് പരിഹരിക്കാൻ നമുക്ക് ഡ്യൂറബിൾ എക്സിക്യൂഷൻ (durable execution) ആവശ്യമാണ്.
വിശ്വസനീയമായ ഏജന്റുകൾക്ക് ഈ അഞ്ച് തൂണുകൾ ആവശ്യമാണ്:
- ഇവന്റ് സോഴ്സിംഗ് (Event Sourcing): ഓരോ ആക്ഷന്റെയും മാറ്റമില്ലാത്ത (immutable) ഒരു ലോഗ് സൂക്ഷിക്കുക. ഇൻ-മെമ്മറി സ്റ്റേറ്റ് അല്ല, മറിച്ച് ഈ ലോഗാണ് സത്യത്തിന്റെ ഉറവിടം (source of truth).
- റീപ്ലേയബിൾ എക്സിക്യൂഷൻ (Replayable Execution): ഒരു ക്രാഷിന് ശേഷം സ്റ്റേറ്റ് പുനർനിർമ്മിക്കാൻ ലോഗ് ഉപയോഗിക്കുക. പൂർത്തിയായ ഘട്ടങ്ങൾ വീണ്ടും പ്രവർത്തിപ്പിക്കുന്നതിന് പകരം അവ റീപ്ലേ ചെയ്യുക.
- ഡ്യൂറബിൾ ക്യൂകൾ (Durable Queues): ജോലികൾ മെമ്മറിയിൽ നിന്ന് പെർസിസ്റ്റന്റ് സ്റ്റോറുകളിലേക്ക് (persistent stores) മാറ്റുക.
- ഐഡംപോറ്റൻസി കീകൾ (Idempotency Keys): ഒരു ആക്ഷൻ രണ്ടുതവണ ചെയ്യുന്നത് ഒരു തവണ ചെയ്യുന്നത് പോലെ തന്നെ ഫലം നൽകുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക. ഇത് ഇരട്ടി പേയ്മെന്റുകൾ ഒഴിവാക്കുന്നു.
- കോമ്പൻസേഷൻ പാറ്റേണുകൾ (Compensation Patterns): ഒരു മൾട്ടി-സ്റ്റെപ്പ് വർക്ക്ഫ്ലോ പകുതിയിൽ പരാജയപ്പെട്ടാൽ ഘട്ടങ്ങൾ റദ്ദാക്കാൻ ആവശ്യമായ ആക്ഷനുകൾ നിർവചിക്കുക.
മികച്ച ഒരു മോഡൽ മികച്ച തീരുമാനങ്ങൾ എടുക്കും. എന്നാൽ മികച്ച ഒരു മോഡലിന് ഒരു ക്രാഷ് പരിഹരിക്കാൻ കഴിയില്ല. വിശ്വാസ്യത എന്നത് എക്സിക്യൂഷന്റെ (execution) ഗുണമാണ്, തീരുമാനങ്ങളുടെ (decisions) ഗുണമല്ല.
മനുഷ്യന്റെ മേൽനോട്ടമില്ലാതെ പ്രവർത്തിക്കാൻ നിങ്ങൾക്ക് വിശ്വസിക്കാവുന്ന ഏജന്റുകൾ ഏറ്റവും ബുദ്ധിയുള്ളവരായിരിക്കില്ല. അവ വിശ്വസനീയമായ ഇൻഫ്രാസ്ട്രക്ചറിൽ പ്രവർത്തിക്കുന്നവരായിരിക്കും.
എന്ത് ചെയ്യണമെന്ന് ബുദ്ധിശക്തി തീരുമാനിക്കുന്നു. അത് യഥാർത്ഥത്തിൽ ശരിയായി നടപ്പിലാക്കുന്നുണ്ടെന്ന് അടിസ്ഥാന സൗകര്യങ്ങൾ ഉറപ്പാക്കുന്നു.
സ്രോതസ്സ്: https://dev.to/code_with_mwai/ai-agents-have-a-reliability-problem-nobody-is-talking-about-j40
ഐച്ഛികമായ പഠന കൂട്ടായ്മ: https://t.me/GyaanSetuAi