20 വർഷത്തെ സപ്പോർട്ട് ടിക്കറ്റുകൾക്ക് മുന്നിൽ ഞാൻ ഒരു AI ഏജന്റിനെ വിന്യസിച്ചു
പത്ത് ലക്ഷം ടിക്കറ്റുകളുള്ള ഒരു ഹെൽപ്പ്ഡെസ്ക് സിസ്റ്റം ഞങ്ങളുടെ പക്കലുണ്ട്. കൂടാതെ 2,400 മാനുവലുകളും രണ്ട് വലിയ കോഡ്ബേസുകളും (codebases) ഉണ്ട്.
മുമ്പ് ഒരു പ്രശ്നം പരിഹരിച്ചിട്ടുണ്ടോ എന്ന് ഒരു ഡെവലപ്പർ ചോദിച്ചാൽ, ഉത്തരം എപ്പോഴും 'അതെ' എന്നായിരിക്കും. പക്ഷേ ആ വിവരങ്ങൾ എവിടെയാണെന്ന് കണ്ടെത്താൻ പ്രയാസമാണ്. സീനിയർ സ്റ്റാഫുകൾ തിരയുന്നതിനായി മണിക്കൂറുകൾ കളയുന്നു. ജൂനിയർമാർ ആഴ്ചകൾ പാഴാക്കുന്നു.
ഈ വിവരങ്ങളെല്ലാം കൈകാര്യം ചെയ്യാൻ ഞാൻ ഒരു AI ഏജന്റിനെ നിർമ്മിച്ചു. അത് ഇപ്പോൾ പ്രൊഡക്ഷനിൽ (production) ആണ്. യഥാർത്ഥത്തിൽ എന്താണ് സംഭവിച്ചതെന്ന് താഴെ നൽകുന്നു.
വിവരങ്ങൾ ശേഖരിക്കുക എന്നതായിരുന്നു പ്രയാസകരമായ കാര്യം അല്ല. എവിടെയാണ് തിരയേണ്ടതെന്ന് അറിയുന്നതായിരുന്നു വെല്ലുവിളി. ഏജന്റ് സ്വന്തമായി വിവരങ്ങൾ കെട്ടിച്ചമയ്ക്കുന്നത് (making things up) തടയുക എന്നത് അതിലും പ്രയാസകരമായിരുന്നു.
ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു:
- സ്വാഭാവിക ഭാഷയിലുള്ള (natural language) ഇൻപുട്ട് സ്വീകരിക്കുന്ന ഒരു ഏജന്റ്.
- ഇത് ഹെൽപ്പ്ഡെസ്ക് ഡാറ്റാബേസ്, പ്രോജക്റ്റ് ടൂളുകൾ, GitLab, SVN എന്നിവ വായിക്കുന്നു.
- മാനുവലുകളിലും പഴയ ടിക്കറ്റുകളിലും ഇത് വെക്റ്റർ സെർച്ചുകൾ (vector searches) നടത്തുന്നു.
- ഇതിന് .xlsx അല്ലെങ്കിൽ .docx പോലുള്ള ഫയലുകൾ നിർമ്മിക്കാൻ കഴിയും.
- ഇത് ആവശ്യമായ ടൂളുകൾ സ്വയം തിരഞ്ഞെടുക്കുകയും അവ ഒരേസമയം (parallel) പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു.
ഇതിന്റെ ആർക്കിടെക്ചർ ലളിതമാണ്. പ്രധാന ആപ്പിൽ നിന്ന് വേറിട്ട് ഒരു Node കണ്ടെയ്നറിലാണ് (container) ഇത് പ്രവർത്തിക്കുന്നത്. പരാജയങ്ങൾ ഒറ്റപ്പെട്ടതാക്കാൻ (failure isolation) വേണ്ടിയാണ് ഞാൻ ഇങ്ങനെ ചെയ്തത്. AI പരാജയപ്പെട്ടാലും ഹെൽപ്പ്ഡെസ്ക് തടസ്സമില്ലാതെ പ്രവർത്തിക്കും.
പ്രോംപ്റ്റിനെ (prompt) കുറിച്ചായിരുന്നു എനിക്ക് ലഭിച്ച ഏറ്റവും വലിയ പാഠം. വലിയൊരു ടെക്സ്റ്റ് ബ്ലോക്ക് ഉപയോഗിച്ചാണ് ഞാൻ തുടങ്ങിയത്. അത് 40,000 ടോക്കണുകൾ ഉണ്ടായിരുന്നു. അത് പരിപാലിക്കാൻ പ്രയാസമായിരുന്നു, കൂടാതെ ഏജന്റിന്റെ ശ്രദ്ധയും നഷ്ടപ്പെട്ടു.
ഞാൻ എന്റെ രീതി മാറ്റി. പ്രോംപ്റ്റിനെ ചെറിയ സ്കിൽ ഫയലുകളായി (skill files) ഞാൻ വിഭജിച്ചു.
- ടിക്കറ്റ് സെർച്ച് ഒരു ഫയൽ.
- കോഡ് ഹിസ്റ്ററി മറ്റൊന്ന്.
- പ്രോജക്റ്റ് മാനേജ്മെന്റ് മൂന്നാമത്തേത്.
മെയിൻ പ്രോംപ്റ്റ് ഒരു റൂട്ടറായി (router) പ്രവർത്തിക്കുന്നു. ആവശ്യമുള്ളപ്പോൾ മാത്രം അത് ഒരു സ്കിൽ ലോഡ് ചെയ്യുന്നു. ഇത് ഓരോ റിക്വസ്റ്റിലും ടോക്കണുകളുടെ എണ്ണം 40,000-ൽ നിന്ന് 8,000 ആയി കുറച്ചു. ഏജന്റ് കൃത്യമായ ജോലിയിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കാനും കോഡ് എളുപ്പത്തിൽ അപ്ഡേറ്റ് ചെയ്യാനും ഇത് സഹായിക്കുന്നു.
ഞാൻ യൂസർ പ്രൊഫൈലുകളും (user profiles) ചേർത്തു. ഒരു ഡെവലപ്പർക്ക് കോഡ് പാത്തുകൾ (code paths) ലഭിക്കുന്നു. ഒരു പ്രോജക്റ്റ് മാനേജർക്ക് സ്റ്റാറ്റസ് സംഗ്രഹങ്ങൾ (status summaries) ലഭിക്കുന്നു. ആരാണ് ചോദിക്കുന്നത് എന്ന് പ്രത്യേകം പറയേണ്ടതില്ലാതെ തന്നെ ഏജന്റിന് മനസ്സിലാക്കാൻ സാധിക്കും.
ഇത് പൂർണ്ണമല്ല. ഞങ്ങൾ ചില പരാജയങ്ങൾ നേരിട്ടിട്ടുണ്ട്:
- Hallucinations: ഏജന്റ് വ്യാജ URL-കൾ നിർമ്മിച്ചു. പരിഹാരം: കൃത്യമായ പാറ്റേണുകൾ നിശ്ചയിക്കുക അല്ലെങ്കിൽ ലുക്കപ്പ് (lookup) നിർബന്ധമാക്കുക.
- Memory loss: നീളമുള്ള ചാറ്റുകളിൽ ഏജന്റ് നിയമങ്ങൾ മറന്നുപോയി. പരിഹാരം: ഓരോ ഘട്ടത്തിലും ഒരു സ്ട്രക്ചേർഡ് ടു-ഡൂ ലിസ്റ്റ് (structured to-do list) ഉൾപ്പെടുത്തുക.
- Infinite loops: ഏജന്റ് അമിതമായി ടൂൾ കോളുകൾ നടത്തി. പരിഹാരം: ഓരോ റിക്വസ്റ്റിനും കൃത്യമായ പരിധി (budget) നിശ്ചയിക്കുക.
- Safety: ഉപയോക്താക്കൾ ഏജന്റിനെ കബളിപ്പിക്കാൻ ശ്രമിച്ചു. പരിഹാരം: സുരക്ഷയ്ക്കായി പ്രോംപ്റ്റുകളെ മാത്രം ആശ്രയിക്കരുത്. ഇൻഫ്രാസ്ട്രക്ചറിൽ റീഡ്-ഒൺലി (read-only) ഡാറ്റാബേസ് ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കുക.
യഥാർത്ഥ ജോലി എന്നത് ആഴ്ചതോറുമുള്ള ഒരു ലൂപ്പ് (loop) ആണ്. ഞാൻ ലോഗുകൾ (logs) വായിക്കുന്നു. സെഷനുകൾ സ്കോർ ചെയ്യുന്നു. സ്കില്ലുകളിൽ മാറ്റം വരുത്തുന്നു. പ്രൊഫൈലുകൾ അപ്ഡേറ്റ് ചെയ്യുന്നു.
നിങ്ങൾ ഈ ലൂപ്പ് ഒഴിവാക്കിയാൽ, അത് വെറുമൊരു ഡെമോ മാത്രമായിരിക്കും. എന്നാൽ നിങ്ങൾ ഇത് കൃത്യമായി ചെയ്താൽ, അത് ഒരു ഉൽപ്പന്നമായി മാറും.
ലക്ഷ്യം വേഗത്തിലുള്ള ഉത്തരങ്ങൾ നൽകുക എന്നത് മാത്രമല്ല. സ്ഥാപനത്തിന്റെ അറിവ് (institutional knowledge) അവിടെത്തന്നെ നിലനിർത്തുക എന്നതാണ് ലക്ഷ്യം. ഒരാൾ ജോലിയിൽ നിന്ന് പോകുമ്പോഴും അവരുടെ അറിവ് ട്രാൻസ്ക്രിപ്റ്റുകളിൽ (transcripts) അവശേഷിക്കുന്നു.
നിങ്ങളുടെ നിർമ്മാണത്തിനായുള്ള സംഗ്രഹം:
- നിങ്ങളുടെ സ്വന്തം ഹിസ്റ്ററി ഉപയോഗിച്ച് RAG ഉപയോഗിച്ച് തുടങ്ങുക.
- ഒരു വലിയ പ്രോംപ്റ്റിന് പകരം ലേസി-ലോഡഡ് (lazy-loaded) സ്കിൽ ഫയലുകൾ ഉപയോഗിക്കുക.
- പേഴ്സണലൈസ്ഡ് കോൺടെക്സ്റ്റിനായി (personalized context) യൂസർ പ്രൊഫൈലുകൾ ഉപയോഗിക്കുക.
- AI-യെ സ്വന്തം കണ്ടെയ്നറിൽ ഒറ്റപ്പെടുത്തുക.
- നിർദ്ദേശങ്ങളിലൂടെയല്ല, ഇൻഫ്രാസ്ട്രക്ചറിലൂടെ സുരക്ഷ ഉറപ്പാക്കുക.
- എല്ലാ ആഴ്ചയും നിങ്ങളുടെ ലോഗുകൾ പരിശോധിക്കുക.
Optional learning community: https://t.me/GyaanSetuAi
