मुख्य सामग्री पर जाएं

मूल्यांकन सूट

AgentEye पूर्ण किए गए एजेंट सेशन को पूरी इवेंट ट्रांसक्रिप्ट को एकल ग्राहक-स्वामित्व वाली मूल्यांकनकर्ता सेवा के लिए POST करके स्कोर करता है। मूल्यांकनकर्ता इनलाइन स्कोर लौटाता है या AgentEye के पोल करने के लिए एक job_id वापस कर देता है। परिणाम संग्रहीत किए जाते हैं और डैशबोर्ड में दिखाए जाते हैं। यह गाइड निम्नलिखित को कवर करती है:
  1. सेशन पूर्णता की पहचान कैसे की जाती है।
  2. मूल्यांकनकर्ता को लागू करना चाहिए HTTP अनुबंध।
  3. AgentEye सर्वर को कॉन्फ़िगर करना।
  4. परिणाम देखना।
  5. समस्या निवारण।
Python हेल्पर के लिए जो आपके लिए अनुबंध को लागू करता है, देखें PyPI पर agenteye-evaluator पैकेज

यह कैसे काम करता है

जब AgentEye SDK किसी सेशन के लिए एक agent_end इवेंट उत्सर्जित करता है, तो सर्वर एक मूल्यांकन शेड्यूल करता है। फिर यह पूरी इवेंट ट्रांसक्रिप्ट को आपकी मूल्यांकनकर्ता सेवा के लिए POST करता है, जो या तो:
  • परिणाम को इनलाइन लौटा सकता है {"status":"done", "scores":{...}, "reasoning":{...}, "summary":"..."} के साथ। परिणाम सेशन की मूल्यांकन टाइमलाइन में जोड़ा जाता है। reasoning और summary वैकल्पिक हैं।
  • स्थगित {"status":"pending", "job_id":"abc-123"} के साथ। AgentEye तब GET {EVALUATOR_ENDPOINT}/evaluate/abc-123 को कॉल करता है जब तक आपका मूल्यांकनकर्ता {"status":"done", ...} या {"status":"error", "error":"..."} न लौटाए। पोलिंग की गति प्रति-जॉब है: एक pending प्रतिक्रिया में next_poll_secs शामिल हो सकता है; अन्यथा AgentEye GET /config से default_poll_interval_secs मान का उपयोग करता है; अन्यथा सर्वर EVALUATOR_POLLING_INTERVAL_SECS (डिफ़ॉल्ट 10s) पर वापस गिरता है। सभी मान [1s, 1h] तक सीमित हैं।
सेशन जो कभी agent_end उत्सर्जित नहीं करते (उदाहरण के लिए, एक क्रैश एजेंट प्रक्रिया) भी उठाए जा सकते हैं: मूल्यांकनकर्ता का GET /config {"inactivity_timeout_secs": 1800} लौटा सकता है, और AgentEye किसी भी सेशन का मूल्यांकन करेगा जो उतने समय के लिए निष्क्रिय रहा है। इस फॉलबैक को अक्षम करने के लिए फ़ील्ड को null पर सेट करें या इसे छोड़ दें। EVALUATOR_ENDPOINT अनसेट होने पर पाइपलाइन पूरी तरह से no-op है। एक सेशन समय के साथ कई टर्मिनल मूल्यांकन जमा कर सकता है: प्रत्येक agent_end इवेंट (और डैशबोर्ड से प्रत्येक मैनुअल पुनः-मूल्यांकन) एक नई मूल्यांकन पंक्ति जोड़ता है। यह एक पुनः शुरू किए गए कथोपकथन का मूल्यांकन करने का समर्थित तरीका है: एक उपयोगकर्ता एक एजेंट को समाप्त करता है, बाद में वापस आता है, अधिक इवेंट भेजता है, एजेंट को फिर से समाप्त करता है, और एक दूसरा मूल्यांकन पूरी अपडेट की गई ट्रांसक्रिप्ट के विरुद्ध चलता है। डैशबोर्ड सबसे हाल के मूल्यांकन को हेडलाइन के रूप में और पूर्व मूल्यांकन को एक संक्षिप्त टाइमलाइन के रूप में प्रदर्शित करता है। जब एक मूल्यांकन एक सेशन के लिए चल रहा है, तो उस सेशन के लिए अतिरिक्त agent_end इवेंट को अनदेखा किया जाता है; चलने वाला मूल्यांकन पूरा होने के बाद अगला एक सामान्य तरीके से एक नया मूल्यांकन कतार में डालेगा। निष्क्रियता फॉलबैक पुनः शुरू किए गए सेशन पर भी फिर से जुड़ता है: यदि एक पूर्व टर्मिनल मूल्यांकन के बाद नए इवेंट आते हैं और सेशन तब inactivity_timeout_secs को पार करके निष्क्रिय हो जाता है, तो एक नया मूल्यांकन कतार में डाला जाता है। क्षणिक विफलताएं (5xx, 429, टाइमआउट, नेटवर्क त्रुटियां) EVALUATOR_MAX_ATTEMPTS तक घातीय बैकऑफ के साथ पुनः प्रयास की जाती हैं; 4xx प्रतिक्रियाएं टर्मिनल होती हैं। AgentEye को कई क्षैतिज रूप से स्केल किए गए सर्वर इंस्टेंस के साथ चलाना सुरक्षित है; कार्य विभाजित किया जाता है ताकि एक ही सेशन को कभी दो बार एक साथ भेजा न जाए।

HTTP अनुबंध

प्रत्येक प्रमाणित रूट बियरर टोकन प्रमाणीकरण का उपयोग करता है। दोनों पक्षों पर समान मान को कॉन्फ़िगर किया जाना चाहिए:
  • AgentEye सर्वर: env var EVALUATOR_TOKEN
  • मूल्यांकनकर्ता सेवा: समान तरीके से कॉन्फ़िगर किया गया (SDK agenteye-evaluator सम्मेलन के अनुसार EVALUATOR_TOKEN पढ़ता है)
यदि EVALUATOR_TOKEN अनसेट है, तो सर्वर कोई Authorization हेडर नहीं भेजता है; मूल्यांकनकर्ता तब अनाम अनुरोधों को स्वीकार कर सकता है, जो आंतरिक-केवल नेटवर्क के लिए ठीक है लेकिन सार्वजनिक इंटरनेट पर हतोत्साहित है।

मूल्यांकनकर्ता को सेवा देना चाहिए के रूट

रूटबॉडी / पैरामीटरप्रतिक्रिया
GET /healthकोई नहीं{"status":"ok"} (खुला, कोई प्रमाणीकरण नहीं)
GET /configकोई नहीं{"inactivity_timeout_secs": <int> | null, "default_poll_interval_secs": <int> | omitted}
POST /evaluateEvalRequest JSON{"status":"done", ...} या {"status":"pending", "job_id":"..."}
GET /evaluate/{id}कोई नहीं/evaluate जैसी ही प्रतिक्रिया आकार

सर्वर द्वारा भेजा गया EvalRequest बॉडी

प्रतिक्रिया आकार

सिंक (पूर्ण):
reasoning (एक प्रति-स्कोर न्यायसंगत नक्शा) और summary (एक समग्र एक-पैराग्राफ आख्यान) दोनों वैकल्पिक हैं। reasoning में कुंजियाँ scores में कुंजियों को प्रतिबिंबित करनी चाहिए; डैशबोर्ड प्रत्येक प्रविष्टि को इसके स्कोर बार के नीचे प्रस्तुत करता है। पुरानी मूल्यांकनकर्ता जो केवल scores लौटाते हैं वे अपरिवर्तित काम करना जारी रखते हैं; reasoning और summary बस null के रूप में पढ़े जाते हैं और संबंधित UI सामर्थ्य छोड़ दी जाती हैं। अतुल्यकालिक (स्थगित):
next_poll_secs वैकल्पिक है; यदि छोड़ा जाता है तो सर्वर /config से मूल्यांकनकर्ता के default_poll_interval_secs पर वापस गिरता है, फिर अपने EVALUATOR_POLLING_INTERVAL_SECS env var पर। टर्मिनल मूल्यांकनकर्ता-पक्ष त्रुटि:
सर्वर किसी भी अन्य 2xx बॉडी को प्रोटोकॉल त्रुटि के रूप में मानता है और सेशन के लिए एक टर्मिनल error रिकॉर्ड करता है।

SDK के साथ मूल्यांकनकर्ता लिखना

agenteye-evaluator Python पैकेज आपको एक टाइप किया हुआ FastAPI रैपर देता है जो ऊपर HTTP अनुबंध को लागू करता है। PyPI से इसे इंस्टॉल करें:
न्यूनतम व्यवहार्य मूल्यांकनकर्ता:
app इंस्टेंस ASGI-कॉल योग्य है, इसलिए uvicorn module:app इसे चलाता है। मूल्यांकनकर्ता के लिए जो महंगे कार्य को स्थगित करने की आवश्यकता है, इसके बजाय JobPending लौटाएं और एक @app.job_lookup हैंडलर पंजीकृत करें; AgentEye सर्वर GET /evaluate/{job_id} को पोल करता है जब तक आप एक टर्मिनल स्थिति न लौटाएं या EVALUATOR_MAX_POLL_DURATION_SECS कैप (डिफ़ॉल्ट 1 h) समाप्त न हो जाए। पूर्ण API संदर्भ, अतुल्यकालिक पैटर्न, और इवेंट स्कीमा: agenteye-evaluator README प्रत्येक रिलीज़ टारबॉल के अंदर agenteye-enterprise रिलीज़ पृष्ठ पर भेज दिया जाता है, या आप इसे पैकेज के PyPI पृष्ठ पर पढ़ सकते हैं।

Kubernetes पर मूल्यांकनकर्ता चलाना

मूल्यांकनकर्ता आपकी सेवा है: AgentEye कोई डिफ़ॉल्ट मूल्यांकनकर्ता कंटेनर शिप नहीं करता है। रिलीज़ में deploy/examples/evaluator/ के तहत संदर्भ Kubernetes मैनिफ़ेस्ट शामिल हैं जिन्हें आप अपनी इमेज और एक साझा बियरर टोकन को स्वैप करने के बाद यथावत लागू कर सकते हैं।

1. अपने मूल्यांकनकर्ता को कंटेनरीकृत करें

आपके मूल्यांकनकर्ता के लिए एक न्यूनतम Dockerfile:
runAsNonRoot (UID 10001) कंटेनर को Pod Security प्रतिबंधित प्रोफ़ाइल के साथ संगत रखता है।

2. साझा बियरर टोकन बनाएं

AgentEye सर्वर पर समान मान को EVALUATOR_TOKEN के रूप में उपयोग करें। सर्वर हर अनुरोध पर Authorization: Bearer <token> भेजता है; SDK hmac.compare_digest का उपयोग करता है और HTTP 401 के साथ मेल खाने से इनकार करता है।

3. उदाहरण मैनिफ़ेस्ट लागू करें

उदाहरण में शामिल हैं:
  • runAsNonRoot, पढ़ने के लिए केवल रूट फ़ाइलसिस्टम, सभी क्षमताएं छोड़े गए, /health पर जीवित + तैयारी के साथ 2-प्रतिकृति तैनाती
  • पोर्ट 9000 पर ClusterIP सेवा
  • एक secret.example.yaml टेम्पलेट (जानबूझकर Kustomization से बाहर रखा गया; वास्तविक गुप्त आउट-ऑफ-बैंड बनाएं ताकि कोई टोकन git में न पड़े)

4. AgentEye को इसके साथ जोड़ें

