इस प्रोजेक्ट के बारे में

Iris एक ओपन-सोर्स MCP (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) सर्वर है जिसे AI एजेंट आउटपुट की गुणवत्ता, सुरक्षा और लागत का मूल्यांकन करने के लिए डिज़ाइन किया गया है। यह पूरी तरह से आपकी मशीन पर चलता है, ट्रेस को स्थानीय SQLite डेटाबेस में संग्रहीत करता है, और इसके लिए किसी खाते, SDK या टेलीमेट्री की आवश्यकता नहीं होती। यह प्रोजेक्ट MIT-लाइसेंस प्राप्त है और Node.js 20 या उसके बाद के संस्करण की आवश्यकता है। मुख्य क्षमताओं में हायरार्किकल स्पैन ट्री के साथ ट्रेस लॉगिंग, प्रति-टूल-कॉल विलंबता, टोकन उपयोग और USD में लागत ट्रैकिंग शामिल है। आउटपुट मूल्यांकन चार श्रेणियों में 20 अंतर्निहित निर्धारक नियमों का उपयोग करता है: पूर्णता, प्रासंगिकता, सुरक्षा और लागत। सुरक्षा नियम PII (SSN, क्रेडिट कार्ड, फोन, ईमेल, IBAN, DOB, MRN, IP, API कुंजी, पासपोर्ट और क्लाउड प्रदाता टोकन सहित 19 पैटर्न), प्रॉम्प्ट इंजेक्शन (37 पैटर्न), भ्रम मार्कर (25 संदर्भ-आधारित निर्माण संकेत) और प्रक्षेपवक्र उल्लंघन जैसे कि अस्वीकृत असफल टूल कॉल, बार-बार कॉल, स्कीमा-अस्वीकृत तर्क, और उद्धृत स्रोत जिन्हें एजेंट ने कभी नहीं पढ़ा, का पता लगाते हैं। एक वैकल्पिक LLM-as-judge सुविधा Anthropic या OpenAI के माध्यम से सिमेंटिक स्कोरिंग प्रदान करती है, जिसमें प्रति-मूल्यांकन लागत सीमा (डिफ़ॉल्ट $0.25) होती है। Iris बारह MCP टूल पंजीकृत करता है जिन्हें कोई भी MCP-संगत एजेंट कॉल कर सकता है: log_trace, evaluate_output, get_traces, list_rules, deploy_rule, delete_rule, delete_trace, evaluate_with_llm_judge, verify_citations, compare_runs, compare_traces, और evaluate_runs। verify_citations टूल आउटपुट से उद्धरण निकालता है, SSRF-सुरक्षित रिज़ॉल्वर के पीछे स्रोतों को लाता है, और यह जांचने के लिए LLM जज का उपयोग करता है कि क्या प्रत्येक स्रोत उद्धृत दावे का समर्थन करता है। एक वेब डैशबोर्ड http://localhost:6920 पर सेवा करता है, जो सबसे खराब और नवीनतम विफलताओं को पहले दिखाता है। यह ट्रेस विज़ुअलाइज़ेशन, मूल्यांकन परिणाम, लागत विवरण और एक कमांड पैलेट (Cmd+K) प्रदान करता है जो नियमों, ट्रेस और मूल्यांकन खोजने के लिए। डैशबोर्ड एक HTTP इनजेस्ट एंडपॉइंट (POST /api/v1/traces) भी उजागर करता है जो मॉडल के बिना ट्रेस कैप्चर करने के लिए, और एक क्षमता एंडपॉइंट (GET /api/v1/capabilities) जो वर्णन करता है कि सर्वर क्या न्याय कर सकता है। CI/CD एकीकरण के लिए, इनजेस्ट CLI कमांड stdin या फ़ाइल से JSON या NDJSON ट्रेस पढ़ता है, उनका मूल्यांकन करता है, प्रति ट्रेस एक JSON लाइन वर्डिक्ट के साथ प्रिंट करता है, और जब वर्डिक्ट एक --fail-on फ़िल्टर से मेल खाता है तो कोड 1 के साथ बाहर निकलता है। यह मूल्यांकन परिणामों पर एजेंट डिप्लॉयमेंट को गेट करने में सक्षम बनाता है। कस्टम नियम इनलाइन लिखे जा सकते हैं (प्रति evaluate_output कॉल में 10 तक) या deploy_rule के माध्यम से स्थायी रूप से तैनात किए जा सकते हैं। नियम प्रकारों में regex_match, regex_no_match, min_length, max_length, contains_keywords, excludes_keywords, json_schema, और cost_threshold शामिल हैं। तैनात नियम Iris होम निर्देशिका के तहत custom-rules.json में बने रहते हैं और हर भविष्य के evaluate_output पर उनकी श्रेणी में लागू होते हैं। गंभीरता स्तर (low, medium, high, critical) यह निर्धारित करते हैं कि क्या नियम विफलता मूल्यांकन को कठोर रूप से विफल करती है या केवल स्कोर को प्रभावित करती है। पास वर्डिक्ट एक कंपोज़र द्वारा तय किया जाता है जो प्रत्येक नियम को उसके दावे के प्रकार से पढ़ता है: कॉन्फ़िगर की गई नीतियाँ गेट करती हैं, गंभीर डिटेक्टर वीटो करते हैं, गंभीर जाँचें जो उत्तर नहीं दे सकतीं अज्ञात वर्डिक्ट उत्पन्न करती हैं, और शेष डिटेक्टर संभावना में संयुक्त होते हैं जो कॉन्फ़िगर करने योग्य हानि अनुपात के खिलाफ तौला जाता है। वास्तविक सुरक्षा उल्लंघन (no_pii, no_injection_patterns, no_blocklist_words) डिफ़ॉल्ट रूप से कठोर रूप से विफल होते हैं। हर अंतर्निहित नियम के लिए प्रकाशित प्रेसिजन, रिकॉल और F1 स्कोर 95% कॉन्फिडेंस इंटरवल के साथ होते हैं, जो रिपॉजिटरी में लेबल किए गए कॉर्पस पर मापे जाते हैं। CI हर पुल रिक्वेस्ट पर माप दोबारा चलाता है और यदि प्रतिबद्ध संख्याएँ कोड द्वारा उत्पादित से भिन्न होती हैं तो विफल होता है। Iris लोकल-फर्स्ट है: सब कुछ डिस्क पर SQLite में रहता है। आउटबाउंड HTTP केवल वहीं होता है जहाँ आप ऑप्ट इन करते हैं—आपकी अपनी LLM जज कुंजी, उद्धरण प्राप्ति, या OpenTelemetry एक्सपोर्टर जो आप कॉन्फ़िगर करते हैं। प्रोजेक्ट Docker डिप्लॉयमेंट का समर्थन करता है जिसमें दो पोर्ट (MCP HTTP ट्रांसपोर्ट के लिए 3000, डैशबोर्ड और इनजेस्ट के लिए 6920) होते हैं, और Claude Desktop, Claude Code, Cursor, Windsurf, Continue, VS Code, Cline, Zed, Codex CLI, Gemini CLI, और किसी भी अन्य MCP-संगत एजेंट के साथ एकीकृत होता है।