ഒരു AI ഏജന്റിനുള്ളിൽ
AI ഏജന്റ് ഡെമോകൾ വീഡിയോകളിൽ കാണാൻ മികച്ചതാണ്. എന്നാൽ യഥാർത്ഥ ചോദ്യങ്ങൾ ചോദിക്കുമ്പോൾ അവ പലപ്പോഴും പരാജയപ്പെടുന്നു.
ഏജന്റ് തെറ്റായ കാര്യങ്ങൾ ചെയ്യുന്നു. തീരുമാനങ്ങൾ മറന്നുപോകുന്നു. നിലവിലില്ലാത്ത ടൂളുകൾ വിളിക്കുന്നു. അനന്തമായി ലൂപ്പുകളിൽ കുടുങ്ങുന്നു. ഇവ മോഡലുകളുടെ പരാജയമല്ല, മറിച്ച് വർക്ക്ഫ്ലോയുടെ (workflow) പരാജയങ്ങളാണ്.
ഒരു ഏജന്റ് എന്നത് ഒരു സോഫ്റ്റ്വെയർ വർക്ക്ഫ്ലോ ആണ്. ഒരു ലാംഗ്വേജ് മോഡൽ അടുത്ത ഘട്ടം തിരഞ്ഞെടുക്കുകയും ടൂളുകൾ ഉപയോഗിക്കുകയും ചെയ്യുന്നു. ബുദ്ധിശക്തി എന്നത് മോഡലിൽ മാത്രമല്ല, അതിന്റെ ഓർക്കസ്ട്രേഷനിലും (orchestration) ആണ് അടങ്ങിയിരിക്കുന്നത്.
ഓരോ പ്രൊഡക്ഷൻ ഏജന്റും അഞ്ച് തൂണുകളെ ആശ്രയിച്ചിരിക്കുന്നു:
- പ്ലാനിംഗ് (Planning): പ്രവർത്തിക്കുന്നതിന് മുമ്പ് ചിന്തിക്കുക.
- ടൂൾ ഉപയോഗം (Tool Use): ലോകവുമായി ഇടപഴകുക.
- മെമ്മറി (Memory): കോൺടെക്സ്റ്റും വസ്തുതകളും സംഭരിക്കുക.
- നിയന്ത്രണങ്ങൾ (Constraints): അതിർവരമ്പുകളും ബജറ്റുകളും നിശ്ചയിക്കുക.
- വെരിഫിക്കേഷൻ (Verification): ചെയ്ത ജോലി ശരിയാണെന്ന് തെളിയിക്കുക.
പ്ലാനിംഗ് രീതികൾ (Planning Styles)
സാധാരണ ഏജന്റുകൾ നേരിട്ട് പ്രവർത്തിക്കാൻ ശ്രമിക്കുന്നു. ഇത് ഹാലുസിനേഷനുകളിലേക്ക് (hallucinations) നയിക്കുന്നു. ഒരു നല്ല ഏജന്റ് ആദ്യം പ്ലാൻ ചെയ്യുന്നു.
- പ്ലാൻ-എന്നിട്ട്-എക്സിക്യൂട്ട് (Plan-then-execute): മോഡൽ ഒരു പൂർണ്ണമായ പ്ലാൻ എഴുതുന്നു. ഇത് പരിശോധിക്കാൻ (audit) എളുപ്പമാണ്, എന്നാൽ യാഥാർത്ഥ്യം മാറുമ്പോൾ പ്ലാനിൽ മാറ്റം വരുത്തുന്നത് പ്രയാസകരമാണ്.
- ReAct (Reason + Act): മോഡൽ ഒരു ലൂപ്പിലൂടെ ചിന്തിക്കുകയും പ്രവർത്തിക്കുകയും നിരീക്ഷിക്കുകയും ചെയ്യുന്നു. ഇത് കൂടുതൽ അനുയോജ്യമാണെങ്കിലും (adaptive), ടോക്കണുകളും സമയവും കൂടുതൽ ചെലവാകുന്നു.
ടൂൾ ഉപയോഗം (Tool Use)
ടൂളുകൾ ഇല്ലാതെ ഒരു ഏജന്റ് വെറുമൊരു ചാറ്റ്ബോട്ട് മാത്രമാണ്. ഒരു ടൂളിന് ഒരു പേര്, ഒരു JSON സ്കീമും, ഒരു ഫങ്ക്ഷനും ആവശ്യമാണ്.
വിവരണങ്ങൾ (descriptions) അടിസ്ഥാനമാക്കിയാണ് മോഡലുകൾ ടൂളുകൾ തിരഞ്ഞെടുക്കുന്നത്. നിങ്ങളുടെ വിവരണം അവ്യക്തമാണെങ്കിൽ ഏജന്റ് പരാജയപ്പെടും. വിവരണങ്ങളെ സ്പെക് ഷീറ്റുകൾ (spec sheets) പോലെ കാണുക. ഒരു ടൂൾ എന്തിനുവേണ്ടിയുള്ളതാണെന്നും എന്തിനല്ലെന്നും കൃത്യമായി നിർവചിക്കുക.
ടൂൾ കോളുകൾ എപ്പോഴും പരിശോധിക്കുക (validate). മോഡൽ തെറ്റായ ആർഗ്യുമെന്റുകൾ (arguments) അയക്കുകയാണെങ്കിൽ, ആ കോൾ നിരസിക്കുകയും ആ പിശക് (error) തിരികെ മോഡലിന് നൽകുകയും ചെയ്യുക. ഇത് ലൂപ്പിനിടയിൽ തന്നെ ഏജന്റിന് പഠിക്കാൻ സഹായിക്കുന്നു.
മെമ്മറി (Memory)
മെമ്മറി എന്നത് ഒരൊറ്റ കാര്യമല്ല.
- വർക്കിംഗ് മെമ്മറി (Working Memory): നിലവിലെ സംഭാഷണവും ടൂൾ ഫലങ്ങളും.
- സ്ക്രാച്ച്പാഡ് (Scratchpad): ഏജന്റിന് സ്വയം കുറിപ്പുകൾ എഴുതാനുള്ള ഇടം.
- ലോംഗ്-ടേം മെമ്മറി (Long-term Memory): ഭാവി സെഷനുകൾക്കായി വസ്തുതകൾ സംഭരിക്കുക.
വെക്റ്റർ ഡാറ്റാബേസുകളെ (vector databases) മാത്രം ആശ്രയിക്കരുത്. മാർക്ക്ഡൗൺ ഫയലുകൾ ഉപയോഗിച്ചുള്ള ഫയൽ അധിഷ്ഠിത മെമ്മറി പലപ്പോഴും മികച്ചതാണ്. ഇത് പരിശോധിക്കാനും (audit), എഡിറ്റ് ചെയ്യാനും, ഗ്രെപ്പ് (grep) ചെയ്യാനും എളുപ്പമാണ്.
നിയന്ത്രണങ്ങളും സുരക്ഷയും (Constraints and Safety)
പ്രൊഡക്ഷൻ ഏജന്റുകൾക്ക് ഗാർഡ്റെയിലുകൾ (guardrails) ആവശ്യമാണ്. ഇവ നാലെണ്ണം ഉപയോഗിക്കുക:
- ടൂൾ അലൗലിസ്റ്റുകൾ (Tool allowlists): നിശ്ചിത പേരുകളുള്ള ടൂളുകൾ മാത്രം അനുവദിക്കുക.
- ഇറ്ററേഷൻ ബജറ്റുകൾ (Iteration budgets): അനന്തമായ ലൂപ്പുകൾ ഒഴിവാക്കാൻ ഘട്ടങ്ങളുടെ എണ്ണം പരിമിതപ്പെടുത്തുക.
- ടോക്കൺ ബജറ്റുകൾ (Token budgets): ആകെ ടോക്കണുകൾ പരിമിതപ്പെടുത്തിക്കൊണ്ട് ചെലവ് നിയന്ത്രിക്കുക.
- അപ്രൂവൽ ഗേറ്റുകൾ (Approval gates): ഇമെയിലുകൾ അയക്കുകയോ ഡാറ്റാ ഡിലീറ്റ് ചെയ്യുകയോ പോലുള്ള നിർണ്ണായകമായ കാര്യങ്ങൾക്ക് മനുഷ്യന്റെ അനുമതി ആവശ്യമാക്കുക.
വെരിഫിക്കേഷൻ (Verification)
ഒരു ജോലി പൂർത്തിയായി എന്ന് മോഡൽ പറയുമ്പോൾ ഒരിക്കലും വിശ്വസിക്കരുത്. മോഡലുകൾ സ്വാഭാവികമായും ആത്മവിശ്വാസത്തോടെയാണ് മറുപടി നൽകുന്നത്.
യഥാർത്ഥ വെരിഫിക്കേഷൻ ഉപയോഗിക്കുക. ഒരു ഏജന്റ് കോഡ് എഴുതുകയാണെങ്കിൽ, ടെസ്റ്റുകൾ റൺ ചെയ്യുക. അത് JSON നിർമ്മിക്കുകയാണെങ്കിൽ, സ്കീമ പരിശോധിക്കുക. അത് ഒരു ജോലി ചെയ്യുന്നുണ്ടെങ്കിൽ, മാറ്റം സ്ഥിരീകരിക്കാൻ ഒരു ക്വറി (query) റൺ ചെയ്യുക.
മികച്ച ഏജന്റുകൾ ലൂപ്പിനുള്ളിൽ തന്നെ വെരിഫിക്കേഷൻ ഉപയോഗിക്കുന്നു. ഒരു ടെസ്റ്റ് പരാജയപ്പെട്ടാൽ, ആ പിശക് ഏജന്റിന് തിരികെ നൽകുക. അത് വീണ്ടും ശ്രമിക്കട്ടെ.
കൂടുതൽ സ്മാർട്ട് ആയ പ്രോംപ്റ്റുകൾക്ക് പിന്നാലെ പോകുന്നത് നിർത്തുക. മികച്ച പ്ലംബിംഗ് (plumbing) നിർമ്മിക്കാൻ തുടങ്ങുക.
Optional learning community: https://t.me/GyaanSetuAi
