പ്രൊഡക്ഷനിൽ പ്രവേശിക്കുന്നതിന് മുമ്പ് ഒരു AI ഏജന്റ് പ്ലേഗ്രൗണ്ട് നിർമ്മിക്കുക
ഒരു കോഡിംഗ് ഏജന്റ് സ്റ്റേജിംഗ് ഡാറ്റാബേസ് എന്ന് കരുതിയ ഒന്നിൽ ക്ലീനപ്പ് സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിച്ചു. എന്നാൽ അത് യഥാർത്ഥത്തിൽ പ്രൊഡക്ഷൻ ഡാറ്റാബേസ് ആയിരുന്നു. തെറ്റായ ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് നിർദ്ദേശിച്ചതനുസരിച്ച് കൃത്യമായി പ്രവർത്തിച്ചതുകൊണ്ട്, ആ ഏജന്റ് നാല് മാസത്തെ ഉപഭോക്താക്കളുടെ ഓർഡറുകൾ ഡിലീറ്റ് ചെയ്തു കളഞ്ഞു.
ഈ പരാജയം ഏജന്റുകളെ ഒഴിവാക്കാനുള്ള ഒരു കാരണമായി കാണരുത്. മറിച്ച്, ഒരു പ്ലേഗ്രൗണ്ട് നിർമ്മിക്കാനുള്ള കാരണമായി കാണണം.
ഒരു പുതിയ എഞ്ചിനീയർക്ക് അവരുടെ ആദ്യ ദിവസം തന്നെ പ്രൊഡക്ഷൻ ഡാറ്റാബേസ് ആക്സസ് നിങ്ങൾ നൽകില്ല. പകരം നിങ്ങൾ അവർക്ക് ഒരു സ്റ്റേജിംഗ് എൻവയോൺമെന്റും, റീഡ്-ഓൺലി ആക്സസും, മേൽനോട്ടം വഹിക്കുന്ന ടാസ്ക്കുകളും നൽകുന്നു. ഏജന്റുകൾക്കും ഇതേ രീതിയിലുള്ള ഓൺബോർഡിംഗ് ആവശ്യമാണ്. അവയ്ക്ക് മിനിറ്റിൽ ആയിരക്കണക്കിന് ആക്ഷനുകൾ ചെയ്യാൻ കഴിയും, അതിനാൽ പ്ലേഗ്രൗണ്ട് ഒഴിവാക്കിയാൽ ഉണ്ടാകുന്ന നഷ്ടം ആയിരം മടങ്ങ് കൂടുതലായിരിക്കും.
ഒരു യഥാർത്ഥ പ്ലേഗ്രൗണ്ട് മൂന്ന് കാര്യങ്ങൾ ചെയ്യണം:
- ഏജന്റിന് അതിന്റെ പൂർണ്ണമായ ഡിസിഷൻ ലൂപ്പ് (decision loop) പ്രവർത്തിക്കാൻ അനുവദിക്കുക.
- സൈഡ് ഇഫക്റ്റുകൾ (side effects) യഥാർത്ഥ സിസ്റ്റങ്ങളിൽ എത്തുന്നത് തടയുക.
- പരിശോധനയ്ക്കായി എല്ലാം റെക്കോർഡ് ചെയ്യുക.
പ്രോംപ്റ്റ് (prompt) മാത്രം ടെസ്റ്റ് ചെയ്യരുത്. ഒരു പ്രോംപ്റ്റ് ടെസ്റ്റ് ചെയ്യുക എന്നാൽ ഒരു ചോദ്യം ചോദിക്കുകയും ഉത്തരം വായിക്കുകയും ചെയ്യുക എന്നാണ് അർത്ഥം. എന്നാൽ ഒരു ഏജന്റിന്റെ പെരുമാറ്റം എന്നത് ടൂൾ കോളുകളുടെ (tool calls) ഒരു പരമ്പരയാണ്. ഒരു ടൂൾ പ്രതീക്ഷിക്കാത്ത ഡാറ്റ നൽകുന്ന ലൂപ്പിന്റെ ഇടയിലാണ് യഥാർത്ഥ പരാജയങ്ങൾ സംഭവിക്കുന്നത്.
നിങ്ങൾ മോഡലിനെ സാൻഡ്ബോക്സ് (sandbox) ചെയ്യേണ്ടതില്ല. എക്സിക്യൂട്ടറെ (executor) ആണ് നിങ്ങൾ സാൻഡ്ബോക്സ് ചെയ്യേണ്ടത്.
ടൂൾ കോളുകൾ ആക്ഷനുകളായി മാറുന്ന ഇടത്ത് ഒരു വിടവ് (seam) ഉണ്ടാക്കുക. ലൈവ് എക്സിക്യൂട്ടറിന് പകരം മോക്കുകൾ (mocks) ഉപയോഗിക്കുന്ന ഒരു പ്ലേഗ്രൗണ്ട് എക്സിക്യൂട്ടർ ഉപയോഗിക്കുക. ഏജന്റ് ലൂപ്പിന് ഈ വ്യത്യാസം അറിയാൻ പാടില്ല. നിങ്ങളുടെ ഏജന്റ് ഒരു ഡാറ്റാബേസ് ക്ലയന്റിനെ നേരിട്ട് വിളിക്കുന്നുണ്ടെങ്കിൽ, അവിടെ സുരക്ഷാ സംവിധാനങ്ങളോ നിയന്ത്രണങ്ങളോ ഇല്ല എന്ന് അർത്ഥം.
മൂന്ന് പ്രത്യേക മേഖലകൾ പരിശോധിക്കുക:
- പെരുമാറ്റം (Behavior): ഏജന്റ് ശരിയായ ക്രമത്തിൽ ശരിയായ ടൂൾ തിരഞ്ഞെടുക്കുന്നുണ്ടോ?
- ടൂൾ കോളുകൾ (Tool calls): ആർഗ്യുമെന്റുകൾ ശരിയാണോ എന്നും സുരക്ഷിതമായ പരിധിക്കുള്ളിലാണോ എന്നും പരിശോധിക്കുക.
- പരാജയ രീതികൾ (Failure modes): ഒരു API ടൈം ഔട്ട് ആകുമ്പോഴോ അല്ലെങ്കിൽ തെറ്റായ ഡാറ്റ നൽകുന്നപ്പോഴോ എന്ത് സംഭവിക്കുന്നു?
എപ്പോഴും വിജയിക്കുന്ന ഒരു മോക്ക് (mock) ഏജന്റിനെ ഒന്നും പഠിപ്പിക്കില്ല. നെറ്റ്വർക്ക് ടൈം ഔട്ടുകൾ അല്ലെങ്കിൽ തെറ്റായ ഡാറ്റ പോലുള്ള പരാജയങ്ങൾ പ്ലേഗ്രൗണ്ടിൽ ഉൾപ്പെടുത്താൻ നിങ്ങൾക്ക് കഴിയണം. ഇതിലൂടെ മാത്രമേ ഒരു ഏജന്റ് ബുദ്ധിപരമായി വീണ്ടും ശ്രമിക്കുന്നുണ്ടോ അതോ ഹാളുസിനേഷൻ (hallucinating) തുടങ്ങുന്നുണ്ടോ എന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയൂ.
നിങ്ങളുടെ ഏജന്റ് കോഡ് പ്രവർത്തിപ്പിക്കുന്നുണ്ടെങ്കിൽ, ശക്തമായ ഐസൊലേഷൻ (isolation) ആവശ്യമാണ്. വിശ്വസിക്കാൻ കഴിയാത്ത കോഡുകൾക്കായി microVMs ഉപയോഗിക്കുക. എളുപ്പമാണെന്ന് കരുതി ലളിതമായ കണ്ടെയ്നറുകൾ (containers) ഉപയോഗിച്ച് തുടങ്ങരുത്. എളുപ്പമുള്ള ഒരു സെറ്റപ്പ് വലിയൊരു സുരക്ഷാ പ്രശ്നത്തിലേക്ക് നയിച്ചേക്കാം.
ഏജന്റുകൾ നോൺ-ഡിറ്റർമിനിസ്റ്റിക് (non-deterministic) ആണെന്ന് ഓർക്കുക. ഒരു തവണ വിജയിച്ച ഒരു ടെസ്റ്റ് ഏജന്റ് വിശ്വസനീയമാണെന്ന് അർത്ഥമാക്കുന്നില്ല. നിങ്ങൾ ഒരേ ടാസ്ക് തന്നെ പലതവണ ചെയ്യണം. ഒരു ഏജന്റ് 10 തവണയിൽ 7 തവണ വിജയിക്കുന്നുണ്ടെങ്കിൽ, അത് നിങ്ങളുടെ യഥാർത്ഥ ഉപഭോക്താക്കളിൽ ഏകദേശം 30% പേർക്കും പരാജയപ്പെട്ടേക്കാം. സ്ഥിരതയാണ് (Consistency) നിങ്ങളുടെ ഏറ്റവും പ്രധാനപ്പെട്ട അളവുകോൽ.
അവസാനമായി, അഡ്വേഴ്സേറിയൽ ടൂൾ ഔട്ട്പുട്ടുകളിൽ (adversarial tool outputs) നിന്ന് സംരക്ഷണം നൽകുക. ഒരു ഏജന്റ് ടൂൾ ഡാറ്റയെ നിർദ്ദേശങ്ങളായിട്ടാണ് കാണുന്നത്. ഒരു ദുഷ്ടശക്തിയുള്ള ഉപയോക്താവ് പ്രോംപ്റ്റ് ഇൻജക്ഷൻ (prompt injection) വഴി ഏജന്റിനെ വഴിതിരിച്ചുവിടാൻ ഡാറ്റാബേസിൽ മാറ്റങ്ങൾ വരുത്തിയേക്കാം. പ്ലേഗ്രൗണ്ടിൽ ഹോസ്റ്റൈൽ പേലോഡുകൾ (hostile payloads) നൽകിക്കൊണ്ട് നിങ്ങളുടെ ഏജന്റിനെ പരിശോധിക്കുക.
ഒരു ലോഞ്ച് ബട്ടണിന് പകരം ഒരു ഗ്രാജുവേഷൻ പാത്ത് (graduation path) നിർമ്മിക്കുക:
- മോക്കുകളും (mocks) പൂർണ്ണമായ സാൻഡ്ബോക്സിംഗും ഉപയോഗിച്ച് തുടങ്ങുക.
- പലതവണ പ്രവർത്തിപ്പിച്ചു നോക്കി സ്ഥിരത പരിശോധിക്കുക.
- അഡ്വേഴ്സേറിയൽ ഇൻപുട്ടുകൾക്കെതിരെ പരിശോധിക്കുക.
- പ്രൊഡക്ഷൻ ഡാറ്റയ്ക്ക് സമാനമായ ഡാറ്റ ഉപയോഗിച്ച് ഡ്രൈ-റൺ (dry-run) മോഡിലേക്ക് മാറുക.
- അതിനുശേഷം മാത്രം പരിമിതമായതും നിയന്ത്രിതവും നിരീക്ഷിക്കപ്പെടുന്നതുമായ ആക്സസ് നൽകുക.
കുറഞ്ഞ ചിലവിൽ തെറ്റുകൾ വരുത്താൻ നിങ്ങളുടെ ഏജന്റിന് ഒരു ഇടം നൽകുക. എങ്കിൽ മാത്രമേ അത് ആവശ്യമുള്ള ഇടങ്ങളിൽ കൃത്യമായി പ്രവർത്തിക്കുകയുള്ളൂ.
Source: https://dev.to/nazar_boyko/building-an-ai-agent-playground-before-giving-it-production-access-4glh
Optional learning community: https://t.me/GyaanSetuAi
