എന്റെ രണ്ട് AI ടാസ്ക്കുകൾ ഒരേ മൗസിനായി പോരാടിക്കൊണ്ടിരുന്നു
രണ്ട് ടാസ്ക്കുകൾ ഒരേ മൗസ് ഉപയോഗിക്കാൻ ശ്രമിക്കുന്നത് വരെ പാരലൽ ഏജന്റ് ഡെമോകൾ കാണാൻ നല്ലതാണ്.
ഒരു ടാസ്ക് ഒരു സൈറ്റിൽ ലോഗിൻ ചെയ്യുന്നു. മറ്റൊന്ന് ഒരു ബ്രൗസർ തുറക്കുന്നു. മൂന്നാമതൊന്ന് ഒരു ലളിതമായ ചോദ്യത്തിന് ഉത്തരം നൽകാൻ ശ്രമിക്കുന്നു. പെട്ടെന്ന്, സിസ്റ്റം തെറ്റായ സ്ഥലത്ത് ക്ലിക്ക് ചെയ്യുന്നു അല്ലെങ്കിൽ ഒരു പരാജയം റിപ്പോർട്ട് ചെയ്യുന്നു. ഇതൊരു ബുദ്ധിശക്തിയുടെ (intelligence) പ്രശ്നമല്ല. ഇതൊരു റിസോഴ്സ് (resource) പ്രശ്നമാണ്.
CliGate നിർമ്മിക്കുന്നതിനിടെ, ഡെസ്ക്ടോപ്പ് ഓട്ടോമേഷനെക്കുറിച്ച് ഞാൻ ഒരു കഠിനമായ പാഠം പഠിച്ചു.
കോഡ് ടാസ്ക്കുകൾ പാരലലായി പ്രവർത്തിപ്പിക്കാം. ഒരു റൺടൈം സെഷൻ പ്രവർത്തിക്കുമ്പോൾ തന്നെ നിങ്ങൾക്ക് കാലാവസ്ഥ പരിശോധിക്കാം. ബാക്ക്ഗ്രൗണ്ട് സമ്മറികൾ (summaries) മറ്റൊന്നിനെയും തടയേണ്ടതില്ല.
എന്നാൽ ഡെസ്ക്ടോപ്പ് വ്യത്യസ്തമാണ്. നിങ്ങൾക്ക് ഒരു കീബോർഡ്, ഒരു മൗസ്, ഒരു സ്ക്രീൻ മാത്രമേയുള്ളൂ. രണ്ട് ഏജന്റുകൾ ആ ഉപരിതലം തങ്ങളുടേതാണെന്ന് കരുതിയാൽ, അവർ പരസ്പരം തടസ്സപ്പെടുത്തും.
പുതിയൊരു ടാസ്ക് വരുമ്പോൾ പഴയത് റദ്ദാക്കുക എന്നതായിരുന്നു എന്റെ ആദ്യത്തെ ചിന്ത. അത് തെറ്റായിരുന്നു.
"എത്രത്തോളം പൂർത്തിയായി?" എന്ന് ചോദിക്കുന്ന ഒരു ഉപയോക്താവ് കാരണം ഒരു ലോഗിൻ പ്രക്രിയ നിലച്ചുപോകരുത്. കാലാവസ്ഥ അറിയാൻ ചോദിക്കുന്ന ഒരാൾ കാരണം ഒരു ഡെസ്ക്ടോപ്പ് ടാസ്ക് നിൽക്കാനും പാടില്ല. മറ്റൊരു ഏജന്റ് പ്രവർത്തിക്കുന്നത് കണ്ട്, അറിയാതെ സ്വന്തം ടാസ്ക് റദ്ദാക്കുന്നതാണ് ഏറ്റവും മോശമായ ബഗ്ഗ് (bug).
കൺകറൻസിയെ (concurrency) ഒരു പ്രോംപ്റ്റ് പ്രശ്നമായി കാണുന്നത് ഞാൻ നിർത്തി. അതിനെ ഒരു റിസോഴ്സ് പ്രശ്നമായി കാണാൻ ഞാൻ പഠിച്ചു.
ഞാൻ മൂന്ന് പുതിയ നിയമങ്ങൾ നിശ്ചയിച്ചു:
- സ്വതന്ത്രമായ ടാസ്ക്കുകൾ പാരലലായി പ്രവർത്തിക്കും.
- ഡെസ്ക്ടോപ്പ് ആവശ്യമായ ടാസ്ക്കുകൾ ക്യൂ (queue) ചെയ്യണം.
- ഉപയോക്താവ് ആവശ്യപ്പെടുമ്പോൾ മാത്രമേ റദ്ദാക്കൽ (cancellation) നടക്കൂ.
CliGate-ൽ, ഡെസ്ക്ടോപ്പ് ഇൻപുട്ട് ഒരു ലീസ് (lease) പോലെയാണ് പ്രവർത്തിക്കുന്നത്. ഒരു ടാസ്ക് മൗസ് ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, ആ ലീസ് അതിന്റെ കൈവശമാണ്. മറ്റ് ടാസ്ക്കുകൾ കാത്തിരിക്കണം.
പുതിയ ലോജിക് ഈ രീതിയിലാണ് പ്രവർത്തിക്കുന്നത്:
- ഒരു പുതിയ ടാസ്ക് വരുന്നു.
- അതിന് ഡെസ്ക്ടോപ്പ് ആവശ്യമുണ്ടോ?
- ഇല്ലെങ്കിൽ, അത് പാരലലായി പ്രവർത്തിപ്പിക്കുക.
- ഉണ്ടെങ്കിൽ, ഡെസ്ക്ടോപ്പ് ഒഴിവുണ്ടെങ്കിൽ അത് ഉപയോഗിക്കുക.
- ഉണ്ടെങ്കിൽ, ഡെസ്ക്ടോപ്പ് തിരക്കിലാണെങ്കിൽ അത് ക്യൂ ചെയ്യുക.
- ഉപയോക്താവ് നിർത്താൻ പറയുമ്പോൾ മാത്രം റദ്ദാക്കുക.
ഈ മാറ്റം ആശയക്കുഴപ്പമുണ്ടാക്കുന്ന പരാജയങ്ങളെ പ്രവചിക്കാവുന്ന പെരുമാറ്റമാക്കി മാറ്റി. വീണ്ടും വീണ്ടും ക്ലിക്ക് ചെയ്യാൻ ശ്രമിച്ച് കൂടുതൽ തടസ്സങ്ങൾ ഉണ്ടാക്കുന്നതിന് പകരം, അസിസ്റ്റന്റ് ഇപ്പോൾ സത്യം പറയുന്നു: "ഡെസ്ക്ടോപ്പ് തിരക്കിലാണ്. ഞാൻ ക്യൂവിൽ ആണ്, അത് ഒഴിവു വരുമ്പോൾ ഞാൻ തുടങ്ങും."
സ്വയം റദ്ദാക്കുന്നത് തടയാൻ ഞാൻ ഒരു നിയമം കൂടി ചേർത്തു. ഒരു ഏജന്റ് അതിന്റെ സ്വന്തം ആക്റ്റീവ് റണ്ണിനെ റദ്ദാക്കാനുള്ള ടാർഗെറ്റായി ഒരിക്കലും കണക്കാക്കരുത്.
AI ടൂളുകൾ നിർമ്മിക്കുമ്പോൾ നിങ്ങൾ അമിതമായി ബുദ്ധി കാണിക്കാൻ ശ്രമിച്ചാൽ അത് പലപ്പോഴും പരാജയപ്പെടും. ഉപയോക്താക്കൾക്ക് മാജിക് ആവശ്യമില്ല. അവർക്ക് ലളിതമായ ലോജിക് ആണ് വേണ്ടത്:
- ടാസ്ക്കുകൾ തമ്മിൽ തർക്കമില്ലെങ്കിൽ, അവ പ്രവർത്തിക്കാൻ അനുവദിക്കുക.
- ഒരു ഫിസിക്കൽ റിസോഴ്സിനായി അവ തമ്മിൽ തർക്കമുണ്ടെങ്കിൽ, അവ ക്യൂ ചെയ്യുക.
- സ്റ്റാറ്റസ് ചോദിച്ചാൽ അത് നൽകുക.
- നിർത്താൻ പറഞ്ഞാൽ നിർത്തുക.
നിങ്ങളുടെ AI ഡെസ്ക്ടോപ്പ് ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ ഇത് ഓർക്കുക: പാരലൽ ടാസ്ക്കുകൾ കുഴപ്പമില്ല, പക്ഷേ ഫിസിക്കൽ റിസോഴ്സുകൾക്ക് ഉടമസ്ഥാവകാശം (ownership) ആവശ്യമാണ്.
ഉറവിടം: https://dev.to/codekingai/my-two-ai-tasks-kept-fighting-for-the-same-mouse-1hij