1- مقدمة
في هذا الدرس العملي، ستتعرّف على Google Antigravity (المشار إليها باسم Antigravity في بقية المستند)، وهي منصة تطوير قائمة على الوكلاء، وتعمل على تطوير بيئة التطوير المتكاملة (IDE) لتناسب عصر الوكلاء أولاً.
على عكس مساعدي الترميز العاديين الذين يكملون الأسطر تلقائيًا، توفّر Antigravity ميزة "مركز التحكّم" لإدارة الوكلاء المستقلين الذين يمكنهم التخطيط والترميز وحتى تصفّح الويب لمساعدتك في إنشاء التطبيقات.
تم تصميم Antigravity كمنصة "تستند إلى الذكاء الاصطناعي الوكيل". ويفترض ذلك أنّ الذكاء الاصطناعي ليس مجرد أداة لكتابة الرموز البرمجية، بل هو عامل مستقل قادر على التخطيط لمهام هندسية معقّدة وتنفيذها والتحقّق منها وتكرارها بأقل قدر من التدخل البشري.
ما ستتعلمه
- تثبيت Antigravity وإعداده
- استكشاف المفاهيم الأساسية في Antigravity، مثل "إدارة الوكلاء" و"المحرّر" و"المتصفّح" وغيرها
- استكشاف بعض حالات الاستخدام مع Antigravity
المتطلبات
تتوفّر ميزة Antigravity حاليًا كمعاينة لحسابات Gmail الشخصية. يتضمّن حصة مجانية لاستخدام النماذج المميزة.
يجب تثبيت Antigravity على نظامك. يتوفّر المنتج على أجهزة Mac وWindows وبعض توزيعات Linux. بالإضافة إلى جهازك، ستحتاج إلى ما يلي:
- متصفّح الويب Chrome
- حساب Gmail (حساب Gmail شخصي)
تم تصميم هذا الدرس التطبيقي العملي للمستخدمين والمطوّرين من جميع المستويات (بما في ذلك المبتدئين).
الإبلاغ عن المشاكل
أثناء العمل على الدرس العملي واستخدام Antigravity، قد تواجه مشاكل.
بالنسبة إلى المشاكل المتعلّقة بـ codelab (مثل الأخطاء الإملائية أو التعليمات الخاطئة)، يُرجى فتح خطأ باستخدام الزر Report a mistake في أسفل يمين صفحة codelab هذه:

للإبلاغ عن أخطاء أو طلب ميزات متعلّقة بتطبيق Antigravity، يُرجى الإبلاغ عن المشكلة داخل التطبيق. يمكنك إجراء ذلك في "أداة إدارة العملاء" من خلال النقر على الرابط Provide Feedback في أسفل يمين الصفحة:

يمكنك أيضًا الانتقال إلى المحرّر باستخدام الرابط Report Issue أسفل رمز ملفك الشخصي:

2. تثبيت
سنبدأ بتثبيت Antigravity. يتوفّر المنتج حاليًا للمعاينة، ويمكنك استخدام حسابك الشخصي على Gmail لبدء استخدامه.
انتقِل إلى صفحة عمليات التنزيل وانقر على إصدار نظام التشغيل المناسب لحالتك. شغِّل برنامج تثبيت التطبيق وثبِّته على جهازك. بعد اكتمال عملية التثبيت، شغِّل تطبيق Antigravity. من المفترض أن تظهر شاشة مشابهة لما يلي:

يُرجى المتابعة من خلال النقر على Next في كل مرة. في ما يلي الخطوات الرئيسية بالتفصيل:
- اختيار مسار الإعداد: يؤدي ذلك إلى ظهور خيار الاستيراد من إعدادات VS Code أو Cursor الحالية. سنبدأ من جديد.
- اختيار نوع مظهر "المحرّر": سنختار المظهر الداكن، ولكن الأمر يعود إليك تمامًا.
- كيف تريد استخدام عامل "مضاد الجاذبية"؟

لنتعرّف على ذلك بمزيد من التفصيل. تذكَّر أنّه يمكن تغيير الإعدادات في أي وقت من خلال "إعدادات مستخدم Antigravity" (Cmd + ,).
قبل أن نتعمّق في الخيارات، لنلقِ نظرة على بعض السمات المحدّدة (التي تظهر على يسار مربّع الحوار).
سياسة التنفيذ النهائي
يتعلّق هذا الأمر بمنح "الوكيل" القدرة على تنفيذ الأوامر (التطبيقات/الأدوات) في الوحدة الطرفية:
- المتابعة دائمًا: تنفيذ أوامر الوحدة الطرفية تلقائيًا دائمًا (باستثناء تلك الواردة في قائمة الرفض القابلة للضبط)
- طلب المراجعة: اطلب من المستخدم مراجعة الأوامر الطرفية والموافقة عليها قبل تنفيذها.
سياسة المراجعات
أثناء تنفيذ "الوكيل" لمهمته، ينشئ عناصر مختلفة (خطة المهمة، وخطة التنفيذ، وما إلى ذلك). يتم ضبط سياسة المراجعة بحيث يمكنك تحديد الجهة التي تقرّر ما إذا كان يجب مراجعتها. يجب أن تحدّد ما إذا كنت تريد مراجعة الردّ دائمًا أو ترك الخيار للوكيل. وبناءً على ذلك، هناك ثلاثة خيارات هنا أيضًا.
- المتابعة دائمًا: لا يطلب الوكيل إجراء مراجعة أبدًا.
- يقرّر الوكيل: يقرّر الوكيل متى يطلب إجراء مراجعة.
- طلب المراجعة: يطلب الوكيل دائمًا إجراء مراجعة.
سياسة تنفيذ JavaScript
عند تفعيل هذه الميزة، يمكن للوكيل استخدام أدوات المتصفّح لفتح عناوين URL وقراءة صفحات الويب والتفاعل مع محتوى المتصفّح. تتحكّم هذه السياسة في طريقة تنفيذ JavaScript في المتصفّح.
- المتابعة دائمًا: لن يتوقف الوكيل لطلب الإذن بتشغيل JavaScript في المتصفح. يمنح ذلك "الوكيل" أكبر قدر من الاستقلالية لتنفيذ إجراءات معقّدة والتحقّق من صحتها في المتصفّح، ولكنّه أيضًا يعرّضه لأكبر قدر من الثغرات الأمنية.
- طلب المراجعة: سيتوقف "الوكيل" دائمًا لطلب الإذن بتشغيل رمز JavaScript في المتصفّح.
- غير مفعَّل: لن ينفّذ الوكيل رمز JavaScript في المتصفّح مطلقًا.
بعد أن فهمنا السياسات المختلفة، لا تمثّل الخيارات الأربعة على اليمين سوى إعدادات محدّدة لسياسات تنفيذ الأوامر في الجهاز الطرفي ومراجعتها وتنفيذ JavaScript، وذلك لثلاثة من هذه الخيارات، بالإضافة إلى خيار رابع متاح يمكننا من خلاله التحكّم فيها بشكل مخصّص تمامًا. تتوفّر هذه الخيارات الأربعة حتى نتمكّن من تحديد مستوى الاستقلالية الذي تريد من "الوكيل" أن يتمتّع به لتنفيذ الأوامر في الوحدة الطرفية ومراجعة النتائج قبل المتابعة في تنفيذ المهمة.
هذه الخيارات الأربعة هي:
- الوضع الآمن: يوفّر "الوضع الآمن" عناصر تحكّم محسَّنة في الأمان لـ "الوكيل"، ما يتيح لك حظر وصوله إلى الموارد الخارجية والعمليات الحسّاسة. عند تفعيل "الوضع الآمن"، يتم فرض العديد من تدابير الأمان لحماية بيئتك.
- التطوير المستند إلى المراجعة (يُنصح به): سيطلب الوكيل إجراء مراجعة بشكل متكرّر.
- التطوير المستند إلى Agent: لن يطلب Agent إجراء مراجعة أبدًا.
- الإعدادات المخصّصة
يُعدّ خيار التطوير المستند إلى المراجعة خيارًا متوازنًا وموصى به لأنّه يتيح للوكيل اتّخاذ قرار والعودة إلى المستخدم للحصول على موافقته.
بعد ذلك، ستظهر صفحة ضبط المحرّر حيث يمكنك اختيار الإعدادات المفضّلة لما يلي:
- ربط المفاتيح: يمكنك ضبط ربط المفاتيح.
- الإضافات: يمكنك تثبيت إضافات اللغة الشائعة والإضافات الأخرى المقترَحة.
- سطر الأوامر: ثبِّت أداة سطر الأوامر لفتح Antigravity باستخدام
agy.
يمكنك الآن تسجيل الدخول إلى Google. كما ذكرنا سابقًا، تتوفّر Antigravity في وضع المعاينة وهي مجانية إذا كان لديك حساب Gmail شخصي. سجِّل الدخول الآن باستخدام حسابك. سيؤدي ذلك إلى فتح المتصفّح الذي يتيح لك تسجيل الدخول. عند نجاح عملية المصادقة، ستظهر لك رسالة مشابهة للرسالة أدناه، وسيتم توجيهك مرة أخرى إلى تطبيق Antigravity. اتّبِع الخطوات.
أخيرًا، بنود الاستخدام يمكنك اتّخاذ قرار بشأن ما إذا كنت تريد الموافقة على ذلك أم لا، ثم النقر على Next.
سيقودك ذلك إلى لحظة الحقيقة، حيث سيكون فريق Antigravity بانتظارك للتعاون معك.
3- مدير وكيل
نحن جاهزون للبدء.
تستند Antigravity إلى أساس Visual Studio Code (VS Code) المفتوح المصدر، ولكنّها تغيّر تجربة المستخدم بشكل جذري لإعطاء الأولوية لإدارة الوكلاء على تعديل النصوص. تنقسم الواجهة إلى نافذتَين أساسيتَين مختلفتَين: Editor وAgent Manager. يعكس هذا الفصل بين المهام الفرق بين المساهمة الفردية وإدارة الهندسة.
Agent Manager: Mission Control
عند تشغيل Antigravity، لا تظهر عادةً شجرة ملفات للمستخدم، بل يظهر "مدير الوكيل"، كما هو موضّح أدناه:

تعمل هذه الواجهة كلوحة بيانات Mission Control. تم تصميم هذه الأداة لتنفيذ عمليات التنسيق على مستوى عالٍ، ما يتيح للمطوّرين إنشاء العديد من البرامج الآلية ومراقبتها والتفاعل معها بشكل غير متزامن في مساحات عمل أو مهام مختلفة.
في طريقة العرض هذه، يعمل المطوّر كمهندس معماري. وهي تحدّد الأهداف العالية المستوى، ويمكن أن تشمل الأمثلة ما يلي:
- إعادة تصميم وحدة المصادقة
- تعديل شجرة التبعيات
- إنشاء مجموعة اختبارات لواجهة برمجة التطبيقات Billing API
وكما يوضّح المخطّط أعلاه، يؤدي كل طلب من هذه الطلبات إلى إنشاء مثيل مخصّص للوكيل. توفر واجهة المستخدم تمثيلاً مرئيًا لمهام العمل المتوازية هذه، وتعرض حالة كل وكيل والنتائج التي أنتجها (الخطط والنتائج والاختلافات) وأي طلبات معلّقة للحصول على موافقة بشرية.
تعالج هذه البنية مشكلة أساسية في بيئات التطوير المتكاملة السابقة التي كانت توفّر تجربة شبيهة بتجربة روبوت المحادثة، وكانت خطية ومتزامنة. في واجهة محادثة تقليدية، على المطوّر الانتظار إلى أن ينتهي الذكاء الاصطناعي من إنشاء الرمز البرمجي قبل طرح السؤال التالي. في "طريقة العرض الإدارية" في Antigravity، يمكن للمطوّر إرسال خمسة وكلاء مختلفين للعمل على خمسة أخطاء مختلفة في الوقت نفسه، ما يؤدي إلى مضاعفة إنتاجيته بشكل فعّال.
إذا نقرت على Next أعلاه، سيتوفّر لك خيار فتح مساحة عمل.

فكر في مساحة العمل كما عرفتها من VS Code وستنتهي. يمكننا فتح مجلد محلي من خلال النقر على الزر ثم اختيار مجلد للبدء به. في حالتي، كان لدي مجلد في مجلد المنزل باسم my-agy-projects واخترتُه. يمكنك استخدام مجلد مختلف تمامًا. يمكنك تخطّي هذه الخطوة تمامًا إذا أردت، ويمكنك فتح مساحة عمل في أي وقت لاحقًا أيضًا.
بعد إكمال هذه الخطوة، ستنتقل إلى نافذة "إدارة الوكلاء" (Agent Manager) الموضّحة أدناه:

ستلاحظ أنّ التطبيق موجّه على الفور لبدء محادثة جديدة في مجلد مساحة العمل (my-agy-projects) الذي تم اختياره. يمكنك الاستفادة من معرفتك الحالية بطريقة استخدام تطبيقات الذكاء الاصطناعي الأخرى (مثل Cursor وGemini CLI) واستخدام @ وطرق أخرى لتضمين سياق إضافي أثناء تقديم الطلب.
يُرجى الاطّلاع على القائمتَين المنسدلتَين Planning وModel Selection. تتيح لك القائمة المنسدلة "اختيار النموذج" الاختيار من بين النماذج المتاحة في الوقت الحالي ليستخدمها "الوكيل". تظهر القائمة أدناه:

وبالمثل، نجد أنّ "الوكيل" سيكون في وضع Planning تلقائي. ولكن يمكننا أيضًا استخدام الوضع Fast.

لنطّلع على ما ورد في المستندات بشأن هذا الموضوع:
Planning: يمكن للوكيل التخطيط قبل تنفيذ المهام. يمكنك استخدامها لإجراء بحث معمّق أو إنجاز مهام معقّدة أو العمل بشكل تعاوني. في هذا الوضع، ينظّم "الوكيل" عمله في مجموعات مهام، وينتج "عناصر"، ويتّخذ خطوات أخرى لإجراء بحث شامل والتفكير والتخطيط لعمله من أجل تحقيق أفضل جودة. سيظهر لك هنا الكثير من النتائج.-
Fast: ينفّذ Agent المهام مباشرةً. استخدِمها للمهام البسيطة التي يمكن إكمالها بشكل أسرع، مثل إعادة تسمية المتغيّرات أو تنفيذ بعض أوامر bash أو غيرها من المهام الأصغر حجمًا والمحلية. يكون هذا الخيار مفيدًا عندما تكون السرعة عاملاً مهمًا، وتكون المهمة بسيطة بما يكفي لعدم القلق بشأن انخفاض الجودة.
إذا كنت على دراية بميزانية التفكير والمصطلحات المشابهة في الوكلاء، يمكنك اعتبار ذلك القدرة على التحكّم في تفكير الوكيل، ما يؤثر بشكل مباشر في ميزانية التفكير. سنستخدم الإعدادات التلقائية في الوقت الحالي، ولكن يُرجى العلم أنّه عند إطلاق نموذج Gemini 3 Pro، ستكون إمكانية استخدامه متاحة للجميع وفقًا لحصص محدودة، لذا توقَّع تلقّي رسائل مناسبة تشير إلى ما إذا كنت قد استنفدت هذه الحصص المجانية لاستخدام Gemini 3.
لنستغرق الآن بعض الوقت في "إدارة الوكلاء" (النافذة) هنا ونفهم بعض الأمور، حتى يكون من الواضح بشأن اللبنات الأساسية وكيفية التنقل في Antigravity والمزيد. تظهر نافذة "إدارة الوكلاء" أدناه:

يُرجى الرجوع إلى الرسم البياني أعلاه الذي يتضمّن الأرقام التالية:
Inbox: يمكنك اعتبار هذه الميزة طريقة لتتبُّع جميع محادثاتك في مكان واحد. عندما ترسل "الوكلاء" لإنجاز مهامهم، ستظهر هذه المهام في "البريد الوارد"، ويمكنك النقر على "البريد الوارد" للحصول على قائمة بجميع المحادثات الحالية. سيؤدي النقر على أي من المحادثات إلى عرض جميع الرسائل التي تم تبادلها وحالة المهام وما أنتجه "الوكيل" أو حتى ما إذا كان ينتظر موافقة من جانبك على المهام. هذه طريقة رائعة للعودة لاحقًا إلى مهمة سابقة كنت تعمل عليها. إنّها ميزة مفيدة جدًا.Start Conversation: انقر على هذا الرمز لبدء محادثة جديدة. سينقلك هذا الإجراء مباشرةً إلى حقل الإدخال الذي يظهر فيهAsk anything.Workspaces: ذكرنا مساحات العمل وإمكانية العمل في أي مساحة عمل تريدها. يمكنك إضافة المزيد من مساحات العمل في أي وقت واختيار أي مساحة عمل عند بدء المحادثة.Playground: هذه طريقة رائعة يمكنك من خلالها بدء محادثة مع الموظف، ثم تحويلها إلى مساحة عمل إذا أردت، حيث يمكنك التحكّم بشكل أكبر في الملفات وما إلى ذلك. يمكنك اعتبارها مساحة مؤقتة.-
Editor View: حتى الآن، نحن في طريقة عرض "إدارة الوكلاء". يمكنك التبديل إلى "عرض المحرّر" في أي وقت إذا أردت ذلك. سيؤدي ذلك إلى عرض مجلد مساحة العمل وأي ملفات تم إنشاؤها. يمكنك تعديل الملفات مباشرةً أو حتى تقديم إرشادات مضمّنة أو أوامر في أداة التعديل، ليتمكّن "الوكيل" من تنفيذ إجراء أو إجراء تغييرات وفقًا لاقتراحاتك أو تعليماتك المعدَّلة. سنتناول "طريقة عرض المحرّر" بالتفصيل في قسم لاحق. Browser: أخيرًا، نصل إلى إحدى الميزات الواضحة التي تجعل Antigravity قويًا جدًا، وهي التكامل الوثيق مع متصفّح Chrome. لنبدأ بإعداد المتصفّح في القسم التالي.
4. Antigravity Browser
وفقًا للمستندات، عندما يريد الوكيل التفاعل مع المتصفّح، يستدعي وكيلاً فرعيًا للمتصفّح للتعامل مع المهمة الحالية. يشغّل الوكيل الفرعي للمتصفّح نموذجًا متخصصًا للعمل على الصفحات المفتوحة في المتصفّح الذي تديره Antigravity، وهو يختلف عن النموذج الذي اخترته للوكيل الرئيسي.
يتمتع هذا الوكيل الفرعي بإمكانية الوصول إلى مجموعة متنوعة من الأدوات اللازمة للتحكّم في متصفّحك، بما في ذلك النقر والتمرير والكتابة وقراءة سجلات وحدة التحكّم وغير ذلك. يمكنه أيضًا قراءة صفحاتك المفتوحة من خلال التقاط DOM أو لقطات الشاشة أو تحليل الترميز، بالإضافة إلى تسجيل الفيديوهات.
وهذا يعني أنّه علينا تشغيل إضافة Antigravity للمتصفّح وتثبيتها. لنبدأ محادثة في Playground ونستعرض الخطوات.
انقر على Playground وقدِّم المهمة التالية go to antigravity.google إلى "الوكيل" كما هو موضّح أدناه:

إرسال المهمة سيظهر لك الوكيل وهو يحلّل المهمة، ويمكنك الاطّلاع على عملية التفكير. في مرحلة ما، ستتم العملية بشكل صحيح وسيُذكر أنّه يجب إعداد وكيل المتصفّح كما هو موضّح أدناه. انقر على Setup.

سيؤدي ذلك إلى فتح المتصفّح وعرض رسالة لتثبيت الإضافة كما هو موضّح أدناه:

انتقِل إلى إضافة Chrome التي يمكنك تثبيتها.

بعد تثبيت الإضافة بنجاح، سيبدأ تطبيق Antigravity Agent عمله ويشير إلى أنّه ينتظر منك السماح له بإكمال مهمته. من المفترض أن يظهر بعض النشاط في نافذة المتصفّح التي تم فتحها:

بدِّل طريقة العرض إلى "إدارة الوكلاء"، ومن المفترض أن يظهر لك ما يلي:

هذا ما توقّعنا حدوثه بالضبط لأنّنا طلبنا من Agent الانتقال إلى الموقع الإلكتروني antigravity.google وزيارته. امنح التطبيق الإذن وستلاحظ أنّه تم الانتقال إلى الموقع الإلكتروني بأمان، كما هو موضّح أدناه:

5- العناصر
تنشئ Antigravity قطعًا أثرية أثناء التخطيط وإنجاز العمل كوسيلة للتواصل بشأن العمل وتلقّي الملاحظات من المستخدم البشري. وهي ملفات Markdown غنية، ومخططات هندسية، وصور، وتسجيلات للمتصفّح، واختلافات في الرموز البرمجية، وما إلى ذلك.
تساعد القطع الأثرية في حلّ "فجوة الثقة". عندما يدّعي أحد الوكلاء "لقد أصلحتُ الخطأ"، كان على المطوّر في السابق قراءة الرمز للتأكّد من ذلك. في لعبة Antigravity، ينتج الوكيل قطعة أثرية لإثبات ذلك.
في ما يلي العناصر الرئيسية التي تنتجها Antigravity:
Task Lists: قبل كتابة الرمز، ينشئ الوكيل خطة منظَّمة. لا تحتاج عادةً إلى تعديل هذه الخطة، ولكن يمكنك مراجعتها وفي بعض الحالات إضافة تعليق لتغييرها إذا لزم الأمر.-
Implementation Plan: تُستخدَم هذه السمة لتصميم التغييرات في قاعدة الرموز البرمجية لإنجاز مهمة. تحتوي هذه الخطط على تفاصيل فنية حول التعديلات اللازمة، ومن المفترض أن يراجعها المستخدم، ما لم تكن سياسة مراجعة العناصر قد تم ضبطها على "المتابعة دائمًا". -
Walkthrough: يتم إنشاء هذا المستند بعد أن يكمل الوكيل تنفيذ المهمة، وهو يتضمّن ملخّصًا للتغييرات وطريقة اختبارها. Code diffs: على الرغم من أنّ Antigravity ليس أداة، إلا أنّه ينتج أيضًا اختلافات في الرموز البرمجية يمكنك مراجعتها والتعليق عليها.Screenshots: يسجّل الوكيل حالة واجهة المستخدم قبل التغيير وبعده.-
Browser Recordings: للتفاعلات الديناميكية (مثل "انقر على زر تسجيل الدخول، وانتظِر ظهور عجلة التحميل، وتأكَّد من تحميل لوحة البيانات")، يسجّل البرنامج فيديو لجلسة التصفّح. يمكن للمطوّر مشاهدة هذا الفيديو للتحقّق من استيفاء متطلبات الوظيفة بدون تشغيل التطبيق بنفسه.
يتم إنشاء القطع الأثرية وتظهر في كلّ من طريقتَي العرض "إدارة العملاء الافتراضيين" و"المحرّر".
في "عرض المحرّر"، يمكنك النقر على Artifacts في أسفل يسار الصفحة:

في طريقة عرض "مدير الوكلاء"، في أعلى يسار الصفحة، بجانب Review changes، من المفترض أن يظهر لك زر لتبديل القطع الأثرية أو إذا كان الخيار مفعّلاً، يمكنك الاطّلاع على قائمة القطع الأثرية التي تم إنشاؤها:

من المفترض أن تظهر لك طريقة عرض "العناصر" كما هو موضّح أدناه. في حالتنا هنا، طلبنا من "الوكيل" الانتقال إلى الصفحة antigravity.google، وبالتالي التقط لقطة شاشة لها وأنشأ فيديو لها:

يمكنك الاطّلاع على اختلافات الرموز في Review Changes في "طريقة عرض المحرّر":

يمكن للمطوّرين التفاعل مع هذه العناصر واختلافات الرموز البرمجية باستخدام "التعليقات بأسلوب مستندات Google". يمكنك اختيار إجراء أو مهمة معيّنة، وتقديم أمر بالطريقة التي تريدها، ثم إرسال ذلك إلى الوكيل. بعد ذلك، سيستوعب المساعد هذه الملاحظات ويكرّر العملية وفقًا لذلك. يمكنك استخدام "مستندات Google" التفاعلية، حيث تقدّم ملاحظاتك إلى المؤلّف ثم يعيد المؤلّف صياغة المحتوى بناءً على هذه الملاحظات.
6. الرجوع إلى "البريد الوارد"
إذا بدأت بعض المحادثات مع الوكلاء، عليك الآن إلقاء نظرة على Inbox في نافذة Agent Manager. سيؤدي ذلك إلى عرض جميع المحادثات. انقر على أي من المحادثات للاطّلاع على سجلّها والعناصر التي تم إنشاؤها والمزيد. في حالتنا، بعد إجراء المحادثة الأولى، يعرض "البريد الوارد" المحادثة المُدرَجة، كما هو موضّح أدناه:

سيؤدي النقر على هذه المحادثة إلى عرض التفاصيل التالية:

يمكنك أيضًا مواصلة المحادثة من هنا.
7. محرِّر
تحتفظ أداة التعديل بميزات VS Code المألوفة، ما يضمن مراعاة الخبرة المكتسبة لدى المطوّرين المتمرّسين. يتضمّن مستكشف الملفات العادي وتمييز بناء الجملة والنظام الشامل للإضافات.
يمكنك النقر على الزر Open Editor في أعلى يسار "إدارة الوكلاء" (Agent Manager) للانتقال إلى "المحرّر" (Editor).
الإعدادات والإضافات
في عملية الإعداد النموذجية، سيظهر لك المحرّر ونافذة المحطة والوكيل:

إذا لم يكن الأمر كذلك، يمكنك تبديل لوحات الجهاز الطرفي والوكيل على النحو التالي:
- لتبديل لوحة Terminal، استخدِم الاختصار
Ctrl + `. - لتبديل لوحة الوكيل، استخدِم الاختصار
Cmd + L.
بالإضافة إلى ذلك، يمكن أن يثبّت Antigravity بعض الإضافات أثناء عملية الإعداد، ولكن اعتمادًا على لغة البرمجة التي تستخدمها، من المحتمل أن تحتاج إلى تثبيت المزيد من الإضافات. على سبيل المثال، لتطوير Python، إليك الإضافات التي يمكنك اختيار تثبيتها:

محرِّر
إكمال تلقائي
أثناء كتابة الرمز في المحرّر، يتم تفعيل الإكمال التلقائي الذكي الذي يمكنك ببساطة الضغط على مفتاح Tab لإكماله:

اضغط على مفتاح التبويب (Tab) للاستيراد
يظهر لك اقتراح علامة التبويب للاستيراد لإضافة التبعيات الناقصة:

الضغط على مفتاح التبويب (Tab) للانتقال
يمكنك الحصول على اقتراحات الضغط على المفتاح Tab للانتقال لنقل المؤشر إلى الموضع المنطقي التالي في الرمز:

الطلبات الصوتية
يمكنك تشغيل الأوامر باستخدام Cmd + I في المحرّر أو نافذة الأوامر للحصول على عمليات إكمال مضمّنة باستخدام اللغة الطبيعية.
في المحرّر، يمكنك طلب طريقة لاحتساب أرقام فيبوناتشي ثم قبولها أو رفضها:

في الوحدة الطرفية، يمكنك الحصول على اقتراحات لأوامر الوحدة الطرفية:

لوحة الموظّف الجانبية
من المحرّر، يمكنك إظهار اللوحة الجانبية الخاصة بالوكيل أو إخفاؤها بعدة طرق.
الفتح اليدوي
يمكنك التبديل يدويًا بين لوحة الوكيل على اليسار باستخدام الاختصار Cmd + L.
يمكنك البدء بطرح الأسئلة، واستخدام @ لتضمين المزيد من السياق، مثل الملفات أو الدلائل أو خوادم MCP، أو استخدام / للإشارة إلى سير عمل (طلب محفوظ):

يمكنك أيضًا الاختيار بين وضعَين للمحادثة: Fast أو Planning :

يُنصح باستخدام Fast للمهام السريعة، بينما يُنصح باستخدام Planning للمهام الأكثر تعقيدًا حيث ينشئ الوكيل خطة يمكنك الموافقة عليها.
يمكنك أيضًا اختيار نماذج مختلفة للمحادثة:

تفسير المشكلة وحلّها
هناك طريقة أخرى لتفعيل الوكيل وهي تمرير مؤشر الماوس فوق مشكلة والنقر على Explain and fix:

إرسال المشاكل إلى موظف الدعم
يمكنك أيضًا الانتقال إلى القسم Problems والنقر على Send all to Agent لكي يحاول الوكيل حلّ هذه المشاكل:

إرسال مخرجات الوحدة الطرفية إلى الوكيل
يمكنك حتى اختيار جزء من ناتج الوحدة الطرفية وإرساله إلى الوكيل باستخدام Cmd + L:

التبديل بين "المحرّر" و"مدير الوكلاء"
في أي وقت، يمكنك التبديل بين وضع أداة التعديل ووضع "إدارة الوكلاء" الكامل من خلال النقر على الزر Open Agent Manager في أعلى يسار الصفحة عندما تكون في وضع أداة التعديل، والعودة إلى وضع "إدارة الوكلاء" من خلال النقر على الزر Open Editor في أعلى يسار الصفحة.
يمكنك أيضًا استخدام اختصار لوحة المفاتيح Cmd + E للتبديل بين الوضعين.
8. تقديم تعليق
تكمن قوة Antigravity في قدرتها على جمع ملاحظاتك بسهولة في كل مرحلة من مراحل التجربة. أثناء عمل الوكيل على إحدى المهام، ينشئ أدوات مختلفة على طول الطريق:
- خطة التنفيذ وقائمة المهام (قبل الترميز)
- اختلافات الرموز البرمجية (أثناء إنشاء الرمز البرمجي)
- شرح تفصيلي للتحقّق من النتائج (بعد الترميز)
تتيح هذه المستندات لشركة Antigravity إمكانية إبلاغ المستخدمين بخططها ومراحل تقدّمها. والأهم من ذلك، أنّها تتيح لك أيضًا تقديم ملاحظات إلى الوكيل بأسلوب التعليقات في "مستندات Google". ويكون ذلك مفيدًا جدًا لتوجيه الوكيل بفعالية نحو النتيجة التي تريدها.
لنحاول إنشاء تطبيق بسيط لقائمة المهام ونرى كيف يمكننا تقديم ملاحظات إلى Antigravity أثناء ذلك.
وضع التخطيط
أولاً، عليك التأكّد من أنّ Antigravity في وضع Planning (بدلاً من وضع Fast).يمكنك اختيار ذلك في لوحة الدردشة الجانبية الخاصة بالوكيل. يضمن ذلك أن تنشئ Antigravity خطة تنفيذ وقائمة مهام قبل الانتقال إلى الترميز. بعد ذلك، جرِّب إدخال طلب، مثل: Create a todo list web app using Python. سيؤدي ذلك إلى بدء عمل الوكيل لبدء التخطيط وإنشاء خطة تنفيذ.
خطة التنفيذ
خطة التنفيذ هي نظرة عامة على ما تنوي شركة Antigravity فعله، وحزمة التكنولوجيا التي ستستخدمها، ووصف عام للتغييرات المقترَحة.
Implementation Plan - Python Todo App
Goal
Create a simple, functional, and aesthetically pleasing Todo List web application using Python (Flask).
Tech Stack
Backend: Python with Flask
Frontend: HTML5, CSS3 (Vanilla), Jinja2 templates
...
وهذا هو المكان الأول الذي يمكنك تقديم ملاحظات فيه. في حالتنا، يريد الوكيل استخدام Flask كإطار عمل ويب بلغة Python. يمكننا إضافة تعليق إلى خطة التنفيذ لاستخدام FastAPI بدلاً من ذلك. بعد إضافة التعليق، أرسِل التعليق أو اطلب من Antigravity Proceed مع خطة التنفيذ المعدَّلة.
قائمة المهام
بعد تعديل خطة التنفيذ، تنشئ Antigravity قائمة مهام. هذه قائمة محددة بالخطوات التي ستتّبعها شركة Antigravity لإنشاء التطبيق والتحقّق منه.
Task Plan
Create requirements.txt
Create directory structure (static/css, templates)
Create static/css/style.css
Create templates/index.html
Create main.py with FastAPI setup and Database logic
Verify application
هذا هو المكان الثاني الذي يمكنك فيه تقديم الملاحظات.
على سبيل المثال، في حالة الاستخدام التي ذكرناها، يمكنك إضافة تعليمات أكثر تفصيلاً لإثبات الملكية من خلال إضافة التعليق التالي: Verify application by adding, editing, and deleting a todo item and taking a screenshot.
تغييرات الرمز
في هذه المرحلة، ستنشئ Antigravity بعض الرموز في ملفات جديدة. يمكنك Accept all أو Reject all هذه التغييرات في اللوحة الجانبية لمحادثة الوكيل بدون الاطّلاع على التفاصيل.
يمكنك أيضًا النقر على Review changes للاطّلاع على تفاصيل التغييرات وإضافة تعليقات مفصّلة على الرمز. على سبيل المثال، يمكننا إضافة التعليق التالي في main.py: Add basic comments to all methods
هذه طريقة رائعة لتكرار الرمز البرمجي باستخدام Antigravity.
جولة تفصيلية
بعد أن تنتهي Antigravity من الترميز، تبدأ الخادم، وتفتح متصفحًا للتحقّق من التطبيق. وستجري بعض الاختبارات اليدوية، مثل إضافة المهام وتعديلها وما إلى ذلك، وذلك بفضل إضافة Antigravity للمتصفح. في النهاية، يتم إنشاء ملف إرشادي لتلخيص الإجراءات التي تم اتّخاذها للتحقّق من التطبيق، ويشمل ذلك لقطة شاشة أو مسار التحقّق مع تسجيل للمتصفّح.
يمكنك أيضًا التعليق على لقطة الشاشة أو تسجيل المتصفّح في الجولة الإرشادية. على سبيل المثال، يمكننا إضافة تعليق Change the blue theme to orange theme وإرساله. بعد إرسال التعليق، تجري Antigravity التغييرات وتتحقّق من النتائج وتعدّل الإرشادات.
التراجع عن التغييرات
أخيرًا، بعد كل خطوة، إذا لم تكن راضيًا عن التغيير، يمكنك التراجع عنه من المحادثة. ما عليك سوى النقر على ↩️ Undo changes up to this point في المحادثة.
9- القواعد وسير العمل
تتضمّن Antigravity خيارَين للتخصيص: القواعد وعمليات سير العمل.
انقر على ... في أعلى يسار الصفحة واختَر Customizations، وسيظهر لك Rules وWorkflows:

تساعد القواعد في توجيه سلوك البرنامج. هذه إرشادات يمكنك تقديمها للتأكّد من أنّ الوكيل يتّبعها أثناء إنشاء الرموز والاختبارات. على سبيل المثال، قد تريد أن يتبع الوكيل أسلوبًا معيّنًا في كتابة الرموز البرمجية، أو أن يوثّق دائمًا الطرق. يمكنك إضافة هذه المعلومات كقواعد وسيأخذها الموظف في الاعتبار.
سير العمل هي طلبات محفوظة يمكنك تشغيلها عند الطلب باستخدام / أثناء التفاعل مع الوكيل. توجّه هذه الأدوات أيضًا سلوك الوكيل، ولكن يتم تفعيلها من قِبل المستخدم عند الطلب.
التشبيه المناسب هو أنّ القواعد تشبه تعليمات النظام، بينما تشبه "عمليات سير العمل" الطلبات المحفوظة التي يمكنك اختيارها عند الحاجة.
يمكن تطبيق كل من القواعد ومهام سير العمل على مستوى العالم أو على مستوى مساحة العمل، ويمكن حفظها في المواقع التالية:
- قاعدة عامة:
~/.gemini/GEMINI.md - سير العمل العام:
~/.gemini/antigravity/global_workflows/global-workflow.md - قواعد مساحة العمل:
your-workspace/.agent/rules/ - سير العمل في Workspace:
your-workspace/.agent/workflows/
لنضِف بعض القواعد وعمليات سير العمل في مساحة العمل.
إضافة قاعدة
أولاً، لنضِف قاعدة نمط الرمز. انتقِل إلى Rules وانقر على الزر +Workspace. امنحها اسمًا، مثل code-style-guide، مع قواعد نمط الرمز البرمجي التالية:
* Make sure all the code is styled with PEP 8 style guide
* Make sure all the code is properly commented
ثانيًا، لنضِف قاعدة أخرى للتأكّد من إنشاء الرمز بطريقة نموذجية مع أمثلة في قاعدة code-generation-guide:
* The main method in main.py is the entry point to showcase functionality.
* Do not generate code in the main method. Instead generate distinct functionality in a new file (eg. feature_x.py)
* Then, generate example code to show the new functionality in a new method in main.py (eg. example_feature_x) and simply call that method from the main method.
يتم حفظ القاعدتين وتصبحان جاهزتين:

إضافة سير عمل
لنحدّد أيضًا سير عمل لإنشاء اختبارات الوحدة. سيسمح لنا ذلك بتشغيل اختبارات الوحدات بعد أن نكون راضين عن الرمز (بدلاً من أن ينشئ الوكيل اختبارات الوحدات طوال الوقت).
انتقِل إلى Workflows وانقر على الزر +Workspace. أدخِل اسمًا مثل generate-unit-tests مع ما يلي:
* Generate unit tests for each file and each method
* Make sure the unit tests are named similar to files but with test_ prefix
أصبح سير العمل جاهزًا أيضًا الآن:

جرِّبه الآن
لنطّلِع الآن على القواعد وسير العمل بشكل عملي. أنشئ ملف main.py في مساحة العمل:
def main():
pass
if __name__ == "__main__":
main()
الآن، انتقِل إلى نافذة محادثة الوكيل واطرح السؤال التالي: Implement binary search and bubble sort.
بعد دقيقة أو دقيقتين، من المفترض أن تتلقّى ثلاثة ملفات في مساحة العمل: main.py وbubble_sort.py وbinary_search.py. ستلاحظ أيضًا أنّه تم تنفيذ جميع القواعد: الملف الرئيسي غير مزدحم ويتضمّن نموذج الرمز البرمجي، وتم تنفيذ كل ميزة في ملفها الخاص، وتم توثيق جميع الرموز البرمجية وتنسيقها بشكل جيد:
from binary_search import binary_search, binary_search_recursive
from bubble_sort import bubble_sort, bubble_sort_descending
def example_binary_search():
"""
Demonstrate binary search algorithm with various test cases.
"""
...
def example_bubble_sort():
"""
Demonstrate bubble sort algorithm with various test cases.
"""
...
def main():
"""
Main entry point to showcase functionality.
"""
example_binary_search()
example_bubble_sort()
print("\n" + "=" * 60)
if __name__ == "__main__":
main()
بعد أن أصبحنا راضين عن الرمز البرمجي، لنرَ ما إذا كان بإمكاننا تشغيل سير عمل إنشاء اختبار الوحدة.
انتقِل إلى المحادثة وابدأ بكتابة /generate، وسيتعرّف Antigravity على سير العمل:

انقر على generate-unit-tests وأدخِل الرمز. بعد بضع ثوانٍ، ستتلقّى ملفات جديدة في مساحة عملك: test_binary_search.py وtest_bubble_sort.py مع عدد من الاختبارات التي تم تنفيذها مسبقًا.

أحسنت.
10. تأمين الوكيل
إنّ منح وكيل مستند إلى الذكاء الاصطناعي إذن الوصول إلى الجهاز الطرفي والمتصفّح هو سلاح ذو حدّين. تتيح هذه الميزة تصحيح الأخطاء وتفعيلها بشكل مستقل، ولكنّها تفتح أيضًا قنوات لعمليات "حقن الطلبات" و"استخراج البيانات".
تعالج Antigravity هذه المشكلة من خلال نظام أذونات دقيق يعتمد على سياسات التنفيذ التلقائي لأوامر الواجهة الطرفية وقوائم السماح وقوائم الرفض.
عند ضبط Antigravity لأول مرة أو من خلال قائمة الإعدادات، يجب اختيار سياسة Terminal Command Auto Execution. يحدّد هذا الإعداد مدى استقلالية الوكيل في ما يتعلّق بأوامر shell.
يمكنك الاطّلاع على إعداداتك الحالية لهذه الميزة من خلال الانتقال إلى Antigravity — Settings، ثم Advanced Settings. من المفترض أن يظهر لك قسم Terminal لإعدادات "الوكيل". ضَع هذا الجدول في اعتبارك إذا أردت تغيير هذا الإعداد إلى قيمة أخرى:
وضع السياسة | الوصف |
إيقاف | لا ينفّذ "الوكيل" أبدًا أوامر الوحدة الطرفية تلقائيًا ما لم يُسمح بذلك صراحةً. |
تلقائي | يقرّر الوكيل ما إذا كان سينفّذ الإجراء استنادًا إلى نماذج الأمان الداخلية. يطلب الحصول على إذن لتنفيذ الأوامر الخطيرة. |
توربو | ينفّذ الوكيل الأوامر تلقائيًا دائمًا ما لم يتم رفضها بشكل صريح. |
ضبط القائمة المسموح بها
يتم استخدام قائمة السماح بشكل أساسي مع سياسة إيقاف. وهو يمثّل نموذج أمان إيجابيًا، ما يعني أنّه يتم حظر كل شيء ما لم يتم السماح به صراحةً. هذا هو الإعداد الأكثر أمانًا.
خطوات الضبط
- اضبط إعداد التنفيذ التلقائي لأوامر الجهاز الطرفي على إيقاف.
- أضِف الأمر التالي في أوامر Terminal في قائمة السماح من خلال النقر على الزر إضافة بجانبه :
ls -al. يمكنك أيضًا إضافة أوامر أخرى في سطر الأوامر إذا أردت ذلك.
اختبار القائمة المسموح بها
- اطرح السؤال على الوكيل:
List the files in this directory. - يتم تشغيل الوكيل
lsتلقائيًا. - اطرح السؤال على موظّف الدعم:
Delete the <some file> - سيحاول الوكيل تنفيذ
rm <filepath>، ولكن سيحظر Antigravity هذا الإجراء ويفرض مراجعة من المستخدم لأنّrmغير مدرَج في القائمة المسموح بها. من المفترض أن يطلب منك تطبيق Antigravity الإذن قبل تنفيذ الأمر.
ضبط إعدادات "قائمة الرفض"
قائمة الرفض هي إجراء الحماية لسياسة "السرعة الفائقة" (وأحيانًا سياسة تلقائي). وهو يمثّل نموذج أمان سلبيًا، ما يعني أنّه يتم السماح بكل شيء ما لم يتم حظره صراحةً. يعتمد ذلك على توقّع المطوّر لكل خطر محتمل، وهو اقتراح محفوف بالمخاطر، ولكنه يوفّر أقصى سرعة.
خطوات الضبط
- اضبط إعداد التنفيذ التلقائي لأوامر الجهاز الطرفي على Turbo.
- أضِف الأوامر التالية في أوامر Terminal في قائمة الرفض من خلال النقر على الزر إضافة بجانبها.
- غرف
- rmdir
- sudo
- curl
- wget
اختبار قائمة الرفض
- اطرح السؤال على الوكيل:
Check the version of python. - يتم تشغيل الوكيل
python --versionتلقائيًا. - اطرح السؤال على موظّف الدعم:
Downloadwww.google.comhome page. - يحاول الوكيل
curl. يرصد Antigravitycurlفي قائمة الحظر ويحظر التنفيذ، ويطلب منك الموافقة يدويًا.
أمان المتصفّح
إنّ قدرة Antigravity على تصفّح الويب هي قوة خارقة، ولكنّها أيضًا نقطة ضعف. قد يتعرّض الموظف الذي يزور موقعًا إلكترونيًا للوثائق تم اختراقه لهجوم حقن الطلبات.
للمساعدة في منع حدوث ذلك، يمكنك تنفيذ قائمة عناوين URL المسموح بها في المتصفّح لوكيل المتصفّح.
يمكنك الاطّلاع على إعداداتك الحالية لهذا الخيار من خلال الانتقال إلى Antigravity — Settings ثم Advanced Settings. من المفترض أن يظهر لك قسم "قائمة عناوين URL المسموح بها في المتصفّح" لإعدادات المتصفّح كما هو موضّح أدناه:

انقر على "فتح ملف القائمة المسموح بها" وسيتم فتح الملف في المجلد HOME/.gemini/antigravity/browserAllowlist.txt. يمكنك التأكّد من إدخال النطاقات الموثوق بها فقط هنا.
11. حالات الاستخدام
بعد أن تعرّفنا على المنتج بشكل أساسي، لنتناول بعض حالات الاستخدام لنرى كيف يعمل. يُرجى العِلم أنّ Antigravity هي منصة تعتمد على الوكلاء أولاً. وهذا يعني أنّنا في معظم الحالات نقدّم ببساطة تعليمات إلى "الوكيل"، ثم ينفّذ "الوكيل" مهمته بمفرده ويطلب الأذونات إذا لزم الأمر وينتج النتائج ثم يرسل إلينا إشعارًا عند اكتمال المهمة. نتيجةً لذلك، لا يمكننا تقديم كل مخرجات محادثة "الوكيل الافتراضي" في كل من حالات الاستخدام التالية. سنشارك التعليمات وبعض لقطات الشاشة اللازمة للنتائج المتوقّعة، ولكن قد تختلف نتائجك قليلاً.
تتراوح حالات الاستخدام التي سنتناولها بين تنفيذ بعض المهام تلقائيًا باستخدام مواقع إلكترونية خارجية، وإنشاء حالات اختبار الوحدات والتحقّق منها لأحد المشاريع، وتطوير موقع إلكتروني كامل. لنذهب
أبرز الأخبار
هذه حالة استخدام بسيطة، ولكن يمكن أن تكون الأساس الذي يمكنك من خلاله استخدام متصفّح الويب لزيارة المواقع الإلكترونية واستخراج المعلومات وتنفيذ بعض الإجراءات ثم إعادة البيانات إلى المستخدم.
في هذه الحالة، سننتقل إلى موقع "أخبار Google" الإلكتروني ونستخرج بعض المعلومات منه. ولكن يمكنك بسهولة تجربة موقع إلكتروني من اختيارك ومعرفة النتيجة.
تأكَّد من أنّك في Agent Manager وأنّك اخترت Playground، كما هو موضّح أدناه:

بعد ذلك، أعطِ الأمر التالي:

سيؤدي ذلك إلى بدء عملية "الوكيل"، وسيحدّد أنّ عليه تشغيل المتصفّح وما إلى ذلك. عليك الانتباه جيدًا إلى "عملية التفكير" ومعرفة كيف ينفّذ "الوكيل" عمله. إذا سارت الأمور على ما يرام، من المفترض أن يتم تشغيل متصفّح Antigravity والانتقال إلى الموقع الإلكتروني كما هو موضّح أدناه. يشير الحدّ الأزرق حول الموقع الإلكتروني إلى أنّ "الوكيل" يتحكّم الآن في المتصفّح ويتنقّل في الموقع الإلكتروني للحصول على المعلومات.

بعد انتهاء عملية الإنشاء، من المفترض أن تظهر لك أيضًا الأدوات التي تم إنشاؤها، كما هو موضّح أدناه:

في ما يلي مثال على تنفيذ الوكيل:

لاحظ أنّه على اليمين، لدينا "عملية التفكير"، ويمكنك أيضًا الانتقال بين النقاط وعرض التشغيل والبيانات الأخرى.
إجراءات يمكنك تجربتها
- بعد فهم ذلك، اختَر موقعًا إلكترونيًا متاحًا تريد أن ينتقل إليه "الوكيل" ويحصل منه على بعض البيانات أو يلخّصها. فكِّر في بعض المواقع الإلكترونية التي تعرف أنّها تتضمّن لوحات بيانات ورسومًا بيانية واطلب منها اختيار بعض القيم.
- جرِّب الطلب التالي:
Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.
إنشاء موقع إلكتروني ديناميكي باستخدام Python وFlask
لننتقل الآن إلى إنشاء تطبيق ويب كامل. تطبيق الويب الذي سننشئه هو موقع إلكتروني يقدّم معلومات عن فعالية فنية لمدة يوم واحد، وتتضمّن هذه الفعالية جلسات حوارية على مدار اليوم يقدّمها متحدثون متعدّدون.
تأكَّد مرة أخرى من أنّك في Agent Manager وأنّك اخترت Playground.
أدخِل الطلب التالي:
I would like to generate a website that is a 1-day technical conference informational site.
The website should have the following functionality:
1. A home page that shows the current date, location, schedule and time table.
2. The 1-day event is a list of 8 talks in total.
3. Each talk has 1 or 2 max. speakers.
4. A talk has an ID, Title, Speakers, Category (1 or 2), Description and time of the talk.
5. Each speaker has a First Name, Last Name and LinkedIn url.
6. Allow for users to search by category, speaker, title.
7. Give a lunch break of 60 minutes.
8. Use dummy data for events and speakers, come up with a schedule, the event is about Google Cloud Technologies.
9. Tech Stack: Python and Flask framework on server side. Front-end is basic HTML, CSS and JavaScript.
10. Test out the site on your own for all functionality and provide a detailed README on how to setup, run and make any further changes.
11. Launch the web application for me to review.
يمكنك بدء المحادثة من خلال تقديم الطلب أعلاه:
أثناء تنفيذ "الوكيل" لمهمته، سيواصل إنشاء العناصر التالية:
- عنصر المهمة
- عنصر التنفيذ
- Walkthrough Artifact
كانت مهمة Task Artifact الموضّحة أدناه هي التسلسل الأولي للمهام التي حدّدها "الوكيل" على أنّه يجب تنفيذها استنادًا إلى المهمة الموكلة إليه. في ما يلي لقطة شاشة نموذجية من عملية التنفيذ:

يمكنك بعد ذلك النقر على عنصر خطة التنفيذ. في ما يلي نموذج للقطة شاشة:

وأخيرًا، لديك عنصر التجربة الإرشادية. يتضمّن هذا السجلّ كل ما فعله الوكيل كما هو موضّح أدناه:

لاحظ أنّه بدأ تشغيل الخادم وقدّم لي عنوان URL، والذي أنقر عليه وأحصل على التطبيق، ويظهر أدناه لقطة شاشة نموذجية:

إذا انتقلت إلى المحرّر، ستلاحظ في الشاشة أنّه يحتوي على المجلد الذي تم فيه إنشاء تطبيق Python Flask. ستلاحظ أيضًا أنّ Agent mode تمّت الإشارة إليه على اليسار ويمكنك مواصلة المحادثة هناك أيضًا.

لنفترض الآن أنّنا نريد إضافة المزيد من المحاضرات إلى الفعالية. يمكننا البقاء في "أداة التعديل" وفي لوحة "الوكيل"، وإدخال تعليمات مثل Add two more talks to the schedule.
سيؤدي ذلك إلى تحليل الوكيل للمتطلبات وتعديل المهمة وخطة التنفيذ، ثم التحقّق من الوظيفة المعدَّلة أيضًا. في ما يلي نموذج لمحادثة:

يمكنك العودة إلى "إدارة الوكلاء" إذا أردت ذلك. من المفترض أن تساعدك هذه العملية في فهم الخطوات اللازمة للانتقال من "مدير وكالة" إلى "محرّر"، وإجراء التغييرات وفقًا لذلك، وما إلى ذلك.
إجراءات يمكنك تجربتها
- أضِف وظائف إضافية تريدها في التطبيق. قدِّم التفاصيل إلى "الوكيل" ولاحظ كيف ينفّذ مهمته من خلال تعديل قائمة المهام أولاً، ثم خطة التنفيذ وما إلى ذلك.
- اطلب من Agent إنشاء ملف README أو المزيد من المستندات للتطبيق.
إنشاء تطبيق بسيط لتعزيز الإنتاجية
سننشئ الآن تطبيق ويب بسيطًا لمؤقت Pomodoro.
تأكَّد من أنّك في Agent Manager وأنّك اخترت Playground. أدخِل الطلب التالي:
Create a productivity app that features a Pomodoro timer. Give a calm and aesthetic look to the application.
لاحظ كيف يتم إنشاء قائمة المهام وخطة التنفيذ ثم يتم تنفيذها. واصِل الانتباه إلى سير العمل، فقد تظهر لك رسالة تطلب منك إجراء مراجعة في بعض الحالات. في ما يلي مثال على عملية التنفيذ.

في هذه الحالة، يجب أن يتم أيضًا تشغيل متصفّح Antigravity، وإجراء الاختبارات الخاصة به، ثم تأكيد نجاح الاختبارات. أحد العناصر التي تم إنشاؤها هو Media Artifact الذي يحتوي على فيديو عملية التحقّق. هذه طريقة رائعة لمعرفة ما تم اختباره. اقترحتُ أيضًا بعض التغييرات في الأسلوب لأنّها لم تُطبَّق، وتمكّن من تنفيذها.
بدا التطبيق النهائي كما هو موضّح أدناه، ويبدو جيدًا جدًا.

ما رأيك في إضافة صورة مؤقت لطيفة إلى التطبيق؟ كل ما علينا فعله هو إصدار تعليمات متابعة كما هو موضّح أدناه:
Add an image to the application that displays a timer.
نتيجةً لذلك، أضاف موظّف الدعم مهمة جديدة إلى عنصر "المهمة":

بعد ذلك، أنشأ صورة أثناء تنفيذ المهمة:

أخيرًا، حصل التطبيق على الصورة كما طلبنا:

إجراءات يمكنك تجربتها
- لاحظ أنّ خلفية رمز الساعة الرملية في التطبيق ليست شفافة. جرِّب أن تطلب من وكيل المحادثة أن يوضّح ذلك.
- جرِّب بعض الصيغ المختلفة لأي تطبيق تريد إنشاؤه. جرِّب الأنماط والصور واطلب إجراء تغييرات وما إلى ذلك.
إنشاء اختبارات الوحدات ورموز محاكاة الاختبار والتحقّق من صحة الاختبارات
حالة الاستخدام الأخيرة التي سنحاولها هنا هي إنشاء اختبارات الوحدة لملف رمز معيّن لدينا، وتنفيذ الاختبارات والتحقّق من صحتها أيضًا بواسطة "الوكيل".
لذلك، سننشئ مساحة عمل تحتوي على ملف Python واحد كما هو موضّح أدناه:
from typing import Dict
# --- Custom Exceptions ---
class InventoryShortageError(Exception):
"""Raised when there is not enough item stock."""
pass
class PaymentFailedError(Exception):
"""Raised when the payment gateway rejects the transaction."""
pass
class InvalidOrderError(Exception):
"""Raised when the order violates business rules."""
pass
# --- External Service Interfaces (To be Mocked) ---
class InventoryService:
def get_stock(self, product_id: str) -> int:
"""Connects to DB to check stock."""
raise NotImplementedError("Real connection required")
def decrement_stock(self, product_id: str, quantity: int):
"""Connects to DB to reduce stock."""
raise NotImplementedError("Real connection required")
class PaymentGateway:
def charge(self, amount: float, currency: str) -> bool:
"""Connects to Stripe/PayPal."""
raise NotImplementedError("Real connection required")
# --- Main Business Logic ---
class Order:
def __init__(self,
inventory_service: InventoryService,
payment_gateway: PaymentGateway,
customer_email: str,
is_vip: bool = False):
self.inventory = inventory_service
self.payment = payment_gateway
self.customer_email = customer_email
self.is_vip = is_vip
self.items: Dict[str, Dict] = {} # {product_id: {'price': float, 'qty': int}}
self.is_paid = False
self.status = "DRAFT"
def add_item(self, product_id: str, price: float, quantity: int = 1):
"""Adds items to the cart. Rejects invalid prices or quantities."""
if price < 0:
raise ValueError("Price cannot be negative")
if quantity <= 0:
raise ValueError("Quantity must be greater than zero")
if product_id in self.items:
self.items[product_id]['qty'] += quantity
else:
self.items[product_id] = {'price': price, 'qty': quantity}
def remove_item(self, product_id: str):
"""Removes an item entirely from the cart."""
if product_id in self.items:
del self.items[product_id]
@property
def total_price(self) -> float:
"""Calculates raw total before discounts."""
return sum(item['price'] * item['qty'] for item in self.items.values())
def apply_discount(self) -> float:
"""
Applies business logic:
1. VIPs get flat 20% off.
2. Regulars get 10% off if total > 100.
3. No discount otherwise.
"""
total = self.total_price
if self.is_vip:
return round(total * 0.8, 2)
elif total > 100:
return round(total * 0.9, 2)
return round(total, 2)
def checkout(self):
"""
Orchestrates the checkout process:
1. Validates cart is not empty.
2. Checks stock for all items.
3. Calculates final price.
4. Charges payment.
5. Updates inventory.
"""
if not self.items:
raise InvalidOrderError("Cannot checkout an empty cart")
# 1. Check Inventory Logic
for product_id, data in self.items.items():
available_stock = self.inventory.get_stock(product_id)
if available_stock < data['qty']:
raise InventoryShortageError(f"Not enough stock for {product_id}")
# 2. Calculate Final Price
final_amount = self.apply_discount()
# 3. Process Payment
try:
success = self.payment.charge(final_amount, "USD")
if not success:
raise PaymentFailedError("Transaction declined by gateway")
except Exception as e:
# Catching generic network errors from the gateway
raise PaymentFailedError(f"Payment gateway error: {str(e)}")
# 4. Decrement Stock (Only occurs if payment succeeded)
for product_id, data in self.items.items():
self.inventory.decrement_stock(product_id, data['qty'])
self.is_paid = True
self.status = "COMPLETED"
return {"status": "success", "charged_amount": final_amount}
تأكَّد من أنّ ملف Python أعلاه متوفّر محليًا في مجلد وأنّك تحمّله كـ مساحة عمل في Antigravity.
هذه خدمة طلب بسيطة تتضمّن الوظائف الأساسية التالية في الدالة checkout:
- للتحقّق من أنّ سلة التسوّق ليست فارغة
- التحقّق من توفّر جميع السلع
- تحسب هذه السمة السعر النهائي.
- دفع الرسوم
- تعديل بيانات المستودع
سنكلّف "الوكيل" بمهمة إنشاء حالات اختبار الوحدات وتقديم عمليات تنفيذ وهمية وتنفيذ الاختبارات للتأكّد من نجاحها.
سنفتح مجلد مساحة العمل المحدّد وستلاحظ أنّه يمكننا الآن استخدام الرمز @ أيضًا للإشارة إلى الملف. على سبيل المثال، يمكننا إجراء ما يلي:

يظهر هذا الملف مع بعض التوضيحات حول محتواه:

يمكننا أن نطلب منه إنشاء تصور أفضل من خلال الطلب التالي:
Can you visually show this class for better understanding

خطوتنا التالية هي إنشاء اختبارات الوحدة وطلب أن يجرّبها الوكيل. أقدِّم الطلب التالي:
generate unit tests for this module and test it out with mock implementations.
وقد أنشأ العنصر التالي من نوع "مهمة" وبدأ في تنفيذ مهمته.

يمكنك أيضًا الاطّلاع على تفاصيل الاختبارات التي أجراها:

وكان أحد الملفات التي أنشأها هو ملف الاختبار أيضًا. في ما يلي لقطة شاشة توضّح ذلك:

إجراءات يمكنك تجربتها
يمكنك استخدام الرموز البرمجية الخاصة بك ومعرفة ما يمكنك أن تطلبه من "الوكيل"، بدءًا من إضافة المزيد من الوظائف إلى إعادة تصميم أجزاء من الرموز البرمجية.
12. تهانينا
تهانينا، لقد تمكّنت من تثبيت منصة Antigravity، وهي منصة تطوير تعتمد على الوكيل، وفهم كيفية استخدامها. من المفترض أنّ تساعدك حالات الاستخدام المختلفة التي جرّبناها في تحديد متطلباتك واستكشاف كيف يمكن لـ Antigravity التعاون معك لإكمالها.
المستندات المرجعية
- الموقع الإلكتروني الرسمي : https://antigravity.google/
- المستندات: https://antigravity.google/docs
- حالات الاستخدام : https://antigravity.google/use-cases
- تنزيل : https://antigravity.google/download
- قناة Youtube الخاصة بـ Google Antigravity : https://www.youtube.com/@googleantigravity