Skip to content

मल्टी-एजेंट सिस्टम का मूल्यांकन कैसे करें

मल्टी-एजेंट LLM सिस्टम का मूल्यांकन करने, विफलताओं को ज़िम्मेदार एजेंट और हैंडऑफ़ पर आरोपित करने, इंटरैक्शन ग्राफ़ की समीक्षा करने, और प्रत्येक एजेंट तथा टीम को स्कोर करने के लिए एक व्यावहारिक मार्गदर्शिका।

एक मल्टी-एजेंट सिस्टम कई LLM एजेंट होते हैं (एक planner, एक coder, एक reviewer, इत्यादि) जो एक कार्य पर सहयोग करते हैं। इसका मूल्यांकन करने का मतलब अंतिम उत्तर को स्कोर करने से कहीं अधिक है, क्योंकि जो विफलताएँ मायने रखती हैं वे एजेंटों के बीच होती हैं: किसी हैंडऑफ़ पर एक छूटी हुई बाधा, गलत एजेंट का नियंत्रण लेना, एक टीम जो अपने काम को कभी सत्यापित नहीं करती। निर्णय की उपयोगी इकाई है कौन सा एजेंट, कौन सा चरण, और कौन सा हैंडऑफ़। Potato मल्टी-एजेंट रन के मानव मूल्यांकन के लिए एक ओपन-सोर्स टूल है, जिसमें टीम संरचना के लिए विशेष रूप से बनाई गई एनोटेशन सतहों का एक समूह है।

यहाँ एक मल्टी-एजेंट सिस्टम का अर्थ है एक LLM-संचालित वर्कफ़्लो जहाँ अलग-अलग एजेंट, प्रत्येक की एक भूमिका के साथ, संदेशों का आदान-प्रदान करते हैं और नियंत्रण सौंपते हैं। इन सिस्टमों के विफल होने पर शोध (MAST वर्गीकरण, Why Do Multi-Agent LLM Systems Fail?) पाता है कि विफलताओं का एक बड़ा हिस्सा इंटर-एजेंट होता है: विनिर्देश समस्याएँ, एजेंटों के बीच गलत-संरेखण, और छूटा हुआ सत्यापन। एक सपाट ट्रांसक्रिप्ट ठीक उन्हीं को छिपा देता है।

एकल-एजेंट मूल्यांकन पर्याप्त क्यों नहीं है?

जब आप एक एजेंट का मूल्यांकन करते हैं, तो आप विचारों, टूल कॉल, और अवलोकनों के एकल अनुक्रम को आँकते हैं। एक टीम ऐसी विफलता के तरीके जोड़ती है जो केवल एजेंटों के बीच मौजूद हैं:

  • हैंडऑफ़ हानि: एजेंट A एक बाधा जानता है जो एजेंट B को कभी प्राप्त नहीं होती।
  • गलत आरोपण: रन विफल होता है, लेकिन ज़िम्मेदार एजेंट उस स्थान से ऊपर की ओर है जहाँ त्रुटि सतह पर आई।
  • समन्वय विफलता: प्रत्येक एजेंट व्यक्तिगत रूप से सक्षम है, फिर भी टीम लूप करती है, अटक जाती है, या कभी सत्यापित नहीं करती।
  • संसाधन कंटेंशन: दो एजेंट एक साथ एक ही टूल या फ़ाइल को स्पर्श करते हैं और deadlock हो जाते हैं।

केवल अंतिम आउटपुट को स्कोर करना आपको बताता है कि टीम विफल हुई, यह नहीं कि कहाँ। आरोपण ही वह है जो डेटा को डिबगिंग या प्रशिक्षण के लिए उपयोगी बनाता है।

मैं एक मल्टी-एजेंट विफलता को कैसे आरोपित करूँ?

विफलता-आरोपण साहित्य (Zhang et al., Which Agent Causes Task Failures and When?, ICML 2025) लेबल को एक त्रिक के रूप में फ़्रेम करता है: ज़िम्मेदार एजेंट, निर्णायक चरण, और एक कारण। Potato में failure_attribution स्कीमा एजेंट और चरण चयनकर्ताओं को ट्रेस से ही भरती है, इसलिए एनोटेटर उन एजेंटों और चरणों में से चुनता है जो वास्तव में हुए:

yaml
annotation_schemes:
  - annotation_type: radio
    name: outcome
    description: "Did the system succeed?"
    labels: [success, failure]
  - annotation_type: failure_attribution
    name: attribution
    description: "If it failed: which agent, which step, and why?"
    steps_key: steps
    agent_key: agent

परिणाम स्कीमा को आरोपण के साथ जोड़ने का अर्थ है कि त्रिक केवल उन रन पर एकत्र किया जाता है जो वास्तव में विफल हुए।

मैं टीम संरचना की समीक्षा कैसे करूँ, न कि केवल ट्रांसक्रिप्ट की?

दो सतहें संरचना को दृश्यमान बनाती हैं। इंटरैक्शन ग्राफ़ एजेंटों को नोड्स के रूप में और हैंडऑफ़ को एज के रूप में रेंडर करता है, और एनोटेटर क्रिटिकल पाथ को चिह्नित करता है और समस्याग्रस्त एज को फ़्लैग करता है। हैंडऑफ़ समीक्षा प्रत्येक नियंत्रण स्थानांतरण को गलत-संरेखण फ़्लैग करने और गुणवत्ता रेट करने के लिए एक कार्ड में बदल देती है:

yaml
annotation_schemes:
  - annotation_type: handoff_review
    name: handoffs
    description: "For each handoff: flag any misalignment and rate the quality."
    steps_key: steps
    agent_key: agent
    flags: [info_loss, dropped_constraint, garbling, goal_drift]
    quality_scale: 5

स्कोरिंग के लिए, agent_scorecard प्रत्येक एजेंट को role fidelity, contribution, और coordination पर रेट करता है, और टीम को इसके अपने आयामों पर स्कोर करता है, इसलिए एक खराब समन्वित टीम के भीतर एक मज़बूत व्यक्तिगत एजेंट संख्याओं में दिखाई देता है।

मुझे कौन सी विधि का उपयोग करना चाहिए?

  • एक पाइपलाइन को डिबग करना: यह स्थानीयकृत करने के लिए कि रन कहाँ टूटते हैं, इंटरैक्शन ग्राफ़ और विफलता आरोपण से शुरुआत करें।
  • ऑर्केस्ट्रेशन पैटर्न की तुलना करना: समान कार्यों पर sequential बनाम hierarchical बनाम group-chat डिज़ाइन को स्कोर करने के लिए स्कोरकार्ड जोड़ें।
  • प्रशिक्षण या रिवॉर्ड डेटा बनाना: MAST मोड के साथ चरण-स्तर पर विफलताओं को टैग करें (trajectory_eval के माध्यम से) ताकि लेबल कार्यरत एजेंट और चरण से जुड़ें।
  • समवर्तिता बग: deadlocks और races पकड़ने के लिए टूल-कंटेंशन टाइमलाइन का उपयोग करें जिन्हें एक ट्रांसक्रिप्ट नहीं दिखा सकती।

आरोपण पर सहमति को उसी तरह मापें जैसे आप किसी भी व्यक्तिपरक लेबल के लिए करते हैं; इंटर-एनोटेटर सहमति देखें।

आगे पढ़ें