1. مقدمة
في هذا الدرس التطبيقي حول الترميز، ستنشئ لعبة CloudCrush، وهي لعبة أركيد من نوع "مطابقة 3"، باستخدام Gemini 3 ووكيل الترميز Antigravity. سيتم إنشاء اللعبة بلغة Go ونشرها على Google Cloud باستخدام Cloud Run.
يُرجى العلم أنّه على الرغم من أنّه يُنصح بمعرفة لغة Go، إلا أنّها ليست شرطًا للمشاركة في ورشة العمل هذه لأنّ البرنامج سيقوم بكل عمليات الترميز. الهدف الرئيسي من هذا الدرس التطبيقي حول الترميز هو تطوير المهارات اللازمة لتنظيم الوكيل من أجل إنشاء تطبيقات لك بدلاً من كتابة الرموز يدويًا.
هذا الدرس التطبيقي حول الترميز مخصّص للمطوّرين ذوي الخبرة المتوسطة الذين يتطلّعون إلى تعلُّم سير العمل المتقدّمة المستندة إلى الذكاء الاصطناعي الوكيل. يبلغ إجمالي المدة المقدَّرة لهذا الدرس التطبيقي 60 دقيقة. تستخدم الموارد التي تم إنشاؤها في هذا الدرس التطبيقي حول الترميز التسعير وفق الاستهلاك.
الإجراءات التي ستنفذّها
- إنشاء منطق لعبة مطابقة ثلاثة عناصر الأساسي باستخدام Go وإطار عمل Ebitengine
- تكييف اللعبة لتشغيلها على متصفّح ويب باستخدام WebAssembly (WASM)
- انشر اللعبة وواجهة برمجة التطبيقات الخاصة بأعلى نتيجة على Cloud Run.
- تنظيم الوكلاء الفرعيين والإضافات المتخصّصة لإجراء الاختبارات ومراجعة الرموز البرمجية
المتطلبات الأساسية
- معرفة أساسية بلغات البرمجة
- معرفة أساسية بالبنية الأساسية السحابية
- معرفة أساسية بوحدة تحكّم Google Cloud
أهداف الدورة التعليمية
- كيفية العمل مع وكيل ترميز لإنشاء تطبيقات معقّدة
- كيفية العمل مع Gemini في سياق متعدّد الوسائط
- كيفية نشر التطبيقات على السحابة الإلكترونية باستخدام Cloud Run
المتطلبات
يمكن إجراء ورشة العمل هذه بالكامل على السحابة الإلكترونية باستخدام Cloud Shell، ولكن إذا كنت تفضّل استخدام جهازك المحلي، ستحتاج إلى ما يلي:
- Antigravity 2.0 وAntigravity CLI نزِّله وثبِّته باتّباع التعليمات الواردة في antigravity.google
- سلسلة أدوات Go (الإصدار 1.26 أو إصدار أحدث) نزِّله وثبِّته باتّباع التعليمات الواردة في go.dev
- واجهة سطر الأوامر (CLI) في gcloud للتفاعل مع Google Cloud نزِّلها وثبِّتها باتّباع التعليمات الواردة في مستندات Google Cloud.
- حساب فوترة على Google Cloud (لنشر اللعبة على السحابة الإلكترونية)
التقنيات الرئيسية
يمكنك هنا العثور على مزيد من المعلومات حول التكنولوجيات التي سنستخدمها:
- Antigravity CLI: وكيل التطوير
- Gemini 3: أحدث إصدار من نموذجنا اللغوي الكبير المتطوّر
2. إعداد البيئة
اختَر أحد الخيارَين التاليَين: إعداد بيئة ذاتية السرعة إذا كنت تريد تشغيل هذا الدرس التطبيقي حول الترميز على جهازك الخاص، أو بدء Cloud Shell إذا كنت تريد تشغيل هذا الدرس التطبيقي حول الترميز بالكامل على السحابة الإلكترونية.
إعداد بيئة التعلّم الذاتي
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
- رقم تعريف المشروع هو معرّف فريد في جميع مشاريع Google Cloud ولا يمكن تغييره بعد ضبطه. تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس البرمجة، عليك الرجوع إلى رقم تعريف مشروعك (يُشار إليه عادةً باسم
PROJECT_ID). إذا لم يعجبك المعرّف الذي تم إنشاؤه، يمكنك إنشاء معرّف عشوائي آخر. يمكنك بدلاً من ذلك تجربة اسم من اختيارك ومعرفة ما إذا كان متاحًا. لا يمكن تغيير هذا الخيار بعد هذه الخطوة وسيظل ساريًا طوال مدة المشروع. - للعلم، هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير، إن وُجدت أي تكلفة على الإطلاق. لإيقاف الموارد وتجنُّب تحمّل تكاليف فوترة تتجاوز هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي حول الترميز Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات أعلى يسار الصفحة:

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا دائمًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا الدرس العملي ضمن المتصفّح. لست بحاجة إلى تثبيت أي تطبيق.
3- إعداد المشروع
إنشاء دليل المشروع
أولاً، علينا إنشاء دليل جديد لمشروعك. في الوحدة الطرفية، شغِّل الأوامر التالية:
mkdir -p codelab-match3 && cd codelab-match3
تشغيل Antigravity CLI
أولاً، لنتأكّد من تثبيت واجهة سطر الأوامر Antigravity بشكلٍ صحيح. نفِّذ الأمر التالي في الوحدة الطرفية:
agy --version
ينبغي أن تظهر لك على النحو التالي:
$ agy --version 1.0.2
الآن، شغِّل واجهة سطر الأوامر Antigravity باستخدام الأمر agy:
agy
سيطلب منك تطبيق Antigravity تأكيد ما إذا كنت تثق بهذا المشروع. بما أنّنا أنشأنا مجلدًا فارغًا، يمكن الوثوق به، لذا أكِّد الوصول وسيتم نقلك إلى طلب سطر الأوامر:

إذا ظهرت لك رسالة Antigravity CLI، يمكنك المتابعة. وإذا لم تظهر، يُرجى التحقّق مما إذا فاتتك أي من خطوات الإعداد السابقة.
4. إنشاء اللعبة الأساسية في وضع التخطيط
لنبدأ بإنشاء منطق لعبة مطابقة ثلاثة عناصر الأساسي. يبدأ وضع "مقاومة الجاذبية" تلقائيًا في وضع التخطيط، لذلك لا تحتاج إلى إصدار أي أوامر خاصة للتبديل إلى وضع التخطيط.
ومع ذلك، من المفيد معرفة أنّه يمكنك تفعيل وضع التخطيط في أي وقت باستخدام أمر يبدأ بشرطة مائلة /planning في موجّه أوامر Antigravity CLI:
/planning
إذا حاولت تنفيذ هذا الأمر الآن، سيذكّرك تطبيق Antigravity بأنّه قيد التخطيط.

عكس "وضع التخطيط" هو "الوضع السريع"، ويمكنك تفعيله باستخدام /fast:
/fast

في الوضع السريع، ستبدأ Antigravity العمل على المهمة على الفور، وهو مخصّص للمهام الأبسط والمستقلة. تم تصميم "وضع التخطيط" للمهام المعقّدة، حيث يضع الوكيل أولاً خطة يمكنك مراجعتها وتكرارها قبل التنفيذ.
تنزيل مواد العرض
علينا تنزيل الصور التي سيتم استخدامها في اللعبة. بما أنّ هذه مهمة صغيرة ومستقلة، ليس من الضروري تنفيذها في وضع التخطيط، لذا سنستفيد من وضع التنفيذ السريع لتنفيذها على الفور:
Create a folder named "assets" and download the images
background.png, gcp_sprites.png, gemini.png and logo.png,
from this GitHub repository to the "assets" folder:
https://github.com/GoogleCloudPlatform/devrel-demos/tree/main/codelabs/gemini-cli/gemini-cli-match3-golang
سيطلب منك Antigravity الإذن بتنفيذ بعض أوامر shell لتنزيل الملفات. بعد الانتهاء من ذلك، من المفترض أن يظهر لك ما يلي:

إنشاء اللعبة الأساسية
بعد أن أصبحت مواد العرض جاهزة، حان الوقت لإنشاء اللعبة الأساسية. بما أنّ إنشاء لعبة هو مهمة معقّدة إلى حدّ ما، لنرجع إلى وضع التخطيط قبل أن نقدّم طلبنا:
/planning
في وضع التخطيط، انسخ الطلب التالي والصِقه في واجهة سطر الأوامر Antigravity:
Build a Match-3 game called 'Cloud Crush' in Go using Ebitengine v2.
The entire game screen should have background.png as background.
The play area should be an 8x8 grid with white background.
On the right side of the play area include a side panel with UI elements
like player score and how to play instructions.
The side panel should have a solid background colour to help with readability of the UI.
Use standard GCP product logos (e.g. Compute Engine, Cloud Storage, BigQuery, etc.)
as icons. These icons are provided in the gcp_sprites.png file.
The icons are saved as 64x64 sprites but scale them as necessary
based on the screen resolution. Implement swapping, clearing 3+ gems, and gravity.
Use ebitengine native font rendering (size 48 for titles and size
24 for normal text) for all text and not the debug print.
The font should be monospaced (golang.org/x/image/font/gofont/gomono).
Keep the UI tidy and harmonic, e.g. centered text should always be
adjusted based on text length, not just guess based on estimates.
وقد يستكشف بعض المعلومات قبل وضع الخطة، مثل فحص ملفات PNG لمعرفة أبعادها. بعد الانتهاء من الخطة، سيُطلب منك مراجعتها:

يُرجى الانتباه جيدًا إلى أسفل يسار الشاشة حيث كتبت 1 قطعة أثرية وإلى التلميح باستخدام /artifact للمراجعة. في Antigravity، تُسمى الملفات الداعمة، مثل الخطط وقوائم المهام والجولات الإرشادية، "أدوات" لتمييزها عن الملفات العادية التي تشكّل جزءًا من الحل (مثل رمز المصدر).
سيسمح لك إدخال الأمر /artifact في الطلب بالاطّلاع على الخطة وإضافة تعليقات عليها في حال أردت إجراء أي تعديلات.
/artifact
ينبغي أن تظهر لك على النحو التالي:

يُرجى العِلم أنّه يوجد ملف باسم implementation_plan.md يتضمّن خيارات الفتح أو الموافقة أو الرفض. اضغط على Enter لفتحها. في ما يلي مثال على شكل الخطة على نظامي:

يمكنك التنقّل للأعلى والأسفل باستخدام مفاتيح الأسهم، ويمكنك إضافة تعليق في أي سطر من خلال الضغط على المفتاح C. في هذه الحالة، لا يعجبني أنّه يستخدم إصدارًا قديمًا من Go، لذا سأضيف تعليقًا لاستخدام Go 1.26 (أحدث إصدار في وقت كتابة هذا المقال) في السطر 16:

بعد إدخال التعليق، سيظهر مضمّنًا:

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

كرِّر هذه العملية إلى أن تصبح راضيًا عن الخطة، ثم اضغط على ESC للرجوع. بعد ذلك، اضغط على Y لتأكيد إرسال التعليقات إلى الموظف:

بعد الضغط على Y، سيبدأ الوكيل العمل على الفور. عليك الضغط على مفتاح Esc مرة أخرى للخروج من قائمة "العناصر". سيؤدي ذلك إلى الرجوع إلى وضع المطالبة. في الوقت نفسه، قد يطلب الوكيل تأكيدات إضافية كثيرة بشأن استدعاء الأداة لأنّه يحتاج إلى تنفيذ أوامر shell.
أثناء الانتظار، يمكننا أيضًا مواصلة العمل على التصميم من خلال وضع الطلبات في قائمة الانتظار. على سبيل المثال، يمكننا الاستفادة من هذه الفرصة لإضافة شرط جديد لم يتم تضمينه في الطلب الأصلي:
Add a 60-seconds countdown timer and an in-memory high-score tracker to enhance the arcade game experience. Combos should give a score bonus of 10% per combo number.
ستظهر الطلبات في قائمة الانتظار في سجلّ الرسائل مع رأس سهم صغير أمامها:

قد تلاحظ أيضًا أنّ عدد العناصر يزداد. بالإضافة إلى الخطة، ستنشئ Antigravity أيضًا قائمة مهام (task.md) لتتبُّع كل عنصر يجب تنفيذه أو كل إجراء يجب اتخاذه. وبعد الانتهاء، ستنشئ ملفًا إرشاديًا (walkthrough.md) يتضمّن شرحًا للأهداف التي تم تحقيقها. يمكنك فحص كل هذه العناصر باستخدام الأمر /artifact مرة أخرى.

في ما يلي مثال على ملف task.md بعد إكمال عملية تنفيذ اللعبة الأساسية:

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

جرِّب تشغيل اللعبة لمعرفة ما إذا كانت تعمل على النحو المتوقّع. ننصحك بتشغيله من داخل طلب الوكيل. يمكنك تبديل الطلب إلى "وضع الصدفة" من خلال كتابة علامة تعجّب "!":

ستظهر لك الرسالة "تم تفعيل وضع bash" تحت الطلب. اضغط على Enter لتنفيذ الأمر. يمنحك تشغيل البرنامج الثنائي في هذا الوضع ميزة أنّ الوكيل "يراقب" أي ناتج في الوحدة الطرفية، لذا في حال تعذّر تشغيل اللعبة أو تعطّلها فجأة، لن تحتاج إلى شرح المشكلة التي حدثت للوكيل. ستتضمّن على الفور جميع المعلومات التي تحتاج إليها من سياق الصدفة.

جرِّب لعب اللعبة واضبط مَعلمات اللعبة إلى أن تشعر بالرضا عن التجربة (مثل تسريع الرسوم المتحركة أو إبطائها، وتعديل طريقة استجابتها للأوامر، وما إلى ذلك).
على سبيل المثال، سيؤدي هذا الطلب إلى تحسين التجربة، وإضافة وضع تسهيل الاستخدام وأوامر جديدة للوحة المفاتيح:
Update the implementation to include: 'Q' to quit, 'F' for full-screen
and 'A' for Accessibility Mode: swap GCP logos for high-contrast coloured blocks.
Also enable Arrow Keys to move the selection cursor and Space to select the gem to
swap (space is pressed once to select, then arrow key immediately makes
the move - no need to press space again).
Use a golden square (4 px border, transparent fill) with a simple animation
to highlight where the cursor is at the moment.
بعد الانتهاء من عملية التحسين، انتقِل إلى القسم التالي لتحويله إلى تطبيق ويب.
5- تعديل اللعبة لتشغيلها على متصفّح ويب
لعبة Ebitengine هي حاليًا تطبيق متوافق مع أجهزة كمبيوتر سطح المكتب. لنطلب من واجهة سطر الأوامر Antigravity CLI تعديلها لتتمكّن من التشغيل في متصفّح ويب باستخدام WebAssembly (WASM). سيتضمّن ذلك تجميع رمز Go لاستهداف المتصفّح وإعداد خادم ويب أساسي.
استخدِم الطلب التالي لتوجيه الوكيل:
We need to enable this game to run on a web browser. Compile the game to WASM
and create a Go web server to serve the compiled WASM and the assets.
يُرجى العِلم أنّ الوكيل سيحاول البحث عن ملف باسم wasm_exec.js في نظام الملفات. هذا أمر متوقّع وعليك السماح به، لأنّ هذا الملف هو برنامج تضمين يسمح بتشغيل ملفات Go الثنائية عبر JavaScript. على سبيل المثال:

بعد أن يكمل الوكيل المهمة، يمكنك توجيهه إلى تشغيل خادم اللعبة في الخلفية.

افتح الآن http://localhost:8080 في المتصفّح للاطّلاع على اللعبة التي يتم تشغيلها على الويب:

بعد تشغيل التطبيق على الويب، لنضِف إليه بعض التحسينات النهائية قبل نشره على السحابة الإلكترونية.
6. إنشاء شاشة العنوان وقائمة الصدارة
تعمل اللعبة ولكنّها تفتقر إلى بعض الميزات الأساسية لتوفير تجربة ألعاب أركيد مناسبة. لنبدأ بإضافة شاشة عنوان، ثم نضيف قائمة صدارة لتتمكّن من التنافس مع أصدقائك. استخدِم الطلب التالي:
Create a title screen that displays the game logo (logo.png) over the cloud background.
The logo should be centered and occupy no more than 75% of the screen area.
The title screen should display "Press ENTER to play" (black/bold) right below the logo,
with every letter animated in a slow wavy (cosine) pattern.
Once the player presses ENTER, it should be prompted to add their name, which
will then be recorded to populate the leaderboard at the end of the round.
Once the game is over, play the animated leaderboard with the top 10 highest scores.
The animated leaderboard should render entries one by one up to 10 entries,
using a fade in effect just like old school arcade games. The leaderboard
should fade out to the title screen after 15 seconds.
Please note that name entry should be processed independently of the play state
key handlers (e.g. pressing A during name entry should not toggle accessibility mode).
Leaderboard scores should be saved in-memory, server-side.
يبدو الآن أكثر احترافية. 🙂
7. نشر اللعبة على Cloud Run
حان الوقت أخيرًا لمشاركة إبداعنا مع العالم. سننشر التطبيق بأكمله على Google Cloud Run لنتمكّن من الوصول إليه من أي مكان.
Use the gcloud CLI to provision and deploy the Go web server and its assets to
Google Cloud Run. Provide the live URL when complete.
بما أنّ اللعبة أصبحت متاحة الآن على السحابة الإلكترونية، سيكون من المؤسف عدم السماح بتشغيلها على الأجهزة الجوّالة. يمكنك إجراء ذلك باستخدام الطلب التالي:
Now enable this game to run on mobile devices. You need to update the input system to handle "taps" as well as key presses and clicks. Since mobile devices most likely won't have a keyboard, add a virtual keyboard to the name entry screen and a confirmation button to the name entry.
Finally, generate a QR code for the CloudRun link and display it on the screen so that people can scan it to access the mobile version and compete against their friends for the high score.
أعِد تشغيل اللعبة على المتصفّح. حاوِل الوصول إلى عنوان URL من جهاز جوّال أيضًا (قد تحتاج إلى إنشاء رمز استجابة سريعة لتسهيل هذه التجربة).
8. استخدام وكيل المتصفّح لاختبار اللعبة
على الرغم من أنّ اختبار الألعاب تلقائيًا غالبًا ما يكون أمرًا صعبًا لأنّها تعتمد على الملاحظات المرئية، يمكننا الاستفادة من بعض عمليات التشغيل الآلي لضمان عمل عملية النشر بشكل صحيح على الأقل وتوفُّر العناصر الأساسية.
لإجراء ذلك، سنستخدم الوكيل الفرعي للمتصفح. في Antigravity، الوكيل الفرعي هو شخصية معزولة بسياق جديد، وهو مثالي للمهام التي لا تريد أن يؤثر فيها السياق الحالي في النتائج، أو عندما تريد منع المهمة من "تلوين" قدرة استيعاب السياق الرئيسية.
وكيل المتصفّح هو وكيل خاص مدمج لإنجاز المهام المتعلّقة بالمتصفّح. يُرجى العِلم أنّه في هذه الخطوة فقط، علينا استخدام تطبيق Antigravity على الكمبيوتر المكتبي لأنّ وكيل المتصفّح غير متاح حاليًا على سطر الأوامر.
افتح تطبيق Antigravity على الكمبيوتر وابدأ محادثة جديدة في مشروع Cloud Crush:

يمكنك تشغيل الوكيل الفرعي للمتصفّح من خلال كتابة /browser متبوعًا بطلب البحث التالي:
Go to http://localhost:8080 and capture screenshots of the following game screens:
1. Title Screen (initial state: "PRESS ENTER TO PLAY")
2. Name Entry Screen (press Enter to reach this screen)
3. Main Gameplay Screen (type a name like "PLAYER" and press Enter to start)
4. Leaderboard Screen (let the game timer run out to view the high scores)
يتيح لنا هذا الأسلوب استخدام لقطات الشاشة لإصلاح عناصر واجهة المستخدم التي قد يصعب وصفها بالنص فقط.
يمكنك الإشارة إلى الملفات باستخدام الرمز "@" متبوعًا باسم الملف. على سبيل المثال، أطلب هنا من الوكيل زيادة حجم الشعار على شاشة العنوان:

على الرغم من أنّ هذا المثال يبدو مصطنعًا بعض الشيء لأنّ النموذج لا يحتاج بالضرورة إلى "رؤية" الصورة لتطبيق تصحيح بنسبة% 50 في الحجم، إلا أنّه أسلوب مفيد لإجراء تعديلات على واجهة المستخدم حيث يصعب وصف المشكلة في شكل نصي. يسمح هذا الإجراء أيضًا للوكيل بالتحقّق من صحة عمله من خلال أخذ لقطات شاشة قبل وبعد، لذا احتفظ بهذه الحيلة في صندوق الأدوات.
9- إنشاء وكيل مخصّص لتأمين اللعبة
أحد المخاوف الشائعة بشأن التطبيقات التي تستخدم الترميز المستند إلى المشاعر هو كيفية الحفاظ على الجودة العالية وأفضل الممارسات من منظورَي الترميز والأمان. يمكنك محاولة تحسين طلباتك لتكون دقيقة جدًا في كلا الجانبين، ولكن كلما أضفت المزيد إلى الطلب، قلّ تركيز الوكيل، ما يؤدي غالبًا إلى نتائج غير مثالية.
في هذا النوع من السيناريوهات، يكون استخدام الوكلاء الفرعيين مثاليًا، إذ يمكنهم التركيز بشكل كبير على المهمة التي تسندها إليهم. لننشئ وكيلاً مخصّصًا لإجراء تدقيق أمني على هذا الرمز البرمجي والتأكّد من أنّنا لا نسرّب أي بيانات اعتماد أو نعرض أنفسنا لأي مخاطر غير ضرورية أثناء نشر هذه اللعبة.
يوفّر هذا الطلب أساسًا جيدًا للوكيل:
create a new subagent called "security_auditor" using the following instructions:
You are a ruthless Security Auditor. Your job is to analyze code for potential vulnerabilities.
Focus on:
1. SQL Injection
2. XSS (Cross-Site Scripting)
3. Hardcoded credentials
4. Unsafe file operations
When you find a vulnerability, explain it clearly and suggest a fix. Do not fix it yourself; just report it.
يُرجى العِلم أنّ Antigravity ستستخدم أداة DefineSubagent لإنشاء الوكيل الجديد:

اطلب من الوكيل إجراء فحص أمان على رمز اللعبة باستخدام الطلب التالي:
Run the security auditor agent in this code
ينبغي أن تظهر لك على النحو التالي:

بعد أن يكمل الوكيل مهمته، من المفترض أن يظهر لك تقرير على النحو التالي:

لنطلب من Antigravity إصلاحها نيابةً عنا 🙂:
Fix these findings for me please!
وهذا كل ما في الأمر:

يُرجى العِلم أنّ الوكلاء الذين يتم إنشاؤهم بهذه الطريقة يكونون متاحين فقط خلال مدة المحادثة. إذا كنت تريد الحصول على وكيل "قابل لإعادة الاستخدام" بين الجلسات، يمكنك إنشاؤه باستخدام ملف إعداد. لمزيد من المعلومات، راجِع الأمر /agents.
10. الخاتمة
تهانينا! لقد استخدمت Antigravity CLI بنجاح لإنشاء لعبة أركيد ونشرها واختبارها وتدقيقها، ما يوضّح سير العمل المتقدّم المستند إلى الوكلاء من مرحلة الإنشاء الأوّلي إلى مرحلة النشر.
تنظيف
لتجنُّب الرسوم المستمرة على حسابك على Google Cloud، احذف الموارد التي تم إنشاؤها أثناء هذا الدرس العملي.
- احذف خدمة Cloud Run:
I'm finished with this project. Delete the cloud run deployment.
- احذف دليل المشروع:
cd .. && rm -rf codelab-match3
يمكنك بدلاً من ذلك حذف مشروع Google Cloud بأكمله إذا تم إنشاؤه لهذا الدرس التطبيقي حول الترميز فقط.
الخطوات التالية
يمكنك مواصلة رحلة التعلّم من خلال استكشاف دروس تطبيقية أخرى حول الترميز في هذه المنصة، أو من خلال تحسين لعبة Cloud Crush بنفسك، ولكن لا تنسَ إزالة الموارد بعد الانتهاء من استخدامها.
مع أطيب التحيّات