इंस्टॉल करें
llama-index-core 0.14.23 से 0.15। 0.14.23 वह रिलीज़ है जहां वर्कफ़्लो स्ट्रीम टाइप्ड एजेंट इवेंट्स ले जाना शुरू करता है जिन्हें यह एडाप्टर पढ़ता है। इससे नीचे, मॉडल नाम और एजेंट स्ट्रक्चर दोनों गायब हो जाते हैं।
इंस्ट्रूमेंट करें
async with के साथ-साथ with के तहत काम करता है और समान इवेंट्स तैयार करता है।
instrument() LlamaIndex के ग्लोबल डिस्पैचर को एक इवेंट हैंडलर और एक स्पैन हैंडलर से जोड़ता है। साथ में वे एजेंट लूप को दृश्यमान बनाते हैं, केवल इसके मॉडल कॉल्स नहीं।
टोकन काउंट्स
FunctionAgent को astream_chat कॉल करता है, और llama-index-llms-openai स्ट्रीम करते समय stream_options={"include_usage": True} नहीं भेजता है। प्रोवाइडर इसलिए कभी भी उपयोग चंक नहीं भेजता है, और किसी भी इंस्ट्रूमेंटेशन के लिए पढ़ने के लिए कुछ नहीं है।
यह अपस्ट्रीम LlamaIndex व्यवहार है। अपने LLM पर ऑप्ट इन करें:
गैर-स्ट्रीमिंग कॉल्स (
llm.chat, llm.achat) बिना कॉन्फ़िगरेशन के उपयोग की रिपोर्ट करते हैं। केवल स्ट्रीमिंग पाथ, जो डिफ़ॉल्ट एजेंट पाथ है, को इसकी आवश्यकता है।
क्या रिकॉर्ड होता है
agent_id जब आप एक सेट करते हैं तो FunctionAgent.name है, अन्यथा वर्कफ़्लो क्लास नाम है। एक AgentWorkflow के तहत, प्रत्येक एजेंट जो एक मोड़ लेता है वर्कफ़्लो के तहत अपना नेस्टेड स्पैन मिलता है, इसलिए एक हैंडऑफ दो एजेंट के रूप में पढ़ता है एक के बजाय।
रिट्रीवल आउटपुट डंप करने के बजाय सारांशित है। एक रिट्रीवर दस्तावेज़ लौटाता है, और उन्हें पेलोड में संग्रहीत करने से आपका कॉर्पस प्रति क्वेरी इवेंट्स स्टोर में एक बार जाएगा। काउंट, स्कोर रेंज, और ट्रंकेटेड स्निपेट्स बजाय संरक्षित हैं।
उदाहरण
init_run, setup_agent, run_agent_step, parse_agent_output, call_tool, और aggregate_tool_results। वे फ्रेमवर्क का अपना लूप हैं, इसलिए वे एजेंट के बजाय हुक हैं, जो agent_id को सार्थक रखता है।
अपने स्पैन्स को नाम दें
agent_id जब आप एक सेट करते हैं तो FunctionAgent.name है, अन्यथा वर्कफ़्लो क्लास नाम है।
AgentWorkflow में, वह नाम भी वह है जिसके तहत प्रत्येक हैंडऑफ रिकॉर्ड किया जाता है:
agent_id आपको बताता है कौन सा एजेंट काम किया और parent_id आपको बताता है कौन सा वर्कफ़्लो इसका था। एक एजेंट जो नियंत्रण बाद में वापस लाया गया वह एक दूसरा मोड़ खोलता है बजाय इसके अपना पहला फिर से खोलने के।
रन को ओवरराइड करने के लिए, या कई एजेंट्स को एक माता-पिता के तहत समूहीकृत करने के लिए रैप करें:
agent_id को कम कार्डिनलिटी रखें। यह हर डैशबोर्ड सर्फेस पर प्राथमिक पहलू है, इसलिए एक भूमिका या वर्कफ़्लो नाम का उपयोग करें, कभी UUID या प्रति-रन स्ट्रिंग नहीं।
सत्र को नियंत्रित करें
यह एडाप्टर कोईsession_id विकल्प नहीं लेता है। सत्र संलग्न स्कोप से आता है, अन्यथा प्रति वर्कफ़्लो रन uuid4().hex का जनन किया गया:
विकल्प
मानव लूप में
जब प्रतीक्षा एक टूल के अंदर होती है तो कैप्चर किया जाता है:ctx.wait_for_event कैप्चर नहीं है। रनटाइम डिस्पैचर तक पहुंचने से पहले ड्रॉप को पकड़ता है, इसलिए स्टेप निकलता है और बाद में पुनः चलता है कोई संकेत के बिना एक विराम पर कुंजी लगाने के लिए। FunctionAgent पैटर्न, जिसे LlamaIndex दस्तावेज़ करता है, एक टूल के अंदर प्रतीक्षा करता है और पूरी तरह कैप्चर है।
सामान्य समस्याएं
हर टोकन काउंट null है
हर टोकन काउंट null है
अपने LLM में
additional_kwargs={"stream_options": {"include_usage": True}} जोड़ें। Token counts देखें।उपयोग भरा हुआ है लेकिन टोकन कॉलम खाली हैं
उपयोग भरा हुआ है लेकिन टोकन कॉलम खाली हैं
LlamaIndex के पास कोई मानक उपयोग फील्ड नहीं है। एडाप्टर कई ज्ञात आकार की कोशिश करता है, और एक इंटीग्रेशन जो अपने काउंटर को कुछ नया नाम देता है वह उनमें से कोई भी मेल नहीं खाएगा।कच्चा dict हमेशा शिप किया जाता है, इसलिए पेलोड में
usage को चेक करें यह देखने के लिए कि आपके प्रोवाइडर ने उन्हें क्या कहा।खाली टोकन कॉलम के साथ एक भरा हुआ usage जानबूझकर है — यह एक आत्मविश्वास गलत संख्या से बेहतर है।टाइमलाइन setup_agent और parse_agent_output से भरा हुआ है
टाइमलाइन setup_agent और parse_agent_output से भरा हुआ है
यह FunctionAgent लूप है, प्रति पुनरावृत्ति एक सेट। डैशबोर्ड पर हुक नाम द्वारा फ़िल्टर करें। ये स्टेप समय आमतौर पर इस एडाप्टर का उपयोग करने का कारण हैं मॉडल-केवल के बजाय।
कुछ भी रिकॉर्ड नहीं है
कुछ भी रिकॉर्ड नहीं है
इस क्रम में जांचें:
instrument() रन से पहले चला; एक async with failproofai_sdk.session(): है await के चारों ओर; llama-index-core 0.14.23 या नवीनतर है; FAILPROOFAI_SDK_STRICT=1 सेट है, इसलिए एक degraded हुक निगला जाने के बजाय बढ़ता है।अगला
यह कैसे काम करता है
जोड़ी, आईडी, सत्र जीवनचक्र, और डिलीवरी।
एक ट्रेस पढ़ें
आप अभी-अभी कैप्चर किए गए सत्र के माध्यम से कार्य-कारण का पालन करें।
अन्य फ्रेमवर्क
LangGraph, CrewAI, Pydantic AI, और कस्टम एजेंट्स।

