منصوبے کے بارے میں
ایجنٹ سبسٹریٹ ایک محفوظ-بہ-ڈیفالٹ ایجنٹ ایگزیکیوشن رن ٹائم ہے جو معیاری کنٹینر رن ٹائمز سے 10 گنا زیادہ کثافت کے ساتھ لاکھوں سینڈ باکسز چلانے کے لیے ڈیزائن کیا گیا ہے۔ خود مختار ایجنٹس کے لیے خاص طور پر بنایا گیا، یہ 500 ملی سیکنڈ سے کم ریزیوم آپریشنز فراہم کرتا ہے جس میں 500 سے زیادہ سسپینڈ/ریزیوم ایکٹیویشنز فی سیکنڈ ہوتی ہیں، اور مقامی زیرو-ٹرسٹ کرنل اور نیٹ ورک آئسولیشن کے ساتھ۔ یہ متعدد سینڈ باکس ٹیکنالوجیز کو سپورٹ کرتا ہے جس میں مائیکرو وی ایم اور جی ویزر شامل ہیں، جو تمام سینڈ باکس اقسام کے لیے مستقل لائف سائیکل آپریشنز کو قابل بناتا ہے۔
اپنے بنیادی حصے میں، ایجنٹ سبسٹریٹ 'ایکٹرز' (ایپلیکیشنز جیسے ایجنٹس) کے ایک بڑے سیٹ کو تیار 'ورکرز' کے ایک چھوٹے سیٹ پر میپ کرتا ہے، اس حقیقت پر انحصار کرتے ہوئے کہ ایجنٹ جیسی ایپلیکیشنز زیادہ تر وقت بیکار رہتی ہیں تاکہ بھاری ملٹی پلیکسنگ حاصل کی جا سکے۔ یہ ایکٹر کے لائف سائیکل کو منظم کرنے (مثلاً تخلیق/تباہ، سسپینڈ/ریزیوم)، ایکٹرز کو ریئل ٹائم میں ورکرز کو تفویض کرنے، اور ان تک آنے والی ٹریفک کو روٹ کرنے کی فعالیت فراہم کرتا ہے۔
ایجنٹ سبسٹریٹ ایک کم-رائے والا نظام ہونے کا ارادہ رکھتا ہے۔ اس کے زیر انتظام ورک لوڈز کو لازمی طور پر لفظی AI ایجنٹس نہیں ہونا چاہیے، لیکن وہ اس قسم کی ایپلیکیشنز کی بہترین مثال ہیں جن کے لیے اسے ڈیزائن کیا گیا ہے۔ یہ ایجنٹس بنانے کے لیے SDK نہیں ہے، بلکہ انہیں بڑے پیمانے پر چلانے کے لیے ایک نظام ہے۔
ایجنٹ سبسٹریٹ انفراسٹرکچر پروویژننگ اور ورکر لائف سائیکل مینجمنٹ (Kubernetes Pods) کے لیے Kubernetes کا فائدہ اٹھاتا ہے۔ یہ Kubernetes کی خصوصیات جیسے Pods اور Pod آٹو اسکیلنگ پر استوار ہے، جبکہ ایجنٹ سبسٹریٹ کم لیٹنسی حاصل کرنے کے لیے ایجنٹ مخصوص شیڈولنگ اور کنٹرول فراہم کرتا ہے۔ Kubernetes کو بنیادی نظام کے طور پر استعمال کرنا اینڈ-ٹو-اینڈ ایجنٹک ڈیپلائمنٹس کے لیے درکار تمام ورک لوڈ اقسام میں مستقل انفراسٹرکچر مینجمنٹ کو قابل بناتا ہے اور RL منظرناموں کے لیے جامع انفراسٹرکچر آپٹیمائزیشن کی اجازت دیتا ہے جو ایجنٹک، انفرنس، اور ٹریننگ سائیکلز پر محیط ہیں۔
## ڈیمو
ایک ڈیمو ویڈیو ایجنٹ سبسٹریٹ کلسٹر کو صرف 8 فزیکل پوڈز پر ~250 اسٹیٹفل ایکٹرز کو ملٹی پلیکس کرتے ہوئے دکھاتی ہے۔ کلیدی صلاحیتیں جو دکھائی گئی ہیں ان میں شامل ہیں:
1. **ایکٹر ٹیلی پورٹ:** پول میں کسی بھی دستیاب ورکر پر ایکٹرز کی اعلی کارکردگی سسپینڈ اور ریزیوم سب سیکنڈ ایکٹیویشن کے ساتھ۔
2. **اسٹیٹ پرسسٹنس:** مستقل ورکنگ میموری (وولیٹائل RAM) اور فائل سسٹم اسٹیٹ مکمل اسٹیٹ سنیپ شاٹس کے ذریعے ہائبرنیشن سائیکلز میں بالکل محفوظ رہتی ہے۔
3. **ایجنٹ ملٹی پلیکسنگ:** اسٹیٹفل ایکٹرز کے ایک بڑے رجسٹری کو مشترکہ فزیکل پوڈز کے ایک چھوٹے پول پر 'جگل' کرکے 30x+ اوور سبسکرپشن کا مظاہرہ کرتا ہے۔
## فریم ورک ایگناسٹک اور مطابقت
ایجنٹ سبسٹریٹ فریم ورک اور ایجنٹ ہارنس ایگناسٹک ہونے کے لیے ڈیزائن کیا گیا ہے۔ کیونکہ یہ معیاری OCI کنٹینرز کو کرنل سطح پر (gVisor کے ذریعے) منظم کرتا ہے، یہ کسی بھی اسٹیک پر بنے ایجنٹس کو ہوسٹ کر سکتا ہے۔
- **ایجنٹ ڈیولپمنٹ کٹ (ADK):** ADK ایجنٹس کے لیے سپورٹ سیشن اسٹیٹ کو ایکٹر اسٹیٹ کے طور پر محفوظ رکھنے کے ساتھ۔
- **LangChain:** LangChain ایجنٹس اور ٹول کالز کے لیے مثالی ایگزیکیوشن ماحول۔
- **Claude Code، CodeX، اور Antigravity:** اعلی کثافت، اسٹیٹفل کوڈنگ ماحول کے لیے سپورٹ جو سسٹم اسٹیٹ اور فائل سسٹم اسٹیٹ کو سیشنز کے درمیان محفوظ رکھتے ہیں۔
- **ماڈل کانٹیکسٹ پروٹوکول (MCP):** محفوظ، سینڈ باکسڈ MCP سرورز کو سبسٹریٹ ایکٹرز کے طور پر تعینات کرنے کے لیے سپورٹ تاکہ کسی بھی ماڈل کے لیے پائیدار ٹولز فراہم کیے جا سکیں۔
## ایکو سسٹم اور مثالیں
- **ایجنٹ ایگزیکیوٹر (google/ax):** ایک تقسیم شدہ ایجنٹ رن ٹائم جو ایجنٹ سبسٹریٹ پر ایک محفوظ، ہائپر-اسکیل ایبل ایجنٹ ہارنس بنانے کا مظاہرہ کرتا ہے۔
- **kagent:** ایک CNCF سینڈ باکس پروجیکٹ اور Kubernetes-نیٹیو فریم ورک AI ایجنٹس کی تعمیر، تعیناتی، اور انتظام کے لیے جو سینڈ باکسڈ، اسٹیٹفل ایجنٹ ورک لوڈز چلانے کے لیے ایجنٹ سبسٹریٹ استعمال کرتا ہے۔
## حیثیت اور مطابقت
ایجنٹ سبسٹریٹ فی الحال ابتدائی ترقی میں ہے۔ یہ پروڈکشن استعمال کے لیے تیار نہیں ہے، اور APIs کے تبدیل ہونے کا تقریباً یقین ہے۔ اس مرحلے پر کوئی پسماندہ مطابقت کی ضمانت نہیں دی جاتی۔
### سپورٹڈ Kubernetes ریلیزز
فی الحال Kubernetes کے تازہ ترین مستحکم ریلیز اور پچھلے مائنر ریلیز کو سپورٹ کرنے کا ہدف ہے۔
## کمیونٹی
اعلانات اور بات چیت کے لیے ate-dev Google گروپ میں شامل ہوں۔ ہفتہ وار کمیونٹی میٹنگز ہر جمعرات کو صبح 10:00 سے 11:00 PST تک ہوتی ہیں۔ CNCF Slack چینلز بھی ہیں: #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:** ایک WorkerPool کو اس کے تفویض شدہ ورکر کاؤنٹ پر HPA کے ساتھ اسکیل کرتا ہے جسے prometheus-adapter فیڈ کرتا ہے۔
## دستاویزات اور گائیڈز
- آرکیٹیکچر: کنٹرول پلین، نوڈ سپروائزر، اور نیٹ ورکنگ اسٹیک کیسے ایک ساتھ فٹ ہوتے ہیں۔
- API کنفیگریشن گائیڈ: WorkerPools، ActorTemplates، Secrets، اور Volumes کو کنفیگر کرنے کے لیے تفصیلی حوالہ۔
- مکمل CLI دستاویزات: kubectl-ate کی انسٹالیشن اور استعمال۔
- لغت: بنیادی اصطلاحات (Actor، Atespace، ActorTemplate، WorkerPool، Worker، ate-api-server، atenet، atelet، ateom)۔
- انٹیگریشن ریپوزٹریز: انٹیگریشنز کہاں رہتی ہیں اور اصلاحات کور میں کیسے واپس آتی ہیں۔
- آبزرویبلٹی گائیڈ: ایکٹر لاگنگ، میٹرکس، اور تقسیم شدہ ٹریسنگ۔
- تصدیق گائیڈ: قابل اعتماد JWT فراہم کنندگان اور انسانی اسناد کنفیگر کریں۔
- ایگریس ٹریفک: ایکٹر کس پروٹوکول کے ساتھ باہر کی دنیا تک پہنچ سکتا ہے اور کون سے مسدود ہیں۔
- ایکٹر ایگریس پالیسی کے لیے MITM انٹرسیپشن کو فعال کرنا۔
- درخواست پارکنگ: روٹر عارضی ورکر-پول سنترپتی کے ذریعے درخواستوں کو کیسے پارک کرتا ہے۔
- رولنگ اپ گریڈ رن بک: ایکٹر اسٹیٹ کھوئے بغیر چلنے والے سبسٹریٹ نوڈ کو نوڈ بہ نوڈ اپ گریڈ کریں۔
- تھریٹ ماڈل: ٹرسٹ باؤنڈریز، مفروضے، اور معلوم خطرات۔
- روڈ میپ: موجودہ حدود اور آگے کیا منصوبہ ہے۔
- بینچ مارکنگ گائیڈ: Locust پر مبنی لوڈ ٹیسٹ، مانیٹرنگ اسٹیک، اور آرکیسٹریٹڈ بینچ مارک ہارنس۔
## ٹور
کلیدی کمانڈز اور اجزاء:
- `cmd/ateapi`: کور کنٹرول پلین API سرور جو gRPC اینڈ پوائنٹس کو بے نقاب کرتا ہے۔
- `cmd/atelet`: نوڈ-سطح DaemonSet جو فزیکل ورکر پوڈز کی نگرانی کرتا ہے۔
- `cmd/atecontroller`: Kubernetes کنٹرولر جو 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/`: صلاحیتوں کا مظاہرہ کرنے والی نمونہ ایپلیکیشنز۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.