ADK-Rust v2: एजेंट फ्रेमवर्क से प्रोडक्शन रनटाइम तक।
यह कहानी कि कैसे टूल, वर्कफ़्लो, स्टेट, रीयलटाइम मीडिया, कोडिंग एजेंट, ओपन प्रोटोकॉल और ऑपरेटिंग कंट्रोल एक कंपोज़ेबल Rust सिस्टम बन गए।
मार्च में, हमने ADK-Rust v0.5 की कहानी प्रकाशित की थी। उस रिलीज़ ने फ्रेमवर्क को और अधिक सक्षम बनाया: रिट्रीवल, कोड एग्ज़िक्यूशन, अतिरिक्त मॉडल प्रोवाइडर, ड्यूरेबल ग्राफ़, एन्क्रिप्टेड सेशन, और एक CLI जो एक उपयोगी शुरुआती प्रोजेक्ट बना सकता था।
अगला सवाल ज़्यादा मुश्किल था। क्या वे क्षमताएँ एक ऐसा प्रोडक्शन सिस्टम बन सकती थीं जिसे एक डेवलपर कंपोज़ कर सके, ऑब्ज़र्व कर सके, सुरक्षित कर सके, डिप्लॉय कर सके और चालू रख सके? v2 तक का सफर इसका जवाब है। इसने ADK-Rust को एक बढ़ते हुए एजेंट टूलकिट से ऐसे उत्पादों के लिए एक Rust रनटाइम में बदल दिया, जिनके एजेंट बात करते हैं, टूल का उपयोग करते हैं, काम का समन्वय करते हैं, आर्टिफैक्ट बनाते हैं और ओपन प्रोटोकॉल पर सहयोग करते हैं।
पिछला अध्याय पढ़ें: ADK-Rust v0.5v2 तक का रास्ता
एजेंट सुविधाओं को एक सिस्टम में बदलने के छह महीने।
प्रत्येक रिलीज़ ने प्रोडक्शन समस्या के एक अलग हिस्से को हल किया। साथ मिलकर, उन्होंने यह बदल दिया कि डेवलपर एक Rust रनटाइम के इर्द-गिर्द क्या उचित रूप से बना सकते हैं।
फ्रेमवर्क ने ज़्यादा तरह के काम सीखे
RAG, कोड एग्ज़िक्यूशन, प्रोवाइडर सुधार, ड्यूरेबल ग्राफ़, एन्क्रिप्टेड सेशन, और cargo-adk ने एक Rust एजेंट क्या कर सकता था, इसका विस्तार किया।
एजेंटों ने वास्तविक सिस्टम सीमाओं को पार किया
A2A पूर्ण रिमोट-टास्क फ़्लो तक पहुँच गया। AWP ने वेबसाइटों को एक एजेंट इंटरफ़ेस दिया। MCP सर्वर ने प्रबंधित जीवनचक्र प्राप्त किए, जबकि मेमोरी और साझा स्टेट बड़े उत्पादों के लिए सुरक्षित हो गए।
कंपोज़िशन एक डेवलपर अनुभव बन गया
फ़ीचर टियर ने डिफ़ॉल्ट डिपेंडेंसी सतह को कम कर दिया। ACP आ गया, स्कीमा प्रत्येक मॉडल प्रोवाइडर के अनुकूल हो गए, और टेम्प्लेट के साथ-साथ ऐड-ऑन ने आर्किटेक्चर को कॉपी करने के बजाय एक विकल्प बना दिया।
नींव स्थिर हो गई
उनतालीस क्रेट्स सिमेंटिक-वर्जनिंग प्रतिबद्धताओं, मज़बूत डॉक्यूमेंटेशन गेट्स, सुरक्षा कार्य, मूल्यांकन, प्रबंधित रनटाइम, और एंटरप्राइज़ डिप्लॉयमेंट API के साथ स्थिर टियर तक पहुँच गए।
रनटाइम उत्पाद की रीढ़ बन गया
CodingAgent और CodeAct एजेंट परिवार में शामिल हो गए। टूल कॉल, प्रगति, परिणाम, रद्दीकरण, रीयलटाइम मीडिया, नॉलेज-ग्राफ़ मेमोरी और ओपन प्रोटोकॉल अब स्पष्ट रनटाइम कॉन्ट्रैक्ट्स के माध्यम से यात्रा करते हैं।
निर्णायक मोड़
एक प्रोडक्शन एजेंट मॉडल कॉल से कहीं ज़्यादा है।
शुरुआती एजेंट उदाहरण स्वाभाविक रूप से एक प्रॉम्प्ट, एक मॉडल और एक प्रतिक्रिया पर केंद्रित थे। वास्तविक उत्पादों ने जल्दी ही बाकी काम को उजागर किया: यह तय करना कि कौन एक टूल को कॉल कर सकता है, स्टेट को संरक्षित करना, प्रगति दिखाना, अनुमोदन के बाद फिर से शुरू करना, एक जेनरेटेड फ़ाइल को स्थानांतरित करना, एक विफलता का पता लगाना, और उन सेवाओं से बात करना जो दूसरी टीम से संबंधित हैं।
v2 उन जिम्मेदारियों को Rust कॉन्ट्रैक्ट्स के साथ फ्रेमवर्क संबंधी चिंताओं के रूप में मानता है। मॉडल महत्वपूर्ण बना रहता है, लेकिन यह टूल, सेशन, इवेंट, कॉलबैक, बाउंड्री और ऑपरेटिंग पॉलिसी के साथ एक इनवोकेशन के अंदर चलता है। आप मॉडल को उसके इर्द-गिर्द उत्पाद को फिर से डिज़ाइन किए बिना बदल सकते हैं।
यही प्रमुख संस्करण के पीछे का आर्किटेक्चरल बदलाव है: एजेंट व्यवहार और उत्पाद इन्फ्रास्ट्रक्चर अब एक ही रनटाइम में मिलते हैं, जबकि कंपोज़ और टेस्ट करने के लिए पर्याप्त रूप से अलग रहते हैं।
v2 आर्किटेक्चर
पूरे उत्पाद के माध्यम से काम के एक हिस्से का पालन करें।
एक अनुरोध एक मानव इंटरफ़ेस या एक एजेंट प्रोटोकॉल के माध्यम से आ सकता है। Runner इसे संदर्भ देता है, सही एजेंट आकार को इनवोक करता है, और टाइप किए गए इवेंट्स को स्ट्रीम करता है जबकि टूल, स्टेट और ऑपरेटिंग कंट्रोल काम का समर्थन करते हैं।
लोग और सिस्टम
उत्पाद सतहें
एक एग्ज़िक्यूशन कॉन्ट्रैक्ट
Runner और टाइप किया गया इवेंट स्ट्रीम
काम का आकार चुनें
कंपोज़ेबल एजेंट
एजेंटों को उपयोगी पहुँच दें
टूल, ज्ञान और स्टेट
उत्पादन को समझने योग्य बनाए रखें
परिचालन नियंत्रण
प्रक्रिया के भीतर
एजेंट, उपकरण, सत्र, कॉलबैक, इवेंट और रद्दीकरण Rust ट्रेड्स और प्रकार साझा करते हैं।
एक सीमा के पार
MCP, A2A, ACP, AWP, HTTP, और रीयलटाइम ट्रांसपोर्ट विभिन्न मालिकों वाले सिस्टम को जोड़ते हैं।
उत्पाद के लिए दृश्यमान
एक ही इवेंट स्ट्रीम एक CLI, वेब UI, API क्लाइंट, ट्रेस व्यूअर, या रिमोट एजेंट को चला सकती है।
देखें कि यह कैसे काम करता है
निष्पादन ट्रेल एक उत्पाद इंटरफ़ेस है।
एक उपयोगी एजेंट को अपने अंतिम वाक्य से अधिक दिखाने की आवश्यकता होती है। v2 हर सार्थक चरण को इवेंट स्ट्रीम में एक स्थान देता है, ताकि डेवलपर्स काम के होते ही उसके चारों ओर इंटरफ़ेस बना सकें।
अनुरोध
एक व्यक्ति, सेवा, या एजेंट काम शुरू करता है।
निर्णय लें
एक एजेंट या वर्कफ़्लो अगला सार्थक कार्य चुनता है।
कार्य करें
एक उपकरण, विशेषज्ञ, मॉडल, या रिमोट सिस्टम चरण को निष्पादित करता है।
स्ट्रीम करें
टाइप्ड इवेंट कॉल, प्रगति, परिणाम और स्थिति परिवर्तन ले जाते हैं।
जारी रखें
रनटाइम प्रतिक्रिया देता है, इनपुट के लिए रुकता है, पुनः प्रयास करता है, या बाद में फिर से शुरू होता है।
कल्पना कीजिए कि एक CodingAgent एक टेस्ट सूट चला रहा है। UI को टूल कॉल, लाइन-बाय-लाइन stdout और stderr, टाइप्ड परिणाम, कोई भी स्थिति या कलाकृति परिवर्तन, और एजेंट का अगला निर्णय एक सहसंबद्ध स्ट्रीम के माध्यम से प्राप्त होता है। यदि कार्य को अनुमोदन की आवश्यकता है या प्रक्रिया बाधित होती है, तो सत्र और चेकपॉइंट जारी रखने के लिए एक स्पष्ट स्थान प्रदान करते हैं।
v2 एक डेवलपर को क्या देता है
एजेंट जीवनचक्र के लिए एक ढाँचा।
आप एक संवादात्मक एजेंट से शुरुआत कर सकते हैं और संरचना तभी जोड़ सकते हैं जब उत्पाद को इसकी आवश्यकता हो। सिस्टम के बढ़ने पर भी वही मुख्य अनुबंध बने रहते हैं।
एजेंट विभिन्न तरीकों से काम कर सकते हैं
लचीले तर्क के लिए एक LLM एजेंट का उपयोग करें, ज्ञात अनुक्रमों के लिए नियतात्मक वर्कफ़्लो एजेंटों का, ब्रांचिंग और टिकाऊ काम के लिए ग्राफ़ का, आवाज और वीडियो के लिए रीयलटाइम एजेंटों का, रिपॉजिटरी काम के लिए CodingAgent का, या CodeAct का उपयोग करें जब एक मॉडल को मल्टी-स्टेप एक्शन को निष्पादन योग्य कोड के रूप में व्यक्त करना चाहिए।
प्रगति API का हिस्सा है
टूल कॉल और टूल परिणाम टाइप्ड इवेंट होते हैं। लंबे समय तक चलने वाले उपकरण एजेंट प्रतिक्रिया के समान स्ट्रीम में प्रगति उत्सर्जित कर सकते हैं, जिसमें कॉल आईडी अनुरोध, लाइव आउटपुट और अंतिम परिणाम को जोड़ते हैं। एक UI लॉग को स्क्रैप किए बिना काम को रेंडर कर सकता है।
स्थिति एक मॉडल टर्न से अधिक समय तक रह सकती है
सत्र वार्तालाप को संरक्षित करते हैं, कलाकृतियाँ जेनरेट की गई फ़ाइलों को रखती हैं, ग्राफ़ चेकपॉइंट वर्कफ़्लो को फिर से शुरू करते हैं, और सिमेंटिक या द्वि-कालिक ज्ञान-ग्राफ़ मेमोरी एजेंटों को ऐसा संदर्भ देती है जो बाद के सत्रों में उपयोगी रहता है।
ओपन प्रोटोकॉल के स्पष्ट कार्य हैं
MCP उपकरण और संसाधनों को जोड़ता है, A2A स्वतंत्र रूप से तैनात एजेंटों को जोड़ता है, ACP CodingAgent क्लाइंट और सर्वर को जोड़ता है, और AWP एक वेबसाइट को उसके मानव इंटरफ़ेस के साथ एजेंटों के लिए एक संरचित इंटरफ़ेस देता है।
स्वायत्तता की परिचालन सीमाएँ हैं
प्राधिकरण कॉलबैक, स्कोप्ड टूल, गार्डरेल्स, अनुमोदन, सैंडबॉक्स नीतियां, रद्दीकरण, टेलीमेट्री, मूल्यांकन और ऑडिट साक्ष्य एक टीम को यह तय करने देते हैं कि एक एजेंट क्या कर सकता है और बाद में क्या हुआ इसकी जांच कर सकता है।
आप अपनी आवश्यकतानुसार उत्पाद संकलित करते हैं
न्यूनतम टियर पहले एजेंट को छोटा रखता है। स्टैंडर्ड सामान्य उत्पादन स्टैक जोड़ता है; एंटरप्राइज़ रीयलटाइम, ब्राउज़र, RAG, भुगतान और AWP जोड़ता है; पूर्ण सबसे भारी ऑडियो और निष्पादन क्षमताएं जोड़ता है। व्यक्तिगत सुविधाएँ तब भी उपलब्ध रहती हैं जब एक प्रीसेट बहुत व्यापक होता है।
शुरुआती अनुभव
एक कार्यशील आकार चुनें, फिर उसे अपना बनाएं।
v2 CLI निष्पादन आकार को स्केफोल्ड कर सकता है और आसपास की क्षमताओं को जोड़ सकता है। जेनरेट किया गया प्रोजेक्ट अभी भी Rust जैसा दिखता है जिसे आप स्वयं लिखेंगे और समीक्षा करेंगे।
बनाएँ और सत्यापित करें
cargo install cargo-adk
cargo adk new support-agent \
--template tools \
--addon sessions \
--addon telemetry \
--addon guardrails
cd support-agent
cargo adk build
cargo runएजेंट को संयोजित करें
let agent = LlmAgentBuilder::new("support")
.description("Resolves customer issues")
.instruction("Use the reviewed tools and cite evidence.")
.model(Arc::new(model))
.tool(Arc::new(LookUpOrder))
.before_tool(approval_gate)
.build()?;
Launcher::new(Arc::new(agent))
.run()
.await?;बारह टेम्पलेट सामान्य शुरुआती आर्किटेक्चर को कवर करते हैं। नौ ऐड-ऑन सत्र, टेलीमेट्री, MCP, प्रमाणीकरण, ब्राउज़र टूल और गार्डरेल्स जैसी क्षमताओं को संयोजित करते हैं। पांच एंटरप्राइज़ पैटर्न बड़े परिनियोजन आकार प्रदान करते हैं। cargo adk build परिनियोजन से पहले जेनरेट किए गए प्रोजेक्ट की जाँच करता है।
v2 स्रोत के विरुद्ध सत्यापित
कहानी के पीछे के विवरण।
अगला अध्याय एक वास्तविक एजेंट से शुरू होता है
पहला वर्कफ़्लो बनाएँ। उत्पादन का मार्ग खुला रखें।
एक अनुरोध, एक दृश्यमान टूल कॉल, और एक सत्र जिसे आप समझते हैं, से शुरू करें। ADK-Rust v2 उस छोटे एजेंट को वर्कफ़्लो, मेमोरी, ओपन प्रोटोकॉल, रीयलटाइम इंटरफ़ेस, सुरक्षा और परिनियोजन का सीधा मार्ग देता है जब उत्पाद उनके लिए तैयार होता है।