AgentInspect डेव्हलपर्सना AI एजंटच्या टप्प्याटप्प्याने होणाऱ्या कृती JSONL लॉग्सच्या स्वरूपात कॅप्चर करण्याची सुविधा देते, ज्यामुळे आवश्यक टूल्स चालली आहेत की नाही हे तपासणे शक्य होते – आणि हे सर्व OpenTelemetry स्टॅकशी जोडल्याशिवाय करता येते.
Vercel AI SDK वर आधारित हवामान तपासण्याच्या (weather-checking) उदाहरणासह केलेल्या एका जलद चाचणीमध्ये, AgentInspect ने एक “silent failure” (सायलेंट फेल्युअर) शोधून काढले: अंतिम उत्तर बरोबर होते, परंतु weather-tool कॉल कधीच झाला नव्हता. लायब्ररीच्या प्रोसेस-लेव्हल चेकने ती समस्या पकडली जी केवळ आउटपुट टेस्टमध्ये सुटली असती.
एक्झिक्यूशन पाथ (execution path) का महत्त्वाचा आहे
AI एजंटचा प्रतिसाद हा एका साखळीचा अंतिम परिणाम असतो, ज्यामध्ये अनेक मॉडेल इनव्होकेशन्स (model invocations) आणि बाह्य टूल कॉल्सचा समावेश असू शकतो. जर एखाद्या प्रॉम्प्टने लाईव्ह डेटा मिळवायचा असेल, तर तो डेटा न मिळाल्यास मजकूर योग्य दिसत असूनही रिस्क प्रोफाइल बदलतो. केवळ उत्तरावर आधारित चाचण्यांमुळे (Answer-level tests) एखादा महत्त्वाचा टप्पा वगळणारा बग (bug) नकळत प्रोडक्शनमध्ये जाऊ शकतो.
AgentInspect काय करते
- लाइटवेट रेकॉर्डिंग (Lightweight recording) – एक TypeScript अडॅप्टर एजंट कोडमध्ये हुक होतो आणि प्रत्येक मॉडेल कॉल, टूल इनव्होकेशन आणि त्यांचा क्रम एका line-delimited JSON (JSONL) फाईलमध्ये लिहितो.
- रुल इंजिन (Rule engine) – डेव्हलपर्स “the weather tool must be called” किंवा “the finance API must not be used” यांसारखे साधे नियम (predicates) घोषित करू शकतात. लायब्ररी प्रत्येक रननंतर या नियमांचे मूल्यमापन करते.
- CLI इन्स्पेक्शन (CLI inspection) – अयशस्वी रन फाईल्स म्हणून सेव्ह केले जातात, जे इन-बिल्ट कमांड-लाइन टूलद्वारे एक्झिक्यूशन ट्रेसच्या मानवी-वाचनीय (human-readable) रिप्लेसाठी उघडले जाऊ शकतात.
लॉग्स स्थानिक (local) फाईल्स असल्याने, ट्रेसिंग बॅकएंड, नेटवर्क कॉन्फिगरेशन किंवा वेगळ्या ऑब्झर्व्हेबिलिटी सर्व्हिसची गरज नसते.
चाचणी कशी सेट केली होती
- प्रोसेस चेक (Process checks) – weather-tool एंडपॉइंट इनव्होक झाले आहे की नाही हे एका नियमाने तपासले.
- आन्सर चेक (Answer checks) – एका वेगळ्या अॅसर्शनने (assertion) तयार केलेला मजकूर आणि अपेक्षित इनडोअर-साइटसीइंग शिफारस यांची तुलना केली.
दोन परिस्थिती (scenarios) चालवल्या गेल्या:
| परिस्थिती (Scenario) | आन्सर चेक (Answer check) | प्रोसेस चेक (Process check) |
|---|---|---|
| हॅप्पी पाथ (हवामान मिळवले) | Pass | Pass |
| हवामान वगळले (टूल कधीच कॉल केले नाही) | Pass | Fail |
दुसरे रन प्रोसेस चेकचे महत्त्व दर्शवते: उत्तर ठीक दिसत होते, परंतु टूल कॉल न झाल्यामुळे एक छुपा दोष (hidden defect) दिसून आला.
AgentInspect विरुद्ध Promptfoo
Promptfoo, हे एक अधिक प्रस्थापित टेस्टिंग फ्रेमवर्क आहे, जे OpenTelemetry द्वारे ट्रेस कॅप्चर करते. हा दृष्टिकोन अशा टीम्ससाठी चांगला आहे ज्या आधीच टेलिमेट्री डेटा कलेक्टरकडे पाठवतात, परंतु यामुळे कॉन्फिगरेशनचा भार वाढतो आणि ट्रेसिंग इन्फ्रास्ट्रक्चरवर अवलंबून राहावे लागते.
AgentInspect हे डेव्हलपमेंटच्या सुरुवातीच्या टप्प्यासाठी अधिक योग्य वाटते, परंतु ते सेट करणे अत्यंत सोपे आहे.
कोणाला याची काळजी घेणे आवश्यक आहे
- CI पाइपलाइन्स (CI pipelines) – AgentInspect चालवणारा आणि नियमांचे उल्लंघन झाल्यास बिल्ड फेल करणारा एक सिंगल स्टेप जोडल्यामुळे, 'सायलेंट बग्स' (silent bugs) रोखता येतात.
- डीबगिंग (Debugging) – कॉल्सचा नेमका क्रम पुन्हा पाहण्यासाठी (replay) JSONL लॉग्स स्थानिक पातळीवर उघडले जाऊ शकतात, ज्यामुळे रिमोट ट्रेस डॅशबोर्ड शोधण्यात जाणारा वेळ वाचतो.
- प्रोडक्ट टीम्स (Product teams) – एखादे फीचर रिलीज करण्यापूर्वी महत्त्वाचा डेटा फेच (fetch) प्रत्यक्षात झाला आहे हे माहित असल्यास, वापरकर्त्यांच्या तक्रारींचा धोका कमी होतो.
थोडक्यात सांगायचे तर: जेव्हा AI एजंटची अचूकता केवळ अंतिम मजकुरावर नाही, तर त्याने घेतलेल्या कृतींवर अवलंबून असते, तेव्हा AgentInspect सारखा लाइटवेट रेकॉर्डर पूर्ण ट्रेसिंग स्टॅकचा भार न घेता, लपलेले प्रोसेस बग्स दृश्यमान आणि टेस्ट करण्यायोग्य त्रुटींमध्ये बदलू शकतो.
