AgentInspect ഉപയോഗിച്ച് ഡെവലപ്പർമാർക്ക് ഒരു AI ഏജന്റിന്റെ ഓരോ ഘട്ടത്തിലെയും പ്രവർത്തനങ്ങൾ JSONL ലോഗുകളായി രേഖപ്പെടുത്താൻ സാധിക്കും. ഇതിലൂടെ ആവശ്യമായ ടൂളുകൾ പ്രവർത്തിച്ചുവെന്ന് ഉറപ്പുവരുത്താം - ഇതിനായി OpenTelemetry സ്റ്റാക്കിൽ ഘടിപ്പിക്കേണ്ട ആവശ്യമില്ല.
Vercel AI SDK ഉപയോഗിച്ച് നിർമ്മിച്ച ഒരു weather-checking ഉദാഹരണത്തിലൂടെ നടത്തിയ ഒരു വേഗത്തിലുള്ള പരിശോധനയിൽ, AgentInspect ഒരു “silent failure” കണ്ടെത്തി: അവസാന ഉത്തരം ശരിയായിരുന്നു, എന്നാൽ weather-tool കോൾ നടന്നില്ല. ഒരു സാധാരണ ഔട്ട്പുട്ട് ടെസ്റ്റിന് കണ്ടെത്താൻ കഴിയാത്ത പ്രശ്നം ഈ ലൈബ്രറിയുടെ പ്രോസസ്-ലെവൽ ചെക്ക് (process-level check) കണ്ടെത്തി.
എക്സിക്യൂഷൻ പാത്ത് (execution path) പ്രധാനമാകുന്നത് എന്തുകൊണ്ട്
ഒരു AI ഏജന്റിന്റെ മറുപടി എന്നത് ഒന്നിലധികം മോഡൽ ഇൻവോക്കേഷനുകളും (model invocations) എക്സ്റ്റേണൽ ടൂൾ കോളുകളും ഉൾപ്പെട്ട ഒരു ശൃംഖലയുടെ അവസാന ഫലമാണ്. ഒരു പ്രോംപ്റ്റ് ലൈവ് ഡാറ്റ ശേഖരിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണെങ്കിൽ, ടെക്സ്റ്റ് ശരിയാണെന്ന് തോന്നിയാലും ആ ഡാറ്റാ ശേഖരണം നടക്കാത്തത് റിസ്ക് വർദ്ധിപ്പിക്കുന്നു. ആൻസർ-ലെവൽ ടെസ്റ്റുകൾ (Answer-level tests) വഴി ഒരു നിർണ്ണായക ഘട്ടം ഒഴിവാക്കുന്ന ബഗ്ഗുകൾ ശ്രദ്ധിക്കപ്പെടാതെ തന്നെ പ്രൊഡക്ഷനിലേക്ക് കടന്നുകൂടാം.
AgentInspect എന്താണ് ചെയ്യുന്നത്
- ലഘുവായ റെക്കോർഡിംഗ് (Lightweight recording) – ഒരു TypeScript അഡാപ്റ്റർ ഏജന്റ് കോഡുമായി ബന്ധിപ്പിക്കപ്പെടുകയും ഓരോ മോഡൽ കോൾ, ടൂൾ ഇൻവോക്കേഷൻ, അവയുടെ ക്രമം എന്നിവ ഒരു line-delimited JSON (JSONL) ഫയലിലേക്ക് എഴുതുകയും ചെയ്യുന്നു.
- റൂൾ എഞ്ചിൻ (Rule engine) – “the weather tool must be called” അല്ലെങ്കിൽ “the finance API must not be used” എന്നിങ്ങനെയുള്ള ലളിതമായ നിബന്ധനകൾ ഡെവലപ്പർമാർക്ക് നൽകാം. ഓരോ റണ്ണിന് ശേഷവും ലൈബ്രറി ഈ നിയമങ്ങൾ പരിശോധിക്കുന്നു.
- CLI ഇൻസ്പെക്ഷൻ (CLI inspection) – പരാജയപ്പെട്ട റണ്ണുകൾ ഫയലുകളായി സേവ് ചെയ്യപ്പെടുന്നു. ഇതിലെ എക്സിക്യൂഷൻ ട്രേസ് (execution trace) മനുഷ്യർക്ക് വായിക്കാവുന്ന രീതിയിൽ റീപ്ലേ ചെയ്യാൻ ബിൽറ്റ്-ഇൻ കമാൻഡ്-ലൈൻ ടൂൾ ഉപയോഗിക്കാം.
ലോഗുകൾ ലോക്കൽ ഫയലുകൾ ആയതുകൊണ്ട്, ഒരു ട്രേസിംഗ് ബാക്കെൻഡോ (tracing backend), നെറ്റ്വർക്ക് കോൺഫിഗറേഷനോ അല്ലെങ്കിൽ പ്രത്യേക ഒബ്സർവബിലിറ്റി സർവീസോ ആവശ്യമില്ല.
ടെസ്റ്റ് എങ്ങനെ സജ്ജീകരിച്ചു
- പ്രോസസ് ചെക്കുകൾ (Process checks) – weather-tool എൻഡ്പോയിന്റ് ഇൻവോക്ക് ചെയ്തോ എന്ന് ഒരു റൂൾ പരിശോധിച്ചു.
- ആൻസർ ചെക്കുകൾ (Answer checks) – നിർമ്മിക്കപ്പെട്ട ടെക്സ്റ്റിനെ പ്രതീക്ഷിച്ച ഇൻഡോർ-സൈറ്റ്സീയിംഗ് റെക്കമെൻഡേഷനുമായി (indoor-sightseeing recommendation) താരതമ്യം ചെയ്യാൻ ഒരു പ്രത്യേക അസർഷൻ (assertion) ഉപയോഗിച്ചു.
രണ്ട് സാഹചര്യങ്ങൾ പരീക്ഷിച്ചു:
| സാഹചര്യം (Scenario) | ആൻസർ ചെക്ക് (Answer check) | പ്രോസസ് ചെക്ക് (Process check) |
|---|---|---|
| ഹാപ്പി പാത്ത് (weather fetched) | Pass | Pass |
| വെതർ ഒഴിവാക്കി (tool never called) | Pass | Fail |
രണ്ടാമത്തെ റൺ പ്രോസസ് ചെക്കുകളുടെ പ്രാധാന്യം വ്യക്തമാക്കുന്നു: ഉത്തരം ശരിയാണെന്ന് തോന്നിയെങ്കിലും, ടൂൾ കോൾ നടക്കാത്തത് ഒരു മറഞ്ഞിരിക്കുന്ന പിഴവ് (hidden defect) ഉണ്ടെന്ന് സൂചിപ്പിച്ചു.
AgentInspect vs. Promptfoo
കൂടുതൽ പ്രശസ്തമായ ഒരു ടെസ്റ്റിംഗ് ഫ്രെയിംവർക്കായ Promptfoo, OpenTelemetry വഴിയാണ് ട്രേസുകൾ (traces) ശേഖരിക്കുന്നത്. ടെലിമെട്രി ഡാറ്റ ഒരു കളക്ടറിലേക്ക് അയക്കുന്ന ടീമുകൾക്ക് ഈ രീതി അനുയോജ്യമാണെങ്കിലും, ഇത് കോൺഫിഗറേഷൻ ഭാരവും ട്രേസിംഗ് ഇൻഫ്രാസ്ട്രസ്ട്രെതിപ്പോഴുള്ള ആശ്രിതത്വവും വർദ്ധിപ്പിക്കുന്നു.
AgentInspect ഡെവലപ്മെന്റിന്റെ ആദ്യഘട്ടങ്ങളിൽ ഉപയോഗിക്കാൻ കൂടുതൽ അനുയോജ്യമാണെങ്കിലും, ഇത് സജ്ജീകരിക്കാൻ വളരെ ലളിതമാണ്.
ആർക്കൊക്കെ ഇത് പ്രയോജനപ്പെടും
- CI പൈപ്പ്ലൈനുകൾ (CI pipelines) – AgentInspect റൺ ചെയ്യുന്നതിനും റൂൾ ലംഘനങ്ങൾ ഉണ്ടായാൽ ബിൽഡ് പരാജയപ്പെടുത്തുന്നതിനും ഒരു സ്റ്റെപ്പ് കൂടി ചേർക്കുന്നത് വഴി, ശ്രദ്ധിക്കപ്പെടാതെ പോകുന്ന ബഗ്ഗുകളെ തടയാൻ സാധിക്കും.
- ഡീബഗ്ഗിംഗ് (Debugging) – റിമോട്ട് ട്രേസ് ഡാഷ്ബോർഡുകൾ പരിശോധിക്കുന്നതിനേക്കാൾ വേഗത്തിൽ, കോൾ നടന്ന കൃത്യമായ ക്രമം മനസ്സിലാക്കാൻ JSONL ലോഗുകൾ ലോക്കലായി തുറന്നു പരിശോധിക്കാം.
- പ്രൊഡക്റ്റ് ടീമുകൾ (Product teams) – ഒരു ഫീച്ചർ പുറത്തിറക്കുന്നതിന് മുമ്പ് നിർണ്ണായകമായ ഡാറ്റാ ഫെച്ച് (data fetch) നടന്നുവെന്ന് ഉറപ്പാക്കുന്നത് ഉപഭോക്താക്കളുടെ പരാതികൾ കുറയ്ക്കാൻ സഹായിക്കുന്നു.
ചുരുക്കത്തിൽ: ഒരു AI ഏജന്റിന്റെ കൃത്യത എന്നത് അവസാന ടെക്സ്റ്റിൽ മാത്രമല്ല, അത് ചെയ്യുന്ന പ്രവർത്തനങ്ങളിലും അധിഷ്ഠിതമാണെങ്കിൽ, AgentInspect പോലുള്ള ഒരു ലഘുവായ റെക്കോർഡർ ഉപയോഗിച്ച് ഒരു വലിയ ട്രേസിംഗ് സ്റ്റാക്കിന്റെ ഭാരമില്ലാതെ തന്നെ മറഞ്ഞിരിക്കുന്ന പ്രോസസ് ബഗ്ഗുകളെ കണ്ടെത്താനും പരിശോധിക്കാനും സാധിക്കും.
