What I Learned Running AI Agents in Production
ഞാൻ AI സിസ്റ്റങ്ങൾ നിർമ്മിക്കുന്നു. കോഡ് വിതരണം ചെയ്യുന്ന എഞ്ചിനീയർമാരുമായി ഞാൻ സംസാരിക്കാറുണ്ട്. ആകർഷകമായ ഡെമോകളും യഥാർത്ഥ പ്രൊഡക്ഷൻ സിസ്റ്റങ്ങളും തമ്മിൽ വലിയൊരു വ്യത്യാസമുണ്ട്.
ഇപ്പോൾ ആളുകൾ എല്ലാത്തിനെയും ഏജന്റ് എന്ന് വിളിക്കുന്നു. ഒരു ലൂപ്പ് ഉള്ള സ്ക്രിപ്റ്റിനെ ഏജന്റ് എന്ന് വിളിക്കുന്നു. മെമ്മറിയുള്ള ഒരു ചാറ്റ്ബോട്ടിനെ ഏജന്റ് എന്ന് വിളിക്കുന്നു. ഈ തെറ്റ് മോശം എഞ്ചിനീയറിംഗിലേക്ക് നയിക്കുന്നു.
ടീമുകൾ ലളിതമായ ജോലികൾക്ക് അമിതമായി എഞ്ചിനീയറിംഗ് നടത്തുന്നു. ഒരു നല്ല പ്രോംപ്റ്റ് മാത്രം മതിയാകുന്ന വർക്ക്ഫ്ലോകളിൽ അവർ സങ്കീർണ്ണമായ orchestration കൂട്ടിച്ചേർക്കുന്നു.
ഒരു ഏജന്റിന് വെറുമൊരു നിർദ്ദേശം (instruction) മാത്രമല്ല, ഒരു ലക്ഷ്യം (objective) കൂടി ഉണ്ടായിരിക്കണം. അടുത്തതായി എന്തുചെയ്യണമെന്ന് അത് തീരുമാനിക്കണം. പരാജയങ്ങൾ കൈകാര്യം ചെയ്യാനും അത് കഴിയണം. എപ്പോഴാണ് ജോലി പൂർത്തിയായതെന്ന് അതിന് അറിയണം.
മറ്റെല്ലാം വെറും ഫംഗ്ഷൻ കോളുകൾ (function calls) മാത്രമാണ്.
• ഓരോ ഘട്ടത്തിലും ഒരു മനുഷ്യൻ മാർഗ്ഗനിർദ്ദേശം നൽകേണ്ടി വരുന്നുണ്ടെങ്കിൽ, അത് ഒരു ചാറ്റ് ഇന്റർഫേസ് ആണ്. • ഒരു ടൂൾ കോൾ പരാജയപ്പെട്ടാൽ സിസ്റ്റം അതിൽ നിന്ന് തിരിച്ചു വരുന്നുണ്ടെങ്കിൽ, അത് ഒരു ഏജന്റ് ആണ്. • ഒരു ലക്ഷ്യത്തെ ഉപദൗത്യങ്ങളായി (subtasks) വിഭജിക്കാൻ സിസ്റ്റത്തിന് കഴിയുന്നുണ്ടെങ്കിൽ, അത് യഥാർത്ഥ ഏജന്റ് ആണ്.
യഥാർത്ഥ ഏജന്റ് വിന്യാസങ്ങൾ (deployments) പരിമിതമാണ്. ഡോക്യുമെന്റ് എക്സ്ട്രാക്ഷൻ അല്ലെങ്കിൽ കോഡ് റിവ്യൂ പോലെ ഒരു കാര്യം മാത്രം അവർ മികച്ച രീതിയിൽ ചെയ്യുന്നു. അവ പൊതുവായ റീസണിംഗ് എഞ്ചിനുകൾ (general reasoning engines) അല്ല.
വിജയകരമായ ടീമുകൾ മൂന്ന് കാര്യങ്ങളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു:
- Tool design: ഏജന്റ് വിളിക്കുന്ന കാര്യങ്ങൾക്കായി വൃത്തിയുള്ള ഇന്റർഫേസുകൾ.
- Failure handling: ഒരു ടൂൾ ഒന്നും തിരികെ നൽകാതിരിക്കുമ്പോൾ എന്ത് സംഭവിക്കുന്നു എന്നത്.
- Observability: ഒരു ഏജന്റ് എന്തുകൊണ്ടാണ് ഒരു പ്രത്യേക തീരുമാനം എടുത്തതെന്ന് കണ്ടെത്തുക.
LangChain അല്ലെങ്കിൽ CrewAI പോലുള്ള ഫ്രെയിംവർക്കുകൾ എല്ലാ മാസവും മാറിക്കൊണ്ടിരിക്കുന്നു. പാറ്റേണുകളേക്കാൾ പ്രാധാന്യം ഫ്രെയിംവർക്കുകൾക്കല്ല.
വിജയിക്കാൻ ഈ പാറ്റേണുകൾ ഉപയോഗിക്കുക:
- Plan then execute: പ്ലാനിംഗിനായി ഒരു ഘട്ടവും നടപ്പിലാക്കുന്നതിനായി (execution) മറ്റൊരു ഘട്ടവും ഉപയോഗിക്കുക.
- Separate retrieval from reasoning: കോൺടെക്സ്റ്റ് ശേഖരിക്കുന്നതും അത് ഉപയോഗിക്കുന്നതും രണ്ട് വ്യത്യസ്ത ജോലികളാണ്.
- Explicit handoffs: ഒരു ഏജന്റ് മറ്റൊരു ഏജന്റിന് ജോലി കൈമാറുമ്പോൾ സ്ട്രക്ചേർഡ് ലോഗുകൾ ഉപയോഗിക്കുക.
RAG ഒരു സ്റ്റാൻഡേർഡ് ആണ്, എന്നാൽ മിക്കവരും ചങ്കിംഗിൽ (chunking) പരാജയപ്പെടുന്നു. നിങ്ങൾ ടെക്സ്റ്റ് മോശമായി വിഭജിച്ചാൽ, മോഡലിന് കോൺടെക്സ്റ്റ് നഷ്ടപ്പെടും. നിങ്ങളുടെ RAG ഫലങ്ങൾ ഉപയോഗശൂന്യമാണെങ്കിൽ, മോഡലിനെ കുറ്റപ്പെടുത്തുന്നതിന് മുമ്പ് നിങ്ങളുടെ മെറ്റാഡാറ്റയും ചങ്കിംഗ് സ്ട്രാറ്റജിയും പരിശോധിക്കുക.
മോഡലുകൾ കൂടുതൽ മെച്ചപ്പെടുകയും വില കുറയുകയും ചെയ്യും. ഇത് അടിസ്ഥാനപരമായ എഞ്ചിനീയറിംഗ് വെല്ലുവിളിയെ മാറ്റുന്നില്ല. നിങ്ങൾ ശ്രദ്ധിക്കാത്ത സമയത്തും ശരിയായി പ്രവർത്തിക്കുന്ന സിസ്റ്റങ്ങൾ നിങ്ങൾ നിർമ്മിക്കണം.
ഗവേണൻസിനും (governance) ഒബ്സർവബിലിറ്റിക്കും (observability) പ്രാധാന്യം നൽകുക. മറ്റുള്ളവർക്ക് വിശ്വസിക്കാൻ കഴിയുന്ന സിസ്റ്റങ്ങൾ നിർമ്മിക്കുന്നവരായിരിക്കും യഥാർത്ഥത്തിൽ പ്രസക്തരായ എഞ്ചിനീയർമാർ. ഇത് സിസ്റ്റംസ് ഡിസൈൻ ആണ്, മോഡൽ റിസർച്ച് അല്ല.
Source: https://dev.to/aibughunter/what-i-learned-after-running-ai-agents-in-production-for-a-year-49n
