عن المشروع

Iris هو خادم MCP (بروتوكول سياق النموذج) مفتوح المصدر مصمم لتقييم مخرجات وكلاء الذكاء الاصطناعي من حيث الجودة والسلامة والتكلفة. يعمل بالكامل على جهازك، ويخزن التتبعات في قاعدة بيانات SQLite محلية، ولا يتطلب حسابًا أو SDK أو تتبعًا. المشروع مرخص بموجب MIT ويتطلب Node.js 20 أو أحدث. تشمل القدرات الأساسية تسجيل التتبعات مع أشجار امتداد هرمية، وزمن استجابة لكل استدعاء أداة، واستخدام الرموز، وتتبع التكلفة بالدولار الأمريكي. يستخدم تقييم المخرجات 20 قاعدة حتمية مدمجة عبر أربع فئات: الاكتمال، والملاءمة، والسلامة، والتكلفة. تكتشف قواعد السلامة PII (19 نمطًا بما في ذلك SSN وبطاقات الائتمان والهاتف والبريد الإلكتروني وIBAN وتاريخ الميلاد وMRN وIP ومفاتيح API وجوازات السفر ورموز موفري السحابة)، وحقن المطالبات (37 نمطًا)، وعلامات الهلوسة (25 إشارة تلفيق مرتبطة بالسياق)، وانتهاكات المسار مثل استدعاءات الأدوات الفاشلة غير المعترف بها، والاستدعاءات المتكررة، والوسائط المرفوضة حسب المخطط، والمصادر المذكورة التي لم يقرأها الوكيل أبدًا. توفر ميزة اختيارية للحكم عبر LLM تقييمًا دلاليًا عبر 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 للإدخال تتبعات JSON أو NDJSON من stdin أو ملف، ويقيمها، ويطبع سطر JSON واحد لكل تتبع مع الحكم، ويخرج برمز 1 عندما يطابق الحكم عامل تصفية --fail-on. يتيح ذلك التحكم في نشر الوكلاء بناءً على نتائج التقييم. يمكن تأليف قواعد مخصصة مضمنة (حتى 10 لكل استدعاء evaluate_output) أو نشرها بشكل دائم عبر deploy_rule. تشمل أنواع القواعد regex_match وregex_no_match وmin_length وmax_length وcontains_keywords وexcludes_keywords وjson_schema وcost_threshold. تستمر القواعد المنشورة في custom-rules.json ضمن دليل Iris الرئيسي وتعمل على كل تقييم مستقبلي لفئتها. تحدد مستويات الخطورة (منخفضة، متوسطة، عالية، حرجة) ما إذا كان فشل القاعدة يفشل التقييم بشدة أو يؤثر فقط على النتيجة. يتم تحديد الحكم النهائي بواسطة مُركِّب يقرأ كل قاعدة حسب نوع الادعاء: السياسات المكونة تتحكم، والكاشفات الحرجة تعترض، والفحوصات الحرجة التي لا يمكنها الإجابة تنتج حكمًا غير معروف، وتجمع الكاشفات المتبقية في احتمال يُوزن مقابل نسبة خسارة قابلة للتكوين. الانتهاكات الأمنية الحقيقية (no_pii وno_injection_patterns وno_blocklist_words) تفشل بشدة افتراضيًا. لكل قاعدة مدمجة درجات دقة واستدعاء وF1 منشورة مع فترات ثقة 95%، مقاسة على مجموعة بيانات موسومة في المستودع. يعيد CI تشغيل القياس في كل طلب سحب ويفشل إذا اختلفت الأرقام الملتزمة عما ينتجه الكود. Iris محلي أولاً: كل شيء يعيش في SQLite على القرص. يحدث HTTP الصادر فقط حيث تختار — مفتاح LLM الخاص بك، أو جلب الاستشهادات، أو مصدر OpenTelemetry الذي تكوينه. يدعم المشروع نشر Docker بمنفذين (3000 لنقل MCP HTTP و6920 للوحة التحكم والإدخال)، ويتكامل مع Claude Desktop وClaude Code وCursor وWindsurf وContinue وVS Code وCline وZed وCodex CLI وGemini CLI وأي وكيل متوافق مع MCP آخر.