عن المشروع
وكيل Substrate هو بيئة تشغيل لتنفيذ الوكلاء آمنة افتراضيًا، مصممة لتشغيل ملايين الصناديق الرملية بكثافة أعلى بعشر مرات من بيئات تشغيل الحاويات القياسية. مبني خصيصًا للوكلاء المستقلين، ويوفر عمليات استئناف أقل من 500 مللي ثانية مع أكثر من 500 عملية إيقاف/استئناف في الثانية، مع عزل أصلي للنواة والشبكة يعتمد على نموذج الثقة الصفرية. يدعم تقنيات صناديق رملية متعددة بما في ذلك microVMs وgVisor، مما يتيح عمليات دورة حياة متسقة لجميع أنواع الصناديق الرملية.
في جوهره، يقوم وكيل Substrate بتعيين مجموعة أكبر من 'الممثلين' (تطبيقات مثل الوكلاء) على مجموعة أصغر من 'العمال' الجاهزين، معتمدًا على حقيقة أن التطبيقات الشبيهة بالوكلاء تميل إلى الخمول معظم الوقت لتحقيق تعدد إرسال كثيف. يوفر وظائف لإدارة دورة حياة الممثل (مثل الإنشاء/الإتلاف، الإيقاف المؤقت/الاستئناف)، وتعيين الممثلين للعمال في الوقت الفعلي، وتوجيه حركة المرور الواردة إليهم.
يهدف وكيل Substrate إلى أن يكون نظامًا منخفض الرأي. لا يتعين أن تكون أعباء العمل التي يديرها وكلاء ذكاء اصطناعي حرفيين، لكنها أفضل مثال على نوع التطبيقات المصمم لها. إنه ليس SDK لبناء الوكلاء، بل نظام لتشغيلهم على نطاق واسع.
يستفيد وكيل Substrate من Kubernetes لتوفير البنية التحتية وإدارة دورة حياة العمال (حاويات Kubernetes). يبني على ميزات Kubernetes مثل الحاويات والتوسع التلقائي للحاويات، بينما يوفر وكيل Substrate جدولة وتحكمًا خاصين بالوكلاء لتحقيق زمن انتقال أقل. استخدام Kubernetes كنظام أساسي يتيح إدارة بنية تحتية متسقة عبر جميع أنواع أعباء العمل المطلوبة للنشر الوكيل الشامل ويسمح بتحسينات البنية التحتية الشاملة لسيناريوهات التعلم المعزز التي تمتد عبر دورات الوكيل والاستدلال والتدريب.
## عرض توضيحي
يعرض فيديو توضيحي مجموعة وكيل Substrate التي تضاعف حوالي 250 ممثلًا بحالة عبر 8 حاويات فعلية فقط. تشمل القدرات الرئيسية الموضحة:
1. **نقل الممثل:** إيقاف واستئناف عالي الأداء للممثلين على أي عامل متاح في المجموعة مع تنشيط أقل من ثانية.
2. **حفظ الحالة:** ذاكرة عمل دائمة (RAM متطايرة) وحالة نظام الملفات محفوظة تمامًا عبر دورات السبات عبر لقطات الحالة الكاملة.
3. **تعدد إرسال الوكلاء:** يوضح زيادة الاشتراك بأكثر من 30 مرة عن طريق 'التلاعب' بسجل كبير من الممثلين بحالة على مجموعة صغيرة من الحاويات الفعلية المشتركة.
## استقلالية الإطار والتوافق
صمم وكيل Substrate ليكون مستقلًا عن الأطر وأدوات ربط الوكلاء. نظرًا لأنه يدير حاويات OCI القياسية على مستوى النواة (عبر gVisor)، يمكنه استضافة وكلاء مبنيين على أي مكدس.
- **مجموعة تطوير الوكلاء (ADK):** دعم لوكلاء ADK مع حفظ حالة الجلسة عبر الاستدعاءات كحالة ممثل.
- **LangChain:** بيئة تنفيذ مثالية لوكلاء LangChain واستدعاءات الأدوات.
- **Claude Code وCodeX وAntigravity:** دعم لبيئات الترميز عالية الكثافة والحالة التي تحفظ حالة النظام وحالة نظام الملفات عبر الجلسات.
- **بروتوكول سياق النموذج (MCP):** دعم لنشر خوادم MCP آمنة ومعزولة كممثلين في Substrate لتوفير أدوات دائمة لأي نموذج.
## النظام البيئي والأمثلة
- **منفذ الوكلاء (google/ax):** بيئة تشغيل وكلاء موزعة توضح بناء أداة ربط وكلاء آمنة وفائقة التوسع على وكيل Substrate.
- **kagent:** مشروع CNCF Sandbox وإطار عمل أصلي لـ Kubernetes لبناء ونشر وإدارة وكلاء الذكاء الاصطناعي يستخدم وكيل Substrate لتشغيل أعباء عمل وكلاء بحالة ومعزولة.
## الحالة والتوافق
وكيل Substrate حاليًا في مرحلة التطوير المبكر. إنه ليس جاهزًا للاستخدام في الإنتاج، ومن شبه المؤكد أن واجهات برمجة التطبيقات ستتغير. لا توجد ضمانات توافق رجعي في هذه المرحلة.
### إصدارات Kubernetes المدعومة
يهدف حاليًا إلى دعم أحدث إصدار مستقر من Kubernetes والإصدار الثانوي السابق.
## المجتمع
انضم إلى مجموعة Google ate-dev للإعلانات والمناقشات. تعقد اجتماعات المجتمع الأسبوعية كل خميس من 10:00 صباحًا إلى 11:00 صباحًا بتوقيت المحيط الهادئ. توجد أيضًا قنوات 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`.
تتوفر نصوص تخصيص وإزالة مخصصة للخطوات الفردية.
## العروض التوضيحية
- **عرض العداد:** خادم HTTP بحالة بلغة Go يوضح حفظ الحالة عبر الإيقاف المؤقت/الاستئناف.
- **عرض الصندوق الرملي (Antigravity):** بيئة تنفيذ آمنة ومعزولة (Alpine Linux) تسمح بتنفيذ أوامر الصدفة مع حفظ حالة نظام الملفات.
- **تعدد إرسال Claude Code:** يوضح زيادة الاشتراك في الأجهزة المادية عن طريق تعدد إرسال وكلاء Claude Code متعددين على مجموعة محدودة من العمال.
- **متعدد القوالب:** قالبا ممثلين يشغلان ثنائيات مختلفة يتشاركان في مجموعة عمال واحدة.
- **إيقاف الطلبات:** مجموعة مفرطة الاشتراك حيث يحتفظ الموجه بالطلبات الواردة حتى يتوفر عامل.
- **مجموعة عمال موسعة تلقائيًا:** توسع مجموعة عمال بناءً على عدد العمال المعينين مع HPA يغذيه prometheus-adapter.
## التوثيق والأدلة
- الهندسة المعمارية: كيف تتناسب مستوى التحكم ومشرف العقدة ومكدس الشبكات معًا.
- دليل تكوين API: مرجع مفصل لتكوين مجموعات العمال وقوالب الممثلين والأسرار ووحدات التخزين.
- توثيق CLI الكامل: التثبيت والاستخدام لـ kubectl-ate.
- المسرد: المصطلحات الأساسية (الممثل، Atespace، قالب الممثل، مجموعة العمال، العامل، خادم ate-api، atenet، atelet، ateom).
- مستودعات التكامل: أين تعيش التكاملات وكيف تتدفق الإصلاحات إلى النواة.
- دليل المراقبة: تسجيل الممثلين والمقاييس والتتبع الموزع.
- دليل المصادقة: تكوين موفري JWT الموثوقين وبيانات اعتماد البشر.
- حركة المرور الصادرة: البروتوكولات التي يمكن للممثل الوصول بها إلى العالم الخارجي والتي يتم حظرها.
- تمكين اعتراض MITM لسياسة الصادر للممثل.
- إيقاف الطلبات: كيف يوقف الموجه الطلبات عبر تشبع مجموعة العمال المؤقت.
- دليل الترقية المتدحرجة: ترقية عقدة substrate قيد التشغيل عقدة بعقدة دون فقدان حالة الممثل.
- نموذج التهديد: حدود الثقة والافتراضات والمخاطر المعروفة.
- خارطة الطريق: القيود الحالية وما هو مخطط له بعد ذلك.
- دليل المقارنة: اختبارات الحمل القائمة على Locust ومكدس المراقبة وأداة المقارنة المنسقة.
## جولة
الأوامر والمكونات الرئيسية:
- `cmd/ateapi`: خادم API الأساسي لمستوى التحكم يعرض نقاط نهاية gRPC.
- `cmd/atelet`: DaemonSet على مستوى العقدة يشرف على حاويات العمال الفعلية.
- `cmd/atecontroller`: وحدة تحكم Kubernetes توفق الموارد المخصصة لمجموعات العمال.
- `cmd/atenet`: وحدة تحكم شبكات مجمعة توفر توجيه Envoy و sidecars الوكيل.
- `cmd/ateom-gvisor`: مساعد داخل الحاوية ينفذ أوامر checkpoint وrestore الخاصة بـ runsc.
- `cmd/ateom-microvm`: نظير آلة افتراضية صغيرة يشغل الممثلين كأجهزة افتراضية cloud-hypervisor.
- `cmd/podcertcontroller`: حشو يوفر موقّعي شهادات الحاويات.
- `cmd/kubectl-ate`: أداة CLI لإدارة موارد وكيل Substrate.
- `cmd/benchmarking`: أعباء عمل اصطناعية لاختبارات الحمل.
- `tools/setup-gcp`: أداة توفير لبنية GCP التحتية.
- `demos/`: تطبيقات نموذجية توضح القدرات.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.