इस प्रोजेक्ट के बारे में

एजेंट सब्सट्रेट एक सुरक्षित-डिफ़ॉल्ट एजेंट निष्पादन रनटाइम है जिसे मानक कंटेनर रनटाइम की तुलना में 10x अधिक घनत्व के साथ लाखों सैंडबॉक्स चलाने के लिए इंजीनियर किया गया है। स्वायत्त एजेंटों के लिए विशेष रूप से निर्मित, यह 500 मिलीसेकंड से कम की रिज़्यूम प्रक्रियाएं प्रति सेकंड 500 से अधिक सस्पेंड/रिज़्यूम सक्रियणों पर प्रदान करता है, साथ ही मूल ज़ीरो-ट्रस्ट कर्नेल और नेटवर्क अलगाव के साथ। यह माइक्रोवीएम और gVisor सहित कई सैंडबॉक्स तकनीकों का समर्थन करता है, जिससे सभी सैंडबॉक्स प्रकारों के लिए सुसंगत जीवनचक्र संचालन संभव होता है। इसके मूल में, एजेंट सब्सट्रेट 'एक्टर्स' (एजेंट जैसे अनुप्रयोग) के एक बड़े सेट को तैयार 'वर्कर्स' के एक छोटे सेट पर मैप करता है, इस तथ्य पर भरोसा करते हुए कि एजेंट जैसे अनुप्रयोग अधिकांश समय निष्क्रिय रहते हैं, जिससे भारी मल्टीप्लेक्सिंग प्राप्त होती है। यह एक्टर के जीवनचक्र को प्रबंधित करने (जैसे, बनाना/नष्ट करना, सस्पेंड/रिज़्यूम), वास्तविक समय में एक्टर्स को वर्कर्स को असाइन करने और आने वाले ट्रैफ़िक को उन तक रूट करने की कार्यक्षमता प्रदान करता है। एजेंट सब्सट्रेट एक कम-राय वाला सिस्टम होने का इरादा रखता है। इसके द्वारा प्रबंधित वर्कलोड को शाब्दिक AI एजेंट होने की आवश्यकता नहीं है, लेकिन वे उस प्रकार के अनुप्रयोगों का सबसे अच्छा उदाहरण हैं जिनके लिए इसे डिज़ाइन किया गया है। यह एजेंट बनाने के लिए SDK नहीं है, बल्कि उन्हें बड़े पैमाने पर चलाने के लिए एक सिस्टम है। एजेंट सब्सट्रेट बुनियादी ढांचे की आपूर्ति और वर्कर जीवनचक्र प्रबंधन (कुबरनेट्स पॉड्स) के लिए कुबरनेट्स का लाभ उठाता है। यह कुबरनेट्स सुविधाओं जैसे पॉड्स और पॉड ऑटोस्केलिंग पर निर्माण करता है, जबकि एजेंट सब्सट्रेट कम विलंबता प्राप्त करने के लिए एजेंट-विशिष्ट शेड्यूलिंग और नियंत्रण प्रदान करता है। अंतर्निहित सिस्टम के रूप में कुबरनेट्स का उपयोग एंड-टू-एंड एजेंटिक तैनाती के लिए आवश्यक सभी वर्कलोड प्रकारों में सुसंगत बुनियादी ढांचा प्रबंधन सक्षम करता है और RL परिदृश्यों के लिए समग्र बुनियादी ढांचा अनुकूलन की अनुमति देता है जो एजेंटिक, इन्फ्रेंस और प्रशिक्षण चक्रों में फैले हुए हैं। ## डेमो एक डेमो वीडियो एजेंट सब्सट्रेट क्लस्टर को केवल 8 भौतिक पॉड्स में ~250 स्टेटफुल एक्टर्स को मल्टीप्लेक्स करते हुए दिखाता है। प्रदर्शित प्रमुख क्षमताओं में शामिल हैं: 1. **एक्टर टेलीपोर्ट:** पूल में किसी भी उपलब्ध वर्कर पर एक्टर्स का उच्च-प्रदर्शन सस्पेंड और रिज़्यूम, सब-सेकंड सक्रियण के साथ। 2. **स्टेट पर्सिस्टेंस:** पूर्ण-स्टेट स्नैपशॉट के माध्यम से हाइबरनेशन चक्रों में लगातार कार्यशील मेमोरी (वाष्पशील RAM) और फ़ाइलसिस्टम स्टेट पूरी तरह से संरक्षित। 3. **एजेंट मल्टीप्लेक्सिंग:** साझा भौतिक पॉड्स के एक छोटे पूल पर स्टेटफुल एक्टर्स के एक बड़े रजिस्ट्री को 'जगल' करके 30x+ ओवरसब्सक्रिप्शन प्रदर्शित करता है। ## फ्रेमवर्क एग्नोस्टिक और संगतता एजेंट सब्सट्रेट को फ्रेमवर्क और एजेंट हार्नेस एग्नोस्टिक होने के लिए डिज़ाइन किया गया है। क्योंकि यह कर्नेल स्तर पर (gVisor के माध्यम से) मानक OCI कंटेनरों का प्रबंधन करता है, यह किसी भी स्टैक पर निर्मित एजेंटों को होस्ट कर सकता है। - **एजेंट डेवलपमेंट किट (ADK):** एक्टर स्टेट के रूप में इनवोकेशन में सत्र स्टेट संरक्षण के साथ ADK एजेंटों के लिए समर्थन। - **LangChain:** LangChain एजेंटों और टूल कॉल के लिए आदर्श निष्पादन वातावरण। - **Claude Code, CodeX, और Antigravity:** उच्च-घनत्व, स्टेटफुल कोडिंग वातावरण के लिए समर्थन जो सत्रों में सिस्टम स्टेट और फ़ाइलसिस्टम स्टेट को संरक्षित करते हैं। - **मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP):** किसी भी मॉडल के लिए टिकाऊ टूल प्रदान करने के लिए सुरक्षित, सैंडबॉक्स्ड MCP सर्वर को सब्सट्रेट एक्टर्स के रूप में तैनात करने के लिए समर्थन। ## इकोसिस्टम और उदाहरण - **एजेंट एक्ज़ीक्यूटर (google/ax):** एक वितरित एजेंट रनटाइम जो एजेंट सब्सट्रेट पर एक सुरक्षित, हाइपर-स्केलेबल एजेंट हार्नेस बनाने का प्रदर्शन करता है। - **kagent:** एक CNCF सैंडबॉक्स प्रोजेक्ट और कुबरनेट्स-नेटिव फ्रेमवर्क AI एजेंटों के निर्माण, तैनाती और प्रबंधन के लिए जो सैंडबॉक्स्ड, स्टेटफुल एजेंट वर्कलोड चलाने के लिए एजेंट सब्सट्रेट का उपयोग करता है। ## स्थिति और संगतता एजेंट सब्सट्रेट वर्तमान में प्रारंभिक विकास में है। यह उत्पादन उपयोग के लिए तैयार नहीं है, और API के बदलने की लगभग गारंटी है। इस स्तर पर कोई पिछड़ी संगतता गारंटी नहीं दी जाती है। ### समर्थित कुबरनेट्स रिलीज़ वर्तमान में कुबरनेट्स के नवीनतम स्थिर रिलीज़ और पिछले माइनर रिलीज़ का समर्थन करने का लक्ष्य है। ## समुदाय घोषणाओं और चर्चाओं के लिए ate-dev Google Group से जुड़ें। साप्ताहिक सामुदायिक बैठकें हर गुरुवार सुबह 10:00 बजे से 11:00 बजे PST तक आयोजित की जाती हैं। CNCF स्लैक चैनल भी हैं: #substrate-users और #substrate-dev। ## क्विकस्टार्ट (विकास) स्थानीय रूप से पूर्ण वातावरण सेट करने के लिए: 1. सुनिश्चित करें कि Go, kubectl, और docker स्थापित हैं। 2. निम्नलिखित चरण चलाएँ: - `hack/create-kind-cluster.sh` क्लस्टर और स्थानीय रजिस्ट्री बनाने के लिए। - `hack/install-ate-kind.sh --deploy-ate-system` ate, PostgreSQL, rustfs स्थापित करने के लिए। - `hack/install-ate-kind.sh --deploy-demo-counter` काउंटर डेमो स्थापित करने के लिए। - `go install ./cmd/kubectl-ate` kubectl-ate स्थापित करने के लिए। - एक काउंटर एक्टर बनाएँ: `kubectl ate create actor my-counter-1 -a ate-demo-counter --template counter`। - नेटवर्क राउटर को पोर्ट-फॉरवर्ड करें: `kubectl port-forward -n ate-system svc/atenet-router 8000:80`। 3. एक अलग टर्मिनल में, काउंटर बढ़ाने के लिए HTTP अनुरोध भेजें: ```shell curl -X POST -H "ate-target-actor: ate-demo-counter/my-counter-1" -i http://localhost:8000/ ``` वर्कर क्षमता संस्करणित है: डेटाप्लेन केवल उन नोड्स पर शेड्यूल करता है जो `ate.dev/substrate-version` लेबल रखते हैं, और इंस्टॉल इसे हर उस नोड पर स्टैम्प करता है जो चलने पर मौजूद होता है। ### GKE क्विकस्टार्ट (विकास) 1. पर्यावरण फ़ाइल कॉपी और संपादित करें: `cp hack/ate-dev-env.sh.example .ate-dev-env.sh`। 2. एप्लिकेशन-डिफ़ॉल्ट क्रेडेंशियल सक्षम करें: `gcloud auth application-default login --project=${PROJECT_ID}`। 3. GCP संसाधन प्रावधान करें: `go run ./tools/setup-gcp bootstrap`। 4. सिस्टम तैनात करें: `./hack/install-ate.sh --deploy-ate-system`। 5. नमूना ऐप्स तैनात करें: `./hack/install-ate.sh --deploy-demo-counter`। व्यक्तिगत चरणों के लिए कस्टम सेटअप और टियरडाउन स्क्रिप्ट उपलब्ध हैं। ## डेमो - **काउंटर डेमो:** एक स्टेटफुल Go HTTP सर्वर जो सस्पेंड/रिज़्यूम में स्टेट संरक्षण प्रदर्शित करता है। - **सैंडबॉक्स डेमो (Antigravity):** एक सुरक्षित, सैंडबॉक्स्ड निष्पादन वातावरण (Alpine Linux) जो फ़ाइलसिस्टम स्टेट को संरक्षित करते हुए मनमाना शेल निष्पादन की अनुमति देता है। - **Claude Code मल्टीप्लेक्स:** सीमित वर्कर पूल पर कई Claude Code एजेंटों को मल्टीप्लेक्स करके भौतिक हार्डवेयर के ओवरसब्सक्रिप्शन का प्रदर्शन। - **मल्टी-टेम्पलेट:** विभिन्न बाइनरी चलाने वाले दो ActorTemplates एक WorkerPool साझा करते हैं। - **अनुरोध पार्किंग:** एक ओवरसब्सक्राइब्ड पूल जहां राउटर आने वाले अनुरोधों को तब तक रोकता है जब तक कोई वर्कर खाली न हो। - **ऑटोस्केल्ड WorkerPool:** prometheus-adapter द्वारा फेड HPA के साथ असाइन किए गए वर्कर काउंट पर WorkerPool को स्केल करता है। ## दस्तावेज़ीकरण और गाइड - आर्किटेक्चर: नियंत्रण प्लेन, नोड सुपरवाइज़र और नेटवर्किंग स्टैक एक साथ कैसे फिट होते हैं। - API कॉन्फ़िगरेशन गाइड: WorkerPools, ActorTemplates, Secrets और Volumes कॉन्फ़िगर करने के लिए विस्तृत संदर्भ। - पूर्ण CLI दस्तावेज़ीकरण: kubectl-ate के लिए स्थापना और उपयोग। - शब्दावली: मुख्य शब्द (Actor, Atespace, ActorTemplate, WorkerPool, Worker, ate-api-server, atenet, atelet, ateom)। - एकीकरण रिपॉजिटरी: एकीकरण कहां रहते हैं और फिक्स कोर में कैसे वापस प्रवाहित होते हैं। - अवलोकनीयता गाइड: एक्टर लॉगिंग, मेट्रिक्स और वितरित ट्रेसिंग। - प्रमाणीकरण गाइड: विश्वसनीय JWT प्रदाता और मानव क्रेडेंशियल कॉन्फ़िगर करें। - ईग्रेस ट्रैफ़िक: एक एक्टर बाहरी दुनिया तक किन प्रोटोकॉल के साथ पहुंच सकता है और कौन से अवरुद्ध हैं। - एक्टर ईग्रेस नीति के लिए MITM इंटरसेप्शन सक्षम करना। - अनुरोध पार्किंग: राउटर क्षणिक वर्कर-पूल संतृप्ति के माध्यम से अनुरोधों को कैसे पार्क करता है। - रोलिंग अपग्रेड रनबुक: एक्टर स्टेट खोए बिना चल रहे सब्सट्रेट नोड को नोड द्वारा अपग्रेड करें। - खतरा मॉडल: विश्वास सीमाएं, धारणाएं और ज्ञात जोखिम। - रोडमैप: वर्तमान सीमाएं और आगे क्या योजना है। - बेंचमार्किंग गाइड: Locust-आधारित लोड परीक्षण, निगरानी स्टैक और ऑर्केस्ट्रेटेड बेंचमार्क हार्नेस। ## टूर मुख्य कमांड और घटक: - `cmd/ateapi`: gRPC एंडपॉइंट्स उजागर करने वाला कोर कंट्रोल प्लेन API सर्वर। - `cmd/atelet`: भौतिक वर्कर पॉड्स की निगरानी करने वाला नोड-स्तरीय DaemonSet। - `cmd/atecontroller`: WorkerPool कस्टम संसाधनों को समेटने वाला कुबरनेट्स कंट्रोलर। - `cmd/atenet`: Envoy रूटिंग और प्रॉक्सी साइडकार प्रदान करने वाला संयुक्त नेटवर्किंग कंट्रोलर। - `cmd/ateom-gvisor`: runsc चेकपॉइंट और रिस्टोर कमांड निष्पादित करने वाला इंटीरियर-पॉड हेल्पर। - `cmd/ateom-microvm`: एक्टर्स को cloud-hypervisor VMs के रूप में चलाने वाला माइक्रो-वीएम पीयर। - `cmd/podcertcontroller`: पॉड सर्टिफिकेट साइनर प्रदान करने वाला पॉलीफिल। - `cmd/kubectl-ate`: एजेंट सब्सट्रेट संसाधनों के प्रबंधन के लिए CLI टूल। - `cmd/benchmarking`: लोड परीक्षणों के लिए सिंथेटिक वर्कलोड। - `tools/setup-gcp`: GCP बुनियादी ढांचे के लिए प्रावधान उपयोगिता। - `demos/`: क्षमताओं का प्रदर्शन करने वाले नमूना अनुप्रयोग।