तुमच्या एजंटचा डेमो काम करतोय. हाच तो सापळा आहे.

मी कंपन्यांसाठी AI एजंट्स तयार करतो. मला वारंवार एकच पॅटर्न दिसतो. मॉडेल डेमोमध्ये काम करते. तुम्ही उत्पादन (product) लाँच करता. त्यानंतर प्रोडक्शनमध्ये ते प्रत्येक तीन वेळांपैकी एकदा फेल होते. कोणालाच समजत नाही की असे का होते.

डेमो आणि प्रोडक्शनमधील अंतर हे गणिताचे आहे. एकदा का तुम्हाला गणित समजले की, तुम्ही वेगळ्या पद्धतीने काम कराल.

जर तुमच्या एजंटमधील प्रत्येक पायरी ९५% विश्वसनीय असेल, तर ते ऐकायला चांगले वाटते. पण एजंट्समध्ये पायऱ्यांची साखळी (chains of steps) वापरली जाते. जर तुम्ही दहा पायऱ्या एकत्र जोडल्या, तर तुमचा यश दर ६०% पर्यंत खाली येतो. जर तुम्ही वीस पायऱ्या वापरल्या, तर तुमचा यश दर ३६% पर्यंत खाली येतो.

प्रत्यक्ष कामात, पायऱ्यांचा एरर रेट (error rate) अनेकदा १०% ते २०% असतो. जर एखाद्या एजंटमध्ये ८५% विश्वासार्हता असलेल्या आठ पायऱ्या असतील, तर तो ७५% वेळा फेल होतो.

मॉडेल समस्या नाही. संचयी संभाव्यता (Compounding probability) ही समस्या आहे.

डेमो फक्त एकच 'हॅप्पी पाथ' (happy path) दाखवतो. तो स्वच्छ इनपुट आणि लहान साखळ्या वापरतो. प्रोडक्शनमध्ये शेकडो वापरकर्त्यांकडून येणारा विस्कळीत डेटा वापरला जातो. त्यात लपलेल्या पायऱ्यांसह लांब साखळ्या वापरल्या जातात.

एजंटमधील अपयश हे क्रॅशसारखे दिसत नाही. ते एका शांत त्रुटीसारखे (quiet error) दिसते.

पायरी ३ एखादे फील्ड चुकीचे वाचते. आउटपुट तरीही वैध JSON सारखे दिसते. पायरी ४ त्या चुकीच्या डेटाचा वापर तर्क लावण्यासाठी करते. पायरी ५ ते ८ त्या चुकीवर आधारित पुढे जातात. अंतिम उत्तर चुकीचे असते पण ते पटण्यासारखे वाटते. कुठे चूक झाली हे दाखवण्यासाठी कोणताही एरर लॉग उपलब्ध नसतो.

मॉडेलने 'हॅलुसिनेशन' (hallucinated) केले असे म्हणणे थांबवा. मॉडेलने फक्त त्याला मिळालेला चुकीचा डेटा पुढे पाठवला. तुमच्या सिस्टममध्ये पायरी ३ वर ही चूक पकडण्यासाठी चेकपॉइंटची कमतरता होती.

एजंटला केवळ एक प्रॉम्प्ट मानणे थांबवा. त्याला एक सिस्टम म्हणून मानण्यास सुरुवात करा.

विश्वसनीय एजंट्स तयार करण्यासाठी या नियमांचे पालन करा:

  • एजंटच्या बाहेर स्टेट (state) सेव्ह करा. स्टेट संभाषणात (conversation) न ठेवता डेटाबेसमध्ये ठेवा. जर एखादी प्रक्रिया पायरी ६ वर फेल झाली, तर तुम्ही पायरी ६ पासून पुन्हा सुरू करू शकता. तुम्हाला संपूर्ण साखळी पुन्हा सुरू करण्याची गरज पडणार नाही.

  • बाउंड्रीजवर व्हॅलिडेट (Validate) करा. प्रत्येक इनपुट आणि आउटपुट स्कीमा (schema) नुसार तपासा. चूक ज्या पायरीवर होते, तिथेच ती पकडा. यामुळे एक गूढ समस्या सुटण्यायोग्य त्रुटीमध्ये (recoverable error) बदलते.

  • साइड इफेक्ट्स आयडेम्पोटंट (idempotent) बनवा. जेव्हा पायऱ्या फेल होतात तेव्हा तुम्हाला त्या पुन्हा प्रयत्न (retry) करावे लागतात. जर एखादी पायरी ईमेल पाठवत असेल किंवा कार्ड चार्जेस घेत असेल, तर 'आयडेम्पोटन्सी की' (idempotency key) वापरा. यामुळे रिट्राय दरम्यान डुप्लिकेट कृती टाळता येतात.

  • तुमच्या CI मध्ये इव्हल्स (evals) वापरा. प्रत्येक बदलासोबत एजंटचे वर्तन बदलते. प्रॉम्प्टमधील बदल एका केसमध्ये सुधारणा करू शकतो पण इतर पाच केस बिघडू शकतात. अशा रिग्रेशन्सना (regressions) स्वयंचलितपणे पकडण्यासाठी टेस्ट सेट वापरा.

डेमोमधून खऱ्या उत्पादनाकडे जाणे हे इंजिनिअरिंगबद्दल आहे. हे एरर हँडलिंग, स्टेट मॅनेजमेंट आणि ऑब्झर्व्हेबिलिटीबद्दल आहे. हे चांगल्या प्रॉम्प्ट्सबद्दल नाही.

जर तुमचा एजंट प्रोडक्शनमध्ये नीट काम करत नसेल, तर मोठा मॉडेल शोधू नका. साखळी कुठे चुकतेय ती पायरी शोधा. तुमची सिस्टम तिथे चूक का पकडू शकली नाही, हे विचारा.

Source: https://dev.to/sagar_jain4010/your-agent-demo-works-thats-the-trap-4joc

Optional learning community: https://t.me/GyaanSetuAi