AgentInspect डेवलपर्स को एक AI एजेंट के स्टेप-बाय-स्टेप कार्यों को JSONL लॉग्स के रूप में कैप्चर करने की सुविधा देता है, जिससे यह सत्यापित करना संभव हो जाता है कि आवश्यक टूल्स चले हैं या नहीं – और यह सब बिना स्टैक में OpenTelemetry को जोड़े किया जा सकता है।
Vercel AI SDK पर आधारित मौसम-जांच (weather-checking) के एक उदाहरण के साथ किए गए एक त्वरित परीक्षण में, AgentInspect ने एक "साइलेंट फेलियर" (silent failure) को पकड़ा: अंतिम उत्तर सही था, लेकिन weather-tool कॉल कभी हुआ ही नहीं। लाइब्रेरी के प्रोसेस-लेवल चेक ने उस समस्या को पकड़ लिया जिसे एक साधारण आउटपुट टेस्ट मिस कर देता।
एक्जीक्यूशन पाथ (execution path) क्यों महत्वपूर्ण है
एक AI एजेंट का रिस्पॉन्स एक ऐसी चेन का अंतिम उत्पाद होता है जिसमें कई मॉडल इनवोकेशन्स (model invocations) और बाहरी टूल कॉल्स शामिल हो सकते हैं। यदि किसी प्रॉम्प्ट को लाइव डेटा फेच (fetch) करना है, तो उस फेच की अनुपस्थिति रिस्क प्रोफाइल को बदल देती है, भले ही टेक्स्ट सही लग रहा हो। आंसर-लेवल टेस्ट ऐसे बग को प्रोडक्शन में बिना किसी सूचना के जाने देते हैं जो किसी महत्वपूर्ण स्टेप को छोड़ देता है।
AgentInspect क्या करता है
- लाइटवेट रिकॉर्डिंग (Lightweight recording) – एक TypeScript एडॉप्टर एजेंट कोड से जुड़ जाता है और प्रत्येक मॉडल कॉल, टूल इनवोकेशन और उनके क्रम को एक लाइन-डेलिमिटेड JSON (JSONL) फ़ाइल में लिखता है।
- रूल इंजन (Rule engine) – डेवलपर्स सरल प्रेडिकेट्स (predicates) घोषित कर सकते हैं जैसे कि "weather tool को कॉल किया जाना चाहिए" या "finance API का उपयोग नहीं किया जाना चाहिए।" लाइब्रेरी प्रत्येक रन के बाद इन नियमों का मूल्यांकन करती है।
- CLI इंस्पेक्शन (CLI inspection) – फेल हुए रन को फ़ाइलों के रूप में सहेजा जाता है जिन्हें बिल्ट-इन कमांड-लाइन टूल एक्जीक्यूशन ट्रेस के ह्यूमन-रीडेबल रिप्ले के लिए खोल सकता है।
चूंकि लॉग्स लोकल फ़ाइलें हैं, इसलिए किसी ट्रेसिंग बैकएंड, नेटवर्क कॉन्फ़िगरेशन या अलग ऑब्जर्वेबिलिटी सर्विस की आवश्यकता नहीं है।
टेस्ट कैसे सेटअप किया गया
- प्रोसेस चेक (Process checks) – एक नियम ने सत्यापित किया कि weather-tool एंडपॉइंट को इनवोक किया गया था।
- आंसर चेक (Answer checks) – एक अलग एसर्शन (assertion) ने जनरेट किए गए टेक्स्ट की तुलना अपेक्षित इंडोर-साइटसीइंग (indoor-sightseeing) सिफारिश से की।
दो परिदृश्य (scenarios) चलाए गए:
| परिदृश्य (Scenario) | आंसर चेक (Answer check) | प्रोसेस चेक (Process check) |
|---|---|---|
| हैप्पी पाथ (weather fetched) | पास (Pass) | पास (Pass) |
| स्किप्ड वेदर (tool never called) | पास (Pass) | फेल (Fail) |
दूसरा रन प्रोसेस चेक के महत्व को दर्शाता है: उत्तर ठीक लग रहा था, लेकिन छूटे हुए टूल कॉल ने एक छिपे हुए दोष (defect) का संकेत दिया।
AgentInspect बनाम Promptfoo
Promptfoo, जो एक अधिक स्थापित टेस्टिंग फ्रेमवर्क है, OpenTelemetry के माध्यम से ट्रेसेस कैप्चर करता है। वह दृष्टिकोण उन टीमों के लिए अच्छा काम करता है जो पहले से ही टेलीमेट्री डेटा को कलेक्टर पर भेजती हैं, लेकिन यह कॉन्फ़िगरेशन ओवरहेड और ट्रेसिंग इंफ्रास्ट्रक्चर पर निर्भरता बढ़ा देता है।
AgentInspect डेवलपमेंट के शुरुआती चरणों के लिए अधिक उपयुक्त लगता है, लेकिन इसे सेटअप करना बहुत सरल है।
किसे इसकी परवाह करनी चाहिए
- CI पाइपलाइन्स (CI pipelines) – एक सिंगल स्टेप जोड़ना जो AgentInspect चलाता है और नियमों के उल्लंघन पर बिल्ड को फेल कर देता है, साइलेंट बग्स को 'हार्ड स्टॉप्स' (hard stops) में बदल देता है।
- डीबगिंग (Debugging) – कॉल्स के सटीक क्रम को रिप्ले करने के लिए JSONL लॉग्स को लोकल रूप से खोला जा सकता है, जिससे रिमोट ट्रेस डैशबोर्ड्स को खंगालने की तुलना में समय की बचत होती है।
- प्रोडक्ट टीमें (Product teams) – किसी फीचर को शिप करने से पहले यह जानना कि एक महत्वपूर्ण डेटा फेच वास्तव में हुआ था, डाउनस्ट्रीम यूजर शिकायतों के जोखिम को कम करता है।
निष्कर्ष (Bottom line): जब एक AI एजेंट की सटीकता केवल अंतिम टेक्स्ट पर नहीं, बल्कि उसके द्वारा किए गए कार्यों पर निर्भर करती है, तो AgentInspect जैसा लाइटवेट रिकॉर्डर छिपे हुए प्रोसेस बग्स को बिना किसी फुल ट्रेसिंग स्टैक के ओवरहेड के, दृश्यमान और टेस्ट करने योग्य विफलताओं में बदल सकता है।