AgentEye सर्वर पर, सेट करें:
सर्वर सभी मूल्यांकनकर्ता pods में EVALUATOR_WORKERS × EVALUATOR_CLAIM_BATCH समवर्ती अनुरोधों को प्रशंसक करता है (डिफ़ॉल्ट: 2 × 4 = 8)। इन सर्वर-पक्ष नॉब्स के साथ संगति में replicas और प्रति-pod संसाधन सीमाएं स्केल करें।

सत्यापन

एजेंट समाप्त-से-अंत तक चलने के बाद, AgentEye सर्वर पर GET /evaluations को status: "done" और आपके मूल्यांकनकर्ता द्वारा उत्पादित स्कोर के साथ एक पंक्ति लौटानी चाहिए।

AgentEye सर्वर को कॉन्फ़िगर करना

सर्वर प्रक्रिया पर सेट करें:
Env varअर्थ
EVALUATOR_ENDPOINTआपके मूल्यांकनकर्ता का आधार URL (http://evaluator:9000)। Unset = पाइपलाइन अक्षम।
EVALUATOR_TOKENबियरर टोकन। मूल्यांकनकर्ता सेवा को कॉन्फ़िगर किए गए मान के बराबर होना चाहिए।
EVALUATOR_WORKERSसर्वर इंस्टेंस प्रति कार्यकर्ता कार्य (डिफ़ॉल्ट 2)।
EVALUATOR_CLAIM_BATCHप्रति कार्यकर्ता टिक पंक्तियां दावी की गई (डिफ़ॉल्ट 4)। बैच को समवर्ती रूप से संसाधित किया जाता है; आपके मूल्यांकनकर्ता endpoint पर प्रभावी समवर्तिता EVALUATOR_WORKERS × EVALUATOR_CLAIM_BATCH है।
EVALUATOR_POLL_IDLE_SECSजब कोई मूल्यांकन होने वाला नहीं है तो कार्यकर्ता को डिस्पैच प्रयास के बीच कितना सोना चाहिए (डिफ़ॉल्ट 2s)।
EVALUATOR_POLLING_INTERVAL_SECSGET /evaluate/{id} गति के लिए अंतिम फॉलबैक जब न तो प्रति-प्रतिक्रिया next_poll_secs और न ही मूल्यांकनकर्ता का default_poll_interval_secs सेट हो (डिफ़ॉल्ट 10s)।
EVALUATOR_REQUEST_TIMEOUT_MSप्रति-अनुरोध टाइमआउट (डिफ़ॉल्ट 30000)।
EVALUATOR_MAX_ATTEMPTSइस कई क्षणिक विफलताओं के बाद परिणाम टर्मिनल error के रूप में दर्ज किया जाता है (डिफ़ॉल्ट 5)।
EVALUATOR_CONFIG_REFRESH_SECSGET /config गति (डिफ़ॉल्ट 300)।
EVALUATOR_MAX_POLL_DURATION_SECSअधिकतम wallclock समय एक सेशन पोलिंग कतार में रह सकता है इससे पहले कि यह timeout के रूप में समाप्त हो (डिफ़ॉल्ट 3600s)। एक मूल्यांकनकर्ता को हमेशा pending लौटाना जारी रखने से बचाता है।
पूरे उदाहरण में स्वचालित स्कोरिंग को चालू करने के लिए, दोनों कुंजी सेट के साथ agenteye-evaluator Secret प्रदान करें। बंडल किए गए Kubernetes मैनिफ़ेस्ट पर, सर्वर इस वैकल्पिक Secret से EVALUATOR_ENDPOINT और EVALUATOR_TOKEN पढ़ता है। इसे अपने संगठन की मानक गुप्त-प्रबंधन प्रक्रिया के माध्यम से बनाएं, फिर परिवर्तन को उठाने के लिए सर्वर Deployment को पुनः शुरू करें। ऊपर दिए गए ट्यूनिंग नॉब्स डिफ़ॉल्ट रूप से वायर्ड नहीं हैं; यदि आपको डिफ़ॉल्ट को ओवरराइड करने की आवश्यकता है तो अपने Deployment मैनिफ़ेस्ट में सर्वर कंटेनर पर संबंधित पर्यावरण चर को उजागर करें। पूर्ण env var तालिका के लिए deployment.md देखें।

API संदर्भ

विधिपथआवश्यक अनुमतिउद्देश्य
GET/evaluationsevaluations:readटर्मिनल परिणाम क्वेरी करें। session_id, agent_id, environment, status (done/error/timeout), ts_from, ts_to, cursor, limit, score_filters, latest_per_session का समर्थन करता है। limit डिफ़ॉल्ट रूप से 50 है और 200 पर सीमित है (ध्यान दें कि यह /events से भिन्न है, जो 1000 पर सीमित है)। environment अल्पविराम-अलग सूची (उदाहरण के लिए environment=prod,staging) स्वीकार करता है; एकल मान अभी भी काम करते हैं। latest_per_session=true के साथ प्रतिक्रिया में प्रति session_id सबसे अधिक एक पंक्ति होती है (completed_at के अनुसार सबसे हाल की) जिसका उपयोग सेशन-सूची पृष्ठ द्वारा सेशन की मूल्यांकन टाइमलाइन को इसकी वर्तमान हेडलाइन में संक्षिप्त करने के लिए किया जाता है। डिफ़ॉल्ट false है (पूरा इतिहास लौटाता है)।
GET/evaluations/aggregateevaluations:readएक फ़िल्टर किए गए स्लाइस के लिए रोल-अप मूल्यांकन स्वास्थ्य: कुल गणना, done/error/timeout ब्रेकडाउन, प्रति-स्कोर-कुंजी सांख्यिकी (मनमाने ढंग से scores कुंजियों पर गणना/औसत/न्यूनतम/अधिकतम/p50), और एक समय-बकेटेड टाइमलाइन। /evaluations के रूप में समान फ़िल्टर पैरामीटर स्वीकार करता है प्लस featured_keys (ट्रेंड करने के लिए स्कोर कुंजियों की CSV) और latest_per_session। डैशबोर्ड सुविधा को शक्ति देता है; मेट्रिक्स पूरे मेल खाने वाले सेट पर सटीक हैं, नमूना नहीं।
GET/evaluations/environmentsevaluations:readevaluations तालिका से विशिष्ट environment मान। मूल्यांकन-पठनीय डेटा के दायरे में फ़िल्टर ड्रॉपडाउन भरने के लिए उपयोग किया जाता है।
GET/evaluation-jobsevaluations:readइन-फ्लाइट मूल्यांकन में दृश्यमानता। status (pending/polling) द्वारा फ़िल्टर करें।
GET/eventsevents:readसेशन के raw events स्ट्रीम करें। session_id, agent_id, event_type (CSV), environment (CSV), ts_from, ts_to, cursor, limit, और order का समर्थन करता है। order desc (newest-first, डिफ़ॉल्ट) या asc (oldest-first) है; एक अस्पष्ट मान desc पर वापस गिरता है। प्रतिक्रिया के next_cursor (एक event id) के माध्यम से कर्सर-पैगिनेट करें: अगला पृष्ठ प्राप्त करने के लिए इसे cursor के रूप में वापस पास करें; asc के साथ अगला पृष्ठ उस id के बाद की events है, desc के साथ इससे पहले की events है। limit डिफ़ॉल्ट रूप से 50 है और 1000 पर सीमित है।
GET/sessions/:session_id/exportevents:readsession-<id>.json नामित डाउनलोड करने योग्य संलग्नक के रूप में सेवा की गई सटीक JSON बॉडी लौटाता है जो मूल्यांकनकर्ता को प्राप्त होगी। ऑफ़लाइन परीक्षण के लिए agenteye-evaluator के माध्यम से उत्पादन सेशन को पुनः चलाना उपयोगी है। बाइट वह हैं जो मूल्यांकनकर्ता पाइपलाइन भेजता है।
POST/sessions/:session_id/re-evaluateevaluations:triggerसेशन के लिए एक नया मूल्यांकन कतार में डालें; चाहे कोई पूर्व मूल्यांकन मौजूद हो या नहीं। नया परिणाम सेशन की मूल्यांकन टाइमलाइन में जोड़ा जाता है पिछले एक को ओवरराइट करने के बजाय, इसलिए पिछले स्कोर इतिहास के रूप में दृश्यमान रहते हैं। कतार पर 202 लौटाता है, अज्ञात सेशन के लिए 404, यदि मूल्यांकन पहले से ही चल रहा है तो 409। एक नए मूल्यांकनकर्ता को तैनात करने के बाद, या सेशन के लिए जो कभी agent_end उत्सर्जित नहीं करते, इसका उपयोग करें।

स्कोर रेंज द्वारा फ़िल्टर करना: score_filters

GET /evaluations एक वैकल्पिक score_filters पैरामीटर स्वीकार करता है जो scores ऑब्जेक्ट के अंदर संख्यात्मक मान द्वारा परिणामों को सीमित करता है। पैरामीटर key:min..max प्रविष्टियों की अल्पविराम-अलग सूची है; या तो बाउंड छोड़ा जा सकता है। कई प्रविष्टियां तार्किक AND के साथ संयोजित होती हैं। जहां नामित कुंजी अनुपस्थित है या गैर-संख्यात्मक है वहां पंक्तियों को बाहर रखा जाता है। एक अनुरोध में सबसे अधिक 20 फ़िल्टर प्रविष्टियां हो सकती हैं; उससे अधिक HTTP 400 लौटाता है। उदाहरण:
प्रत्येक /evaluations प्रतिक्रिया ऑब्जेक्ट में ये क्षेत्र हैं:
क्षेत्रप्रकारनोट्स
evaluation_idstring (UUID)इस टर्मिनल मूल्यांकन के लिए विहित पहचानकर्ता। प्रत्येक टर्मिनल मूल्यांकन को एक नया UUID मिलता है; एक एकल सेशन कई रख सकता है।
idstring (UUID)पिछड़े-संगतता उपनाम evaluation_id के समान मान ले जाता है।
session_idstringसेशन जिस पर यह मूल्यांकन चला। एक सेशन टाइमलाइन में कई मूल्यांकन हो सकते हैं।
agent_idstringएजेंट की पहचान करता है जो सेशन का निर्माण किया।
environmentstringसेशन से कॉपी किया गया Environment लेबल।
statusenum"done", "error", "timeout" में से एक।
scoresobject | nullआपके मूल्यांकनकर्ता द्वारा लौटाए गए स्कोर।
reasoningobject | nullआपके मूल्यांकनकर्ता द्वारा लौटाया गया वैकल्पिक प्रति-स्कोर न्यायसंगत नक्शा। कुंजियां आम तौर पर scores में उन लोगों को प्रतिबिंबित करती हैं। डैशबोर्ड अपने स्कोर बार के नीचे प्रत्येक प्रविष्टि प्रस्तुत करता है।
summarystring | nullआपके मूल्यांकनकर्ता द्वारा लौटाया गया वैकल्पिक एक-पैराग्राफ समग्र आख्यान। डैशबोर्ड इसे प्रति-स्कोर ब्रेकडाउन के ऊपर मूल्यांकन की हेडलाइन के रूप में प्रस्तुत करता है।
errorstring | null"error" / "timeout" पर ही आबादी।
attempt_countintegerडिस्पैच प्रयासों की संख्या (≥ 1)।
duration_msinteger | nullअंतिम प्रयास की अवधि।
completed_atstring (ISO 8601 UTC)जब टर्मिनल परिणाम दर्ज किया गया था। परिणाम completed_at द्वारा क्रमबद्ध हैं (newest first)।
created_atstring (ISO 8601 UTC)completed_at के समान टाइमस्टैम्प रखता है (write-once semantics)।

अनुमति

अनुमतिअनुदान
evaluations:readमूल्यांकन परिणाम सूचीबद्ध करें, डैशबोर्ड में स्कोर देखें, और डैशबोर्ड स्वास्थ्य मेट्रिक्स लोड करें।
evaluations:triggerPOST /sessions/:session_id/re-evaluate के माध्यम से या डैशबोर्ड के पुनः-मूल्यांकन बटन के माध्यम से सेशन के लिए मैन्युअल रूप से एक मूल्यांकन कतार में डालें।
dashboards:readसहेजे गए डैशबोर्ड देखें (उनके मेट्रिक्स लोड करने के लिए evaluations:read की भी आवश्यकता है)।
dashboards:writeडैशबोर्ड बनाएं और संपादित करें।
dashboards:deleteडैशबोर्ड हटाएं।
बूटस्ट्रैप एडमिन (ADMIN_KEY, ADMIN_EMAIL) स्वचालित रूप से इन्हें प्राप्त करता है।

परिणाम देखना

  • /sessions/<id>: events टाइमलाइन + एक दाएं रेल जो सेशन के स्कोर और डिस्पैच प्रयास से कोई त्रुटि दिखाता है। यदि आपकी कुंजी के पास evaluations:trigger है, तो निर्यात बटन के बगल में एक पुनः-मूल्यांकन बटन दिखाई देता है, जो उन सेशन के लिए उपयोगी है जिन्होंने कभी agent_end उत्सर्जित नहीं किए, या नए मूल्यांकनकर्ता को तैनात करने के बाद स्कोर को ताज़ा करने के लिए। डैशबोर्ड नई परिणाम के लिए पोल करता है और दाएं रेल को अपडेट करता है जब यह पहुंचता है।
  • /sessions: फ़िल्टर करने योग्य सेशन ग्रिड; स्कोर कॉलम प्रत्येक सेशन की मूल्यांकन स्थिति और स्कोर को एक नज़र में दिखाता है।
  • /dashboards: सहेजे गए मूल्यांकन-स्वास्थ्य दृश्य (नीचे डैशबोर्ड देखें)।
सेशन ग्रिड प्रति-सेशन मूल्यांकन स्थिति गोलियों और रंग-कोडित स्कोर बैज (helpfulness, factuality, tool_efficiency, safety, coherence) के साथ सेशन ग्रिड प्रत्येक रन की मूल्यांकन स्थिति और स्कोर को एक नज़र में दिखाता है; लाल/एम्बर/हरी बैज कम स्कोर को बाहर निकालते हैं। दाएं रेल में मूल्यांकन स्कोर और डिस्पैच स्थिति के साथ सेशन विस्तार दृश्य सेशन खोलने से पूरी टाइमलाइन दाएं रेल में मूल्यांकन स्कोर और कोई डिस्पैचर त्रुटि के साथ दिखाई देती है।

डैशबोर्ड

डैशबोर्ड पृष्ठ (/dashboards) आपको मूल्यांकन फ़िल्टर के एक संयोजन को एक नामित, पुन: उपयोग करने योग्य दृश्य के रूप में सहेजने देता है और देखता है कि मूल्यांकन का वह स्लाइस एक नज़र में कैसा कर रहा है। डैशबोर्ड आपके पूरे संगठन में साझा हैं; dashboards:read के साथ सभी को समान सेट दिखाई देता है। प्रत्येक डैशबोर्ड पिन करता है:
  • फ़िल्टर: सेशन पृष्ठ के समान नियंत्रण: environment, स्थिति, एजेंट, एक रोलिंग समय विंडो, और स्कोर-रेंज फ़िल्टर (key:min..max)।
  • एक प्रदर्शन कॉन्फ़िगरेशन: कौन सी स्कोर कुंजियों को दिखाना है, हरी/एम्बर/लाल स्वास्थ्य थ्रेशोल्ड, कौन से पैनल दिखाएं, और क्या प्रति सेशन नवीनतम मूल्यांकन में संक्षिप्त करें।
प्रत्येक कार्ड मेल खाने वाले सेशन की संख्या, एक done/error/timeout ब्रेकडाउन, प्रत्येक विशेष स्कोर का औसत, और एक छोटा trend sparkline दिखाता है। डैशबोर्ड खोलने से पूर्ण आकार के पैनल दिखाई देते हैं; “सेशन में खोलें” आपको सेशन पृष्ठ पर ठीक उसी स्लाइस के साथ पूर्व-फ़िल्टर किया जाता है। मेट्रिक्स पूरे मेल खाने वाले सेट के ऊपर सर्वर-पक्ष (GET /evaluations/aggregate) पर गणना की जाती हैं, इसलिए संख्याएं नमूना के बजाय सटीक होती हैं। eval-health डैशबोर्ड प्रति evaluator आयाम औसत-स्कोर बार, एक tool ok-vs-error ब्रेकडाउन, top tools, और एक events-per-hour trend के साथ अनुमतियां: देखने के लिए dashboards:read और evaluations:read दोनों की आवश्यकता होती है; बनाने और संपादित करने के लिए dashboards:write की आवश्यकता होती है; हटाने के लिए dashboards:delete की आवश्यकता होती है। बूटस्ट्रैप एडमिन स्वचालित रूप से ये सभी प्राप्त करता है।

समस्या निवारण

सेशन मौजूद हैं लेकिन कोई मूल्यांकन नहीं बनाए जाते हैं। पुष्टि करें कि EVALUATOR_ENDPOINT सर्वर प्रक्रिया पर सेट है, कि सर्वर और मूल्यांकनकर्ता समान EVALUATOR_TOKEN मान साझा करते हैं, और कि मूल्यांकनकर्ता का /health endpoint सर्वर से पहुंच योग्य है। EVALUATOR_ENDPOINT अनसेट के साथ पाइपलाइन एक no-op है। इन-फ्लाइट मूल्यांकन ढेर हो जाते हैं। इन-फ्लाइट कतार देखने के लिए GET /evaluation-jobs क्वेरी करें। प्रत्येक पंक्ति पर attempt_count, next_attempt_at, और last_error की जांच करें। सामान्य कारण: मूल्यांकनकर्ता सेवा अप्राप्य या 5xx लौटा रहा है (बैकऑफ के साथ पुनः प्रयास किया गया), गलत EVALUATOR_TOKEN (401 टर्मिनल है), या एक async मूल्यांकनकर्ता जो pending को अनिश्चित काल तक लौटाता है (नीचे देखें)। सेशन पूर्ण होते हैं लेकिन कोई टर्मिनल मूल्यांकन नहीं। GET /evaluation-jobs?status=polling क्वेरी करें; परिणाम अभी भी चल सकता है। यदि कोई जॉब pending में फंस गया है, तो सर्वर को मूल्यांकनकर्ता तक पहुंचने में परेशानी हो रही है; जांचें कि मूल्यांकनकर्ता ऊपर है और EVALUATOR_TOKEN मेल खाता है। मूल्यांकनकर्ता से HTTP 401: invalid bearer token सर्वर पर EVALUATOR_TOKEN मूल्यांकनकर्ता सेवा को कॉन्फ़िगर किए गए मान से मेल नहीं खाता है। वे समान होने चाहिए। Async मूल्यांकनकर्ता pending को हमेशा लौटाता है। सर्वर GET /evaluate/{job_id} को पोल करता है जब तक मूल्यांकनकर्ता done या error न लौटाए, या जब तक EVALUATOR_MAX_POLL_DURATION_SECS (डिफ़ॉल्ट 1 h) समाप्त न हो जाए। कैप के बाद मूल्यांकन timeout के रूप में दर्ज किया जाता है और इन-फ्लाइट कतार से हटा दिया जाता है। यदि आपका मूल्यांकनकर्ता वैध रूप से डिफ़ॉल्ट से अधिक की आवश्यकता है तो EVALUATOR_MAX_POLL_DURATION_SECS बढ़ाएं।