ഒരു സ്വയം പ്രവർത്തിക്കുന്ന (autonomous) AI ഏജന്റ് ഏകദേശം ഇരുപത് മിനിറ്റിനുള്ളിൽ ഒരു സമ്പൂർണ്ണ Retrieval-Augmented Generation (RAG) സ്റ്റാക്ക് നിർമ്മിക്കുകയും, ഒരു വരി പോലും മനുഷ്യൻ കോഡ് എഴുതാതെ ഒരു ഡ്രാഫ്റ്റ് പുൾ റിക്വസ്റ്റ് (pull request) തുറക്കുകയും ചെയ്തു.
എന്തുകൊണ്ടാണ് ഈ “ലൂപ്പ്” (loop) പ്രധാനമാകുന്നത്
ഒരു RAG സ്റ്റാക്ക് നിർമ്മിക്കുക എന്നത് സാധാരണയായി ഒരു സെർച്ച് എഞ്ചിൻ, ഒരു എംബെഡിംഗ് മോഡൽ, ഒരു ലാംഗ്വേജ് മോഡൽ, കൂടാതെ അവയെ തമ്മിൽ ബന്ധിപ്പിക്കുന്ന ഗ്ലൂ കോഡ് (glue code) എന്നിവ കൂട്ടിച്ചേർക്കുക എന്നാണ് അർത്ഥമാക്കുന്നത്. ഡെവലപ്പർമാർ ഹെം ചാർട്ടുകൾ (Helm charts) ക്രമീകരിക്കാനും, ഓതന്റിക്കേഷൻ പിശകുകൾ പരിഹരിക്കാനും, മോഡൽ പേരുകളിലെ പൊരുത്തക്കേടുകൾ കണ്ടെത്താനും മണിക്കൂറുകൾ പാഴാക്കുന്നു. ഈ പരീക്ഷണത്തിൽ, സ്വയം പ്രവർത്തിക്കുന്ന ഏജന്റ് കോഡ് എഴുതുന്നതിന് മുമ്പ് മനുഷ്യനും ഏജന്റും തമ്മിലുള്ള ഒരു ധാരണ ഉറപ്പാക്കുന്ന അഞ്ച് ഘട്ടങ്ങളുള്ള ഒരു ലൂപ്പ് പിന്തുടർന്നു.
| ഘട്ടം | എന്ത് സംഭവിക്കുന്നു |
|---|---|
| നിർദ്ദേശം (Proposal) | ഏജന്റ് പ്രോംപ്റ്റ് വായിക്കുകയും ഒരു വ്യക്തമായ പ്ലാൻ തയ്യാറാക്കുകയും ചെയ്യുന്നു, എന്നാൽ ഇതുവരെ കോഡ് നിർമ്മിക്കുന്നില്ല. |
| ധാരണ (Agreement) | ഉപയോക്താവ് പ്ലാൻ പരിശോധിക്കുകയും അത് അംഗീകരിക്കുകയോ മാറ്റങ്ങൾ ആവശ്യപ്പെടുകയോ ചെയ്യുന്നു. |
| നടപ്പിലാക്കൽ (Implementation) | ഏജന്റ് ഒരു പുതിയ ബ്രാഞ്ചിൽ ഫീച്ചർ നിർമ്മിക്കുന്നു. |
| ഡ്രാഫ്റ്റ് ഗേറ്റ് (Draft Gate) | ഏജന്റ് സ്വന്തമായി ലിന്റിംഗും (linting) ടെസ്റ്റ് സ്യൂട്ടും പ്രവർത്തിപ്പിക്കുകയും കണ്ടെത്തുന്ന പിശകുകൾ പരിഹരിക്കുകയും ചെയ്യുന്നു. |
| ഡ്രാഫ്റ്റ് PR (Draft PR) | കോഡ് പുഷ് ചെയ്യുകയും അന്തിമ മനുഷ്യ പരിശോധനയ്ക്കായി ഒരു പുൾ റിക്വസ്റ്റ് തുറക്കുകയും ചെയ്യുന്നു. |
മിക്ക AI അസിസ്റ്റഡ് കോഡിംഗ് ടൂളുകളും നേരിട്ട് നടപ്പിലാക്കലിലേക്ക് (implementation) കടക്കുകയാണ് ചെയ്യുന്നത്, ഇത് പലപ്പോഴും ലക്ഷ്യത്തിൽ നിന്ന് വ്യതിചലിച്ച കോഡുകൾ ഉണ്ടാക്കാൻ കാരണമാകുന്നു. ഒരു വ്യക്തമായ ധാരണാ ഘട്ടം (agreement step) ഉൾപ്പെടുത്തുന്നതിലൂടെ, ഈ ലൂപ്പ് അന്ധമായ പ്രവർത്തനങ്ങളെ തടയുകയും ഒരു കമിറ്റ് (commit) ചെയ്യുന്നതിന് മുമ്പ് പ്രോജക്റ്റിനെ നിയന്ത്രിക്കാൻ ഉപയോക്താവിനെ അനുവദിക്കുകയും ചെയ്യുന്നു.
രൂപപ്പെട്ട സ്റ്റാക്ക്
ഇരുപത് മിനിറ്റിനുള്ളിൽ ഏജന്റ് പ്രൊഡക്ഷൻ റെഡി ആയ ഒരു RAG പൈപ്പ്ലൈൻ സജ്ജമാക്കി:
- ഹൈബ്രിഡ് സെർച്ചിനായി (vector + keyword) ക്രമീകരിച്ച OpenSearch 3.7.
- റിട്രീവൽ-ഓഗ്മെന്റഡ് മറുപടികൾക്കായി ജനറേറ്റീവ് എഞ്ചിനായി പ്രവർത്തിക്കുന്ന ലോക്കൽ Ollama LLM.
- ലാംഗ്വേജ് മോഡലിന് നാല് കസ്റ്റം ടൂളുകൾ ലഭ്യമാക്കുന്ന FastMCP server.
- കണ്ടെയ്നർ ബിൽഡുകൾ, Kubernetes മാനിഫെസ്റ്റുകൾ, സർവീസ് വിന്യാസം (deployment) എന്നിവ ഓട്ടോമേറ്റ് ചെയ്യുന്ന Skaffold and Helm സ്ക്രിപ്റ്റുകൾ.
മുപ്പത് ലേഖനങ്ങൾ ഉപയോഗിച്ച് പൈപ്പ്ലൈൻ സജ്ജീകരിച്ചതിനാൽ, എൻഡ്-ടു-എൻഡ് റിട്രീവലും ജനറേഷനും ഉടൻ തന്നെ പരിശോധിക്കാൻ സാധിച്ചു. ഓരോ ഘടകവും ക്രമീകരിക്കാൻ ഒരു ഡെവലപ്പർ സാധാരണയായി ഒരു ദിവസം മുഴുവൻ ചെലവഴിക്കും; ഈ വേഗത അത്ഭുതപ്പെടുത്തുന്നതാണ്.
പരാജയപ്പെടുമായിരുന്ന പിശകുകൾ
സാധാരണയായി ഒരു മനുഷ്യൻ നടത്തുന്ന വിന്യാസത്തെ (deployment) തടസ്സപ്പെടുത്തുന്ന അഞ്ച് വ്യത്യസ്ത പരാജയങ്ങളിലൂടെ ഏജന്റിന്റെ ആത്മവിശ്വാസം പരീക്ഷിക്കപ്പെട്ടു:
- OpenSearch ക്രെഡൻഷ്യൽ പിശകുകൾ – ഏജന്റ് തെറ്റായ സീക്രട്ട് കീ നൽകിയതിനാൽ ക്ലസ്റ്റർ കണക്ഷനുകൾ നിരസിച്ചു.
- ഒരു URL-ലെ Regex ടൈപ്പോ – ഒരു ചെറിയ അക്ഷരത്തെറ്റ് ഒരു സാധുവായ എൻഡ്പോയിന്റിനെ (endpoint) പ്രവർത്തനരഹിതമായ ലിങ്കാക്കി മാറ്റി, ഇത് ഡാറ്റ ലോഡറെ തകരാറിലാക്കി.
- മോഡൽ പേര് പൊരുത്തക്കേട് – കണക്റ്റർ മറ്റൊരു Ollama മോഡൽ ഐഡന്റിഫയർ പ്രതീക്ഷിച്ചതിനാൽ “model not found” പിശകുകൾ ഉണ്ടായി.
- JVM മെമ്മറി പരിധികൾ – ബൾക്ക് ഇൻഡക്സിംഗ് കാരണം Java heap തീർന്നുപോയി, ഇത് out-of-memory ക്രാഷുകൾക്ക് കാരണമായി.
- മോഡൽ ചങ്കുകൾ (chunks) അബദ്ധത്തിൽ നീക്കം ചെയ്തു – ഒരു ക്ലീനപ്പ് സ്ക്രിപ്റ്റ് അത്യാവശ്യ ഫയലുകളെ ഡ്യൂപ്ലിക്കേറ്റുകളായി തെറ്റായി തിരിച്ചറിയുകയും അവ നീക്കം ചെയ്യുകയും ചെയ്തു, ഇത് മുഴുവൻ പൈപ്പ്ലൈനെയും അപകടത്തിലാക്കി.
ഏജന്റ് കുടുങ്ങിയപ്പോൾ, “loop-police” ഇടപെട്ടു
ലൂപ്പിന്റെ ആരോഗ്യം നിരീക്ഷിക്കുന്നതിനായി loop-police എന്നൊരു വാച്ച്ഡോഗ് (watchdog) കൂടെയുണ്ട്. ഡിലീഷൻ ബഗ്ഗ് (deletion bug) സമയത്ത് ഏജന്റ് അവസാനിക്കാത്ത ഒരു ചക്രത്തിൽ (non-terminating cycle) അകപ്പെട്ടപ്പോൾ, loop-police ആ തടസ്സം കണ്ടെത്തി, നിലവിലുള്ള ബ്രാഞ്ച് റദ്ദാക്കി, വീണ്ടും 'Agreement' ഘട്ടത്തിലേക്ക് മാറാൻ നിർബന്ധിച്ചു. തുടർന്ന് ഏജന്റ് ആ തെറ്റ് സമ്മതിക്കുകയും, കേടുപാടുകൾ സംഭവിച്ച അവസ്ഥ (corrupted state) ക്ലിയർ ചെയ്യുകയും, പൈപ്പ്ലൈൻ ആദ്യം മുതൽ വീണ്ടും നിർമ്മിക്കുകയും ചെയ്തു. ആദ്യത്തെ പ്ലാൻ അംഗീകരിക്കുന്നതിന് ശേഷമുള്ള മനുഷ്യ ഇടപെടലുകൾ ഇല്ലാതെ തന്നെ ഈ സെൽഫ്-ഹീലിംഗ് (self-healing) ചക്രം പൂർത്തിയായി.
ഇത് ഡെവലപ്പർമാർക്ക് എന്ത് അർത്ഥമാക്കുന്നു
- നിയന്ത്രണം വിട്ടുകൊടുക്കാതെ തന്നെ വേഗത. എൻജിനീയർമാർക്ക് തങ്ങളുടെ ഉദ്ദേശ്യം വ്യക്തമാക്കാനും, തുടർന്ന് മനുഷ്യൻ അംഗീകരിച്ച ബ്ലൂപ്രിന്റ് പിന്തുടരുന്ന ഒരു സ്വയം പ്രവർത്തിക്കുന്ന സംവിധാനത്തിന് നിർവ്വഹണം കൈമാറാനും ഈ ലൂപ്പ് അനുവദിക്കുന്നു.
- ഉൾക്കൊള്ളിച്ചിട്ടുള്ള സുരക്ഷാ സംവിധാനങ്ങൾ. ഓട്ടോമേറ്റഡ് ലിന്റിംഗ്, ടെസ്റ്റിംഗ്, കൂടാതെ നിയന്ത്രണം വിട്ട ലൂപ്പുകളെ തടയാൻ കഴിയുന്ന ഒരു വാച്ച്ഡോഗ് എന്നിവ നിശബ്ദമായ പരാജയങ്ങളുടെ (silent failures) സാധ്യത കുറയ്ക്കുന്നു.
- പ്രവേശനം എളുപ്പമാക്കുന്നു. Helm, Kubernetes അല്ലെങ്കിൽ വെക്റ്റർ സെർച്ച് എന്നിവയിൽ ആഴത്തിലുള്ള അറിവില്ലാത്ത ടീമുകൾക്ക് തങ്ങൾക്ക് ആവശ്യമുള്ളത് ലളിതമായ ഭാഷയിൽ വിവരിച്ചുകൊണ്ട് ഒരു ഫങ്ഷണൽ സ്റ്റാക്ക് സജ്ജമാക്കാൻ കഴിയും.
ഈ സമീപനം എല്ലാ പ്രശ്നങ്ങൾക്കും ഒരു പരിഹാരമല്ല (silver bullet). അപ്രായോഗികമായ പ്രതീക്ഷകളോ സുരക്ഷാ ആശങ്കകളോ കണ്ടെത്താൻ 'Agreement' ഘട്ടത്തിൽ ഇപ്പോഴും അറിവുള്ള ഒരു റിവ്യൂവർ ആവശ്യമാണ്. ഈ ലൂപ്പ് ഡൊമെയ്ൻ വൈദഗ്ധ്യത്തിന് (domain expertise) പകരമല്ല; മറിച്ച് ആവർത്തന സ്വഭാവമുള്ള പ്ലംബിംഗ് ജോലികളെ (repetitive plumbing work) ആവർത്തിക്കാവുന്ന ഒരു പാറ്റേണായി ഇത് മാറ്റുന്നു എന്ന് മാത്രം.
