تطوير مستند إلى المواصفات باستخدام Antigravity CLI: مهام سير عمل الوكيل المنظَّمة باستخدام المهارات وMCP

1. مقدمة

إنشاء منتج بالحد الأدنى من الميزات (MVP) باستخدام البرمجة الحدسية هو أمر سريع، ولكن إضافة ميزات إليه من خلال إدخال المزيد من الطلبات هو ما يؤدي إلى تعثّر المشاريع. أنت بحاجة إلى طريقة لإضافة بنية وسياق واقعي إلى عملية التطوير المستندة إلى الذكاء الاصطناعي. هنا يأتي دور Antigravity CLI، وهو وكيل ترميز بالذكاء الاصطناعي يعمل في الواجهة الطرفية. ويمكنه بمفرده فهم قاعدة الرموز البرمجية وتنفيذ الأوامر وتعديل الملفات. تكمن قوته الحقيقية في الأجهزة التي يتم توصيلها به:

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

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

ما ستنشئه

تنطبق الأنماط الواردة في هذا الدرس التطبيقي حول الترميز، مثل تثبيت المهارات المتعلّقة بالمنهجية والمعرفة بالمجال، وربط خوادم بروتوكول سياق النموذج (MCP) للوصول إلى البيانات المباشرة، وتنفيذ دورة تطوير مستندة إلى المواصفات، على أي ميزة تنشئها باستخدام Antigravity CLI، بغض النظر عن اللغة أو إطار العمل أو منتجات Google Cloud. لإضفاء طابع عملي على هذه الأنماط، يمكنك العمل من خلال مثال محدّد: إضافة ميزة دمج BigQuery إلى لوحة بيانات إحصاءات التجارة الإلكترونية.

التطبيق التجريبي هو تطبيق ويب FastAPI يقرأ بيانات المبيعات من ملفات CSV ثابتة ويعرض رسومات بيانية (مؤشرات الإيرادات، وأهم المنتجات، وتفاصيل حالة الطلب، وأداء الفئات). في النهاية، يستعلم التطبيق عن البيانات المباشرة من BigQuery، وهو مستودع بيانات بدون خادم من Google Cloud يتيح لك تنفيذ طلبات بحث SQL على مجموعات بيانات كبيرة بدون إدارة البنية الأساسية. على وجه التحديد، يمكنك الربط بمجموعة بيانات thelook_ecommerce، ما يتيح لك الوصول إلى كتالوج كامل من الطلبات والمنتجات والعملاء لا يمكن أن يوفّره ملف CSV يتضمّن 500 صف. يمكنك إنشاء هذه الميزة بالكامل من خلال Antigravity CLI، مع الاسترشاد بالمهارات وMCP.

5acdeb09cd9d5960.png

ستظهر إعدادات الوكيل التي سنستخدمها مع Antigravity CLI على النحو التالي

5e3dd8629e65e6ce.png

ما ستتعلمه

  • كيفية استخدام Antigravity CLI في Cloud Shell: التشغيل والتنقّل في واجهة المستخدم المستندة إلى النصوص وتنفيذ الأوامر التي تبدأ بشرطة مائلة
  • مهارات الوكيل وكيفية الحفاظ على السياق بكفاءة باستخدام نمط الكشف التدريجي (البيانات الوصفية → التعليمات → المراجع)
  • ثلاث فئات من المهارات: المنهجية (القوى الخارقة) والكفاءة (رجل الكهف) ومعرفة المجال (google/skills)
  • ما هو MCP وكيفية إعداد خادم MCP بعيد (BigQuery MCP) لأداة Antigravity CLI
  • كيفية تنفيذ دورة تطوير مستندة إلى المواصفات: تحديد المواصفات → التخطيط → التنفيذ
  • (اختياري) طريقة عمل الوكلاء الفرعيين في Antigravity CLI وكيفية إدارتهم
  • كيفية دمج مكتبة برامج google-cloud-bigquery Python في تطبيق FastAPI
  • (اختياري) كيفية نشر التطبيق على Cloud Run باستخدام Antigravity CLI مع مهارة نطاق

المتطلبات الأساسية

  • حساب Google Cloud
  • معرفة أساسية بلغة Python وواجهات برمجة تطبيقات REST وأمر Terminal

2. إعداد البيئة

تؤدي هذه الخطوة إلى استنساخ مستودع الرموز البرمجية المبدئي وإعداد مشروعك على Google Cloud وتفعيل واجهات برمجة التطبيقات التي تحتاج إليها.

فتح Cloud Shell

افتح Cloud Shell في المتصفّح. توفّر Cloud Shell بيئة تم ضبطها مسبقًا تتضمّن جميع الأدوات التي تحتاج إليها لإكمال هذا الدرس التطبيقي حول الترميز. انقر على تفويض عندما يُطلب منك ذلك

بعد ذلك، انقر على عرض -> وحدة طرفية لفتح الوحدة الطرفية.يجب أن تبدو واجهتك مشابهة لما يلي

86307fac5da2f077.png

ستكون هذه هي واجهتنا الرئيسية، مع وضع بيئة التطوير المتكاملة في الأعلى والوحدة الطرفية في الأسفل.

إعداد دليل العمل

استنسِخ المستودع المكمّل الذي يحتوي على الرمز الأوّلي لهذا الدرس التطبيقي حول الترميز:

git clone https://github.com/alphinside/sdd-agy-bigquery-dashboard.git
cloudshell workspace sdd-agy-bigquery-dashboard && cd sdd-agy-bigquery-dashboard

يحتوي هذا المستودع على تطبيق لوحة بيانات كاملة ومتاحة للاستخدام في التجارة الإلكترونية، ويمكنه قراءة البيانات من ملفات CSV ثابتة. خلال هذا الدرس التطبيقي حول الترميز، ستستخدم واجهة سطر الأوامر Antigravity لإضافة عملية دمج BigQuery كميزة جديدة.

800c260f0be6933c.png

الملفات والأدلة الرئيسية:

  • src/main.py: تطبيق FastAPI يتضمّن نقاط نهاية لواجهة برمجة التطبيقات تعرض بيانات لوحة البيانات
  • src/data_service.py: طبقة بيانات تقرأ من ملفات CSV باستخدام pandas
  • src/templates/dashboard.html: نموذج Jinja2 يتضمّن رسومات بيانية من Chart.js
  • data/: ملفات CSV ثابتة (orders.csv وproducts.csv وorder_items.csv) تحتوي على مجموعة فرعية صغيرة من بيانات التجارة الإلكترونية

التطبيق عبارة عن لوحة بيانات بسيطة للقراءة فقط: يحدّد main.py نقاط نهاية واجهة برمجة التطبيقات، ويقرأ data_service.py ملفات CSV ويعرض بيانات منظَّمة، ويعرض dashboard.html هذه البيانات في شكل رسومات بيانية. يحلّ تكامل BigQuery الذي تنشئه محلّ data_service.py بوحدة تطلب بيانات مباشرة بدلاً من قراءة الملفات الثابتة.

ضبط الوحدة الطرفية

إنشاء مشروع على Google Cloud ( اختياري)

لإنشاء مشروع جديد، يمكنك إجراء ذلك من واجهة مستخدم Cloud Console من خلال النقر على "أداة اختيار المشاريع" في أعلى يمين الصفحة ثم النقر على New Project.

e2411959f960166b.png

أو، إذا كنت تريد طريقة أسرع، نفِّذ الأمر التالي في الوحدة الطرفية

PROJECT_ID="sdd-agy-cli-$(openssl rand -hex 5)"
gcloud projects create "$PROJECT_ID"
echo $PROJECT_ID

سيؤدي ذلك إلى إنشاء مشروع على Google Cloud باستخدام معرّف مشروع عشوائي. يُخرج الأمر رقم تعريف المشروع الذي تم إنشاؤه، استخدِمه كـ YOUR_PROJECT_ID في عملية الإعداد لاحقًا.

تفعيل Terminal

الآن، علينا ضبط الجهاز الطرفي باستخدام مشروع Google Cloud الذي اخترناه. نفِّذ الأمر التالي لإدراج المشاريع المتاحة والعثور على رقم تعريف المشروع الذي تريد اختياره

gcloud projects list

ستظهر قائمة على النحو التالي، لذا احفظ أو انسخ رقم تعريف المشروع الذي ستستخدمه.

PROJECT_ID: alvin-exploratory-2
NAME: alvin-exploratory-2
PROJECT_NUMBER: 109790610330

الآن، شغِّل الأمر التالي لإنشاء نص برمجي لتفعيل الوحدة الطرفية ( أو يمكنك إنشاء هذا الملف بنفسك).

cloudshell edit configure_terminal.sh

بعد ذلك، انسخ الرمز التالي إلى النص البرمجي

#!/bin/bash

gcloud config set project YOUR_PROJECT_ID
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value project)
echo $GOOGLE_CLOUD_PROJECT

استبدِل YOUR_PROJECT_ID برقم تعريف مشروعك. يؤدي الأمر السابق أيضًا إلى تصدير رقم تعريف المشروع كمتغيّر بيئة لاستخدامه في جميع مراحل التدريب العملي. بعد ذلك، احفظ الملف ونفِّذه.

bash configure_terminal.sh

تأكَّد من ضبط المشروع بشكل صحيح من خلال التحقّق من النص الأصفر بجانب دليل العمل في طلب Cloud Shell الطرفي. يجب أن يعرض رقم تعريف مشروعك.

8205fa68a1d749d7.png

تفعيل واجهات برمجة التطبيقات المطلوبة

بعد ذلك، سنتفاعل مع BigQuery المرتبط بسيناريو حالة الاستخدام. فعِّل واجهات Google Cloud APIs اللازمة لهذا الدرس التطبيقي حول الترميز:

gcloud services enable bigquery.googleapis.com

ستتيح لنا واجهة برمجة التطبيقات هذه الوصول إلى BigQuery. لنجهّز الآن مجموعة البيانات الأولية لسيناريو الدرس التطبيقي هذا

3- إعداد مجموعة بيانات BigQuery

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

لمحاكاة ذلك، يمكنك استخدام TheLook E-commerce، وهي مجموعة بيانات عامة تحتفظ بها Google وتتضمّن بيانات تجارة إلكترونية اصطناعية واقعية (أكثر من 125,000 طلب و29,000 منتج). يمكنك نسخ الجداول ذات الصلة إلى مثيل BigQuery الخاص بمشروعك لتعمل كـ "بيانات شركتك".

في Cloud Shell، لدينا واجهة سطر الأوامر bq التي يمكننا استخدامها للتفاعل مع BigQuery مباشرةً، وبالتالي يمكننا إعداد بياناتنا مباشرةً.

إنشاء مجموعة بيانات في مشروعك:

bq mk --dataset $GOOGLE_CLOUD_PROJECT:thelook_ecommerce

انسخ الجداول الثلاثة من مجموعة البيانات المتاحة للجميع إلى مجموعة البيانات الجديدة:

bq cp bigquery-public-data:thelook_ecommerce.orders $GOOGLE_CLOUD_PROJECT:thelook_ecommerce.orders
bq cp bigquery-public-data:thelook_ecommerce.order_items $GOOGLE_CLOUD_PROJECT:thelook_ecommerce.order_items
bq cp bigquery-public-data:thelook_ecommerce.products $GOOGLE_CLOUD_PROJECT:thelook_ecommerce.products

تأكَّد من أنّ الجداول مضمّنة في مجموعة البيانات:

bq ls $GOOGLE_CLOUD_PROJECT:thelook_ecommerce

يجب أن تظهر لك ثلاثة جداول مُدرَجة: orders وorder_items وproducts.

   tableId     Type    Labels   Time Partitioning   Clustered Fields  
 ------------- ------- -------- ------------------- ------------------ 
  order_items   TABLE                                                  
  orders        TABLE                                                  
  products      TABLE

نفِّذ طلب بحث اختباريًا سريعًا للتأكّد من إمكانية الوصول إلى البيانات:

bq query --nouse_legacy_sql \
  "SELECT COUNT(*) as total_orders FROM \`$GOOGLE_CLOUD_PROJECT.thelook_ecommerce.orders\`"
+--------------+
| total_orders |
+--------------+
|       125957 |
+--------------+

يجب أن يظهر لك عدد الطلبات الذي يزيد عن 100,000 طلب.

4. تشغيل تطبيق الويب الأوّلي

قبل ترقية التطبيق، لنشغّله في حالته الحالية لمعرفة شكل لوحة البيانات المستندة إلى ملف CSV.

uv هي حزمة Python سريعة وأداة لإدارة المشاريع مكتوبة بلغة Rust ( المستندات). يستخدم هذا الدرس التطبيقي حول الترميز هذه الطريقة لسرعتها وبساطتها. إذا كنت تستخدم Cloud Shell لهذا البرنامج التعليمي، سيتم تثبيته مسبقًا في الجهاز الظاهري. يمكنك الاطّلاع على هذا الفيديو التعليمي إذا أردت تثبيته على جهازك.

ثبِّت تبعيات المشروع التي ستجهّز لك أيضًا البيئة الافتراضية:

uv sync

بعد ذلك، إذا كنت على دراية بلغة Python، سننفّذ كل أمر باستخدام uv الثنائي بدلاً من تنفيذ الأمر python. شغِّل خادم التطوير FastAPI:

uv run uvicorn src.main:app --host 0.0.0.0 --port 8080

افتح لوحة البيانات في المتصفّح باستخدام ميزة المعاينة على الويب في Cloud Shell. انقر على الزر معاينة الويب (رمز العين في شريط أدوات Cloud Shell) واختَر المعاينة على المنفذ 8080.

53758c68d6505e7a.png

تعرض لوحة البيانات أربع لوحات رسومات بيانية:

  • مؤشر الإيرادات: رسم بياني خطي يعرض الإيرادات اليومية خلال النطاق الزمني في بيانات ملف CSV
  • أهم المنتجات حسب الإيرادات: رسم بياني شريطي أفقي يرتّب المنتجات حسب إجمالي المبيعات
  • تقسيم حالة الطلب: رسم بياني دائري مجوّف يعرض توزيع الطلبات المكتملة والمشحونة وقيد المعالجة والملغاة والمرتجعة
  • أداء الفئة: رسم بياني شريطي أفقي يعرض الأرباح حسب فئة المنتج

لاحظ شارة مصدر البيانات: CSV في العنوان. تعرض البطاقات التلخيصية إجماليات محسوبة من 500 طلب و750 سلعة تقريبًا، وهي مجموعة فرعية صغيرة من مجموعة بيانات TheLook الكاملة. يقتصر النطاق الزمني على الفترة من أكتوبر إلى ديسمبر 2023.

هذا هو تطبيقنا الأساسي، وسنعمل الآن على ترقيته لدمجه مع BigQuery بمساعدة Antigravity CLI.

5- إعداد Antigravity CLI

توضّح هذه الخطوة Antigravity CLI، وتستعرض واجهة مستخدم نافذة الأوامر، وتثبّت ثلاث فئات من المكوّنات الإضافية لتحسين عملية تطوير البرامج. على مدار الدرس، ستتعرّف على مهارات الوكيل وMCP وكيفية توسيع إمكانات وكيل الترميز المستند إلى الذكاء الاصطناعي.

ما هو Antigravity CLI؟

‫Antigravity CLI هو إصدار من وكيل الترميز المستند إلى الذكاء الاصطناعي من Google: Antigravity في نافذة الأوامر. وهي واجهة مستخدم خفيفة الوزن تعمل من خلال سطر الأوامر (TUI) ومصمَّمة بلغة Go، وتتصل بنظام توجيه الوكلاء نفسه الذي يشغّل تطبيق Antigravity 2.0 على الكمبيوتر. يمكنه قراءة قاعدة الرموز البرمجية وتنفيذ الأوامر وتعديل الملفات والاتصال بالأدوات الخارجية من خلال MCP، وكل ذلك من نافذة الوحدة الطرفية.

إذا كنت تستخدم Cloud Shell لهذا البرنامج التعليمي، يكون Antigravity CLI مثبّتًا مسبقًا فيه. يمكنك التحقّق من ذلك عن طريق تنفيذ الأمر التالي

agy --help

سيتم عرض تفاصيل خيارات الأمر التالية

Usage of agy:
  --add-dir                       Add a directory to the workspace (repeatable) (default [])
  -c                              Short alias for --continue
  --continue                      Continue the most recent conversation
  --conversation                  Resume a previous conversation by ID
  --dangerously-skip-permissions  Auto-approve all tool permission requests without prompting
  -i                              Short alias for --prompt-interactive
  --log-file                      Override CLI log file path
  --model                         Model for the current CLI session
  --new-project                   Create a new project for this session
  -p                              Short alias for --print
  --print                         Run a single prompt non-interactively and print the response
  --print-timeout                 Timeout for print mode wait (default 5m0s)
  --project                       Project ID for the current CLI session
  --prompt                        Alias for --print
  --prompt-interactive            Run an initial prompt interactively and continue the session
  --sandbox                       Run in a sandbox with terminal restrictions enabled

Available subcommands:
  changelog       Show changelog and release notes
  help            Show help for subcommands
  install         Configure environment paths and shell settings
  models          List available models
  plugin          Manage plugins (install, uninstall, list, enable, disable)
  plugins         Alias for plugin
  update          Update CLI

تشغيل Antigravity CLI

الآن، علينا إعداد Antigravity CLI إذا كنت تستخدمه للمرة الأولى. في علامة تبويب الوحدة الطرفية الجديدة، شغِّل التطبيق

agy

إذا كنت تُشغِّلها للمرة الأولى، سيُطلب منك اختيار طريقة المصادقة.

5606b640b9bed9c3.png

في هذا البرنامج التعليمي، سنستخدم Google OAuth، وسيُطلب منك فتح عنوان URL حيث سيُطلب منك اختيار حساب Google الذي ستستخدمه لتسجيل الدخول.

e42183f1ccc5771a.png

بعد النقر على "مصادقة"، اختَر حساب Google وانقر على Sign In.

572b1d06151b55fa.png

سيظهر لك سلسلة سيتم نسخها، انقر على Copy to Clipboard لنسخها

590d375c71f62a0e.png

ثم الصِقها في طلب Antigravity CLI كما هو موضّح أدناه

a807ff24fbf278b4.png

بعد ذلك، سيُطلب منك اختيار بعض نسق الألوان والموافقة على بنود الاستخدام.

3a7cd90438c94f5c.png

سيُطلب منك أيضًا الوثوق بدليل مساحة العمل الحالية، ما عليك سوى قبول ذلك وسنكون مستعدين للمتابعة. سيكون هذا هو المدخل الرئيسي لتفاعلاتنا مع Antigravity CLI في نافذة الأوامر

9e1e03543e8063c.png

في الوقت الحالي، لنخرج من واجهة سطر الأوامر Antigravity وننتقل إلى القسم التالي.

6. التخصيص - مهارات الوكيل

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

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

تساعد المهارات في سدّ فجوة العمليات. تفرض مهارة منهجية التطوير، مثل superpowers، دورة تحديد الخطة والتنفيذ، أي أنّ الوكيل لن يكتب الرمز البرمجي إلى أن توافق على المواصفات. وتوفّر مهارة المجال، مثل bigquery-basics، مستندات حالية لواجهة برمجة التطبيقات تحتفظ بها Google، ما يضمن استخدام الوكيل لأنماط مكتبة البرامج الصحيحة.

تساهم خوادم MCP في سد فجوة المعرفة في وقت التشغيل. تمنح BigQuery MCP الوكيل اتصالاً مباشرًا بمجموعة البيانات الفعلية، ويمكنه عرض الجداول وفحص أنواع الأعمدة وتنفيذ طلبات بحث نموذجية. يعمل الوكيل من بيانات المخطط الحقيقي، وليس من التخمينات.

لنتعرّف أكثر على هذين النوعين

مهارات الوكيل

"مهارات الوكيل" هي تنسيق مفتوح وخفيف الوزن لتوسيع إمكانات وكلاء الذكاء الاصطناعي من خلال المعرفة المتخصّصة وسير العمل. كل أداة عبارة عن دليل قابل للنقل ومتحكَّم في إصداره ويتضمّن ملف SKILL.md، وهو عقد قابل للقراءة آليًا يحدّد كيفية تعامل الوكيل مع مهمة معيّنة.

يبدو دليل المهارات على النحو التالي:

skills/<skill-name>/
├── SKILL.md          # Required: YAML frontmatter + workflow instructions
├── scripts/          # Optional: helper scripts
├── references/       # Optional: reference implementations
├── assets/           # Optional: templates or assets
└── ...                # Any additional files or directories

في الأساس، المهارة هي مجلد يحتوي على ملف SKILL.md. يتضمّن هذا الملف بيانات وصفية (الاسم والوصف على الأقل) وتعليمات تخبر الوكيل بكيفية تنفيذ مهمة معيّنة. يمكن أن تتضمّن المهارات أيضًا نصوصًا ومواد مرجعية ونماذج ومراجع أخرى.

إليك SKILL.md لمهارة bigquery-basics التي ستستخدمها لاحقًا في هذا الدرس التطبيقي:

---
name: bigquery-basics
metadata:
  category: BigDataAndAnalytics
description: >-
  Manages datasets, tables, and jobs in BigQuery. Use when you need to interact
  with BigQuery, run SQL queries, manage BigQuery resources (datasets, tables,
  views), or perform basic data ingestion and analysis.
---

# BigQuery Basics

[Detailed instructions about BigQuery APIs, SQL patterns,
 client library usage, data ingestion patterns, etc.]

إنّ YAML frontmatter (الاسم + الوصف + البيانات الوصفية) هو ما تحمّله أداة Antigravity CLI عند بدء التشغيل، وهو عبارة عن بيانات وصفية خفيفة الوزن. نص Markdown أدناه --- هو مجموعة التعليمات الكاملة، ويتم تحميله فقط عندما يرصد Antigravity مهمة ذات صلة بـ BigQuery.

الإفصاح التدريجي

تستخدم المهارات نمط الإفصاح التدريجي المكوّن من ثلاث طبقات والذي يمنع تشبّع نافذة السياق:

  1. الطبقة 1 (الاكتشاف): عند بدء التشغيل، يقرأ Antigravity بيانات YAML الوصفية فقط لكل مهارة مثبَّتة. وهي تعرف أنّ المهارة موجودة، ولا تعرف أي شيء آخر.
  2. الطبقة 2 (التفعيل): عندما تتطابق مهمتك مع وصف إحدى المهارات، يقرأ "مساعد Google" SKILL.md الكامل في سياقه النشط. وهو يعرف الآن ما يجب فعله.
  3. المستوى 3 (التنفيذ): حسب الحاجة، يصل Antigravity إلى نصوص المهارة البرمجية أو أمثلتها أو مواردها. أصبح يعرف الآن كيفية إجراء ذلك.

يتم تحميل المعلومات ذات الصلة فقط في الوقت المناسب. لا تستهلك مهارة نشر Cloud Run السياق عند العمل على طلب بحث في BigQuery مثلاً.

ثلاث فئات من المهارات

هناك العديد من الأنواع المختلفة لمهارات الموظفين. في هذا الدرس العملي، سنستخدم ثلاث مهارات، تمثّل كلّ منها فئة مختلفة من المهارات:

Category (الفئة)

المهارات

Purpose

المعرفة بالمجال

google/skills

المعلومات التي يعرفها الوكيل عن تكنولوجيات معيّنة

المنهجية

obra/superpowers

كيفية التطوير: فرض عملية التطوير المستندة إلى المواصفات والتخطيط والاختبار

الكفاءة

JuliusBrussee/caveman

مدى كفاءة استخدام الرموز المميزة

توفر google/skills مهارات وكيل الطرف الأول التي تحتفظ بها Google لمنتجات Google. على سبيل المثال، يزوّد الوكيل بمعلومات دقيقة وحديثة عن واجهات برمجة تطبيقات BigQuery وأنماط التوزيع في Cloud Run والخدمات الأخرى. بدون مهارات خاصة بالمجال، يعتمد الوكيل على بيانات التدريب التي قد تكون قديمة أو غير مكتملة، بينما تحلّ المهارات الخاصة بالمجال محل التخمين باستخدام المستندات الحالية.

obra/superpowers هي إحدى عمليات التنفيذ التي تستند إلى آراء في سير عمل التطوير المستند إلى المواصفات (SDD). بدون إطار عمل SDD، ينتقل العملاء مباشرةً إلى الرمز عند وصف ميزة، وهو ما يصلح لإجراء إصلاحات صغيرة ولكنّه يؤدي إلى نتائج غير متسقة ويصعب الحفاظ عليها في أي شيء أكبر. تفرض SDD دورة منظَّمة: توضيح المتطلبات → كتابة المواصفات → إنشاء خطة → التنفيذ وفقًا للمواصفات، وتنتج كل مرحلة عنصرًا قابلاً للمراجعة. لن يبدأ الوكيل في كتابة الرمز إلا بعد موافقتك على المواصفات. توجد أُطر أخرى لتطوير البرامج المستند إلى الوصف، مثل spec-kit وagent-skills وغيرها، ولكل منها آراء مختلفة بشأن دورة تحديد المواصفات والتخطيط والتنفيذ. يستخدم هذا الدرس التطبيقي حول الترميز القوى الخارقة كمثال ملموس، ولكنّ المبدأ الأساسي (تحديد المتطلبات والتخطيط قبل كتابة الرمز) ينطبق بغض النظر عن إطار العمل الذي تختاره.

JuliusBrussee/caveman يضغط ناتج الوكيل بنسبة تصل إلى ‎75%. يزيل التطبيق كلمات الحشو والعبارات اللطيفة والشروحات المطوّلة مع الحفاظ على كل المحتوى الفني سليمًا. يعني انخفاض عدد الرموز المميزة لكل ردّ زيادة الإنتاجية في كل جلسة وسرعة الردود. يمكنك تفعيلها باستخدام /caveman أو من خلال توجيه الوكيل إلى التحدّث بفعالية. ويتم إيقافه تلقائيًا عند ظهور تحذيرات أمان أو عند اتّخاذ إجراءات لا يمكن التراجع عنها.

تثبيت مهارات الوكيل

تثبيت Google Skills الرسمية

لنبدأ أولاً بتثبيت مهارات Google اللازمة التي سنتفاعل معها. في هذا البرنامج التعليمي، سنتناول حزمة التكنولوجيا الرئيسية التي تتضمّن BigQuery وCloud Run. لنبدأ بتثبيت هذه المهارات. سنستخدم الأمر npx skills لتثبيت هذا

npx skills add google/skills

سيؤدي ذلك إلى فتح واجهة مستخدم تفاعلية للوحدة الطرفية، وتتوفّر العديد من المهارات. استخدِم مفاتيح الأسهم ومفتاح المسافة لاختيار المهارات التي تحتاج إليها في هذا الدرس البرمجي.

8b6b0deb5fe07dfd.png

ابحث عن bigquery-basics وcloud-run-basics وانقر على مساحة لاختيارهما. يجب أن يكون المربّع رماديًا داكنًا كما هو موضّح أدناه

4fa62a7341444be5.png

بعد ذلك، في قسم "اختيار الوكلاء"، ما عليك سوى النقر على Enter لتخطّي عملية الاختيار لأنّ Antigravity CLI مضمّن تلقائيًا

c16e7ed1be8ad91b.png

لنحدّد نطاق التثبيت المشروع، وسيؤدي ذلك إلى تثبيت المهارات ضمن الدليل .agents في دليل العمل.

6c84cee31651dffc.png

أخيرًا، انقر على Enter للإجابة بـ نعم لإنهاء عملية التثبيت. يمكنك أيضًا الإجابة بـ نعم لتثبيت مهارة find-skills إذا كان لديك العديد من المهارات التي تم إعدادها.

4709e3a1ad34a27d.png

تثبيت مهارات الجهات الخارجية كمكوّنات إضافية

بعد ذلك، سنثبّت مهارتَي obra/superpowers وJuliusBrussee/caveman. يمكن تثبيت هذه المهارات كمكوّنات إضافية في Antigravity CLI، وبالتالي يمكننا تثبيتها باستخدام هذه الأوامر.

agy plugin install https://github.com/obra/superpowers
agy plugin install https://github.com/JuliusBrussee/caveman

بعد ذلك، يمكننا التحقّق من عملية التثبيت باستخدام الأمر التالي

agy plugin list

ستظهر هذه النتائج

{
  "imports": [
    {
      "name": "superpowers",
      "source": "gemini-cli",
      "importedAt": "2026-07-06T01:50:36Z",
      "components": [
        "skills",
        "hooks"
      ]
    },
    {
      "name": "caveman",
      "source": "gemini-cli",
      "importedAt": "2026-07-06T01:50:37Z",
      "components": [
        "skills",
        "agents",
        "commands"
      ]
    }
  ]
}

وقد تم الانتهاء من إعداد المهارات. لننتقل إلى السؤال التالي

7. التخصيص - أدوات MCP

e7b9be2e1c98b4db.png

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

تستخدم MCP بنية أساسية بين العميل والخادم:

  • المضيف: هو التطبيق الذي يتضمّن نموذج الذكاء الاصطناعي (Antigravity CLI في هذه الحالة)
  • العميل: هو أحد المكوّنات داخل المضيف الذي يتعامل مع عملية التواصل مع MCP (مضمّن في Antigravity CLI)
  • الخادم: هو برنامج خفيف الوزن يعرض إمكانات الذكاء الاصطناعي ( في حالتنا، سنستخدم خادم Google Cloud Managed BigQuery MCP)

عندما ينفّذ Antigravity CLI سير عمل SDD لاحقًا في هذا الدرس التطبيقي حول الترميز، يحتاج إلى معرفة دقيقة بمخطط مجموعة بيانات BigQuery، أي أسماء الجداول وأنواع الأعمدة والعلاقات. تتيح أداة BigQuery MCP لفحص المخطط النشط مباشرةً باستخدام Antigravity CLI. يؤدي ذلك إلى إنشاء مواصفات ورموز تشير إلى جداول وأعمدة حقيقية، وليس إلى بيانات من صنع الخيال.

إعدادات MCP المُدارة في BigQuery

تستضيف Google خادم MCP مُدارًا في BigQuery على البنية الأساسية لخدمة Google Cloud، بدون الحاجة إلى إعداد محلي ( يمكنك الاطّلاع على منتجات Google Cloud الأخرى المتوافقة في هذه المستندات). اضبط Antigravity CLI للاتصال به من خلال إنشاء ملف إعداد MCP في دليل مشروعك:

mkdir -p .agents
cat > .agents/mcp_config.json << EOF
{
  "mcpServers": {
    "bigquery": {
      "serverUrl": "https://bigquery.googleapis.com/mcp",
      "transport": "http",
      "authProviderType": "google_credentials"
    }
  }
}
EOF

يخبر هذا الإعداد "ميزة البحث الآمن" بما يلي:

  • مكان العثور على خادم BigQuery MCP (serverUrl)
  • لاستخدام بيانات اعتماد Google للمصادقة (authProviderType)

يتم حفظ الإعدادات على مستوى مساحة العمل (.agents/mcp_config.json)

يمكننا التحقّق من الإعدادات من داخل واجهة سطر الأوامر Antigravity، لذا لنشغّلها أولاً.

agy

بعد ذلك، تحقَّق من الإعداد من خلال تنفيذ الأمر /mcp

/mcp

سيظهر شيء مثل هذا

a7ef228bfcbb5280.png

بعد ذلك، اضغط على Esc للخروج من التفاعل مع أمر يبدأ بشرطة مائلة.

اخرج من Antigravity CLI (اضغط على Ctrl+D مرتين) في الوقت الحالي

8. تطوير الميزات باستخدام نهج Spec-Driven Development

بعد تثبيت المهارات/الإضافات وربط BigQuery MCP، يمكنك الآن استخدام سير عمل التطوير المستند إلى المواصفات لتحديد ميزة تكامل BigQuery رسميًا. هذه هي الخطوة التي تصبح فيها عملية "التحديد قبل البرمجة" ملموسة.

تأكَّد من إدخال Antigravity CLI، وسنسمح في هذا العرض التوضيحي بتنفيذ جميع الأدوات باستخدام هذا الخيار.

agy --dangerously-skip-permissions

تفعيل وضع "رجل الكهف"

قبل بدء دورة SDD، فعِّل وضع "رجل الكهف" للحفاظ على كفاءة استخدام الرموز المميزة طوال سير العمل المتعدّد الخطوات:

/caveman:caveman

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

8e6965ae2207147e.png

بدء مواصفات SDD

اطلب من Antigravity CLI تنفيذ طلب الميزة:

I want to add a BigQuery integration feature to this e-commerce dashboard app. Currently it reads
from CSV files in the data/ directory. I want to replace the CSV reads with live queries
against the thelook_ecommerce dataset in my BigQuery project using the
google-cloud-bigquery Python client library.

The dashboard should show the same panels (revenue trend, top products, order status,
category performance) but with the full dataset instead of the 500-row CSV subset.

Follow spec-driven-development for development workflow, ensure spec and plan docs created following the superpowers standard in current working directory; also use Bigquery MCP to figure out the data schema.

يتم تفعيل مهارة "القوى الخارقة" تلقائيًا عندما ترصد طلبًا على مستوى الميزة. تنتقل AGY إلى دورة SDD بدلاً من الانتقال مباشرةً إلى الرمز.

ستبدأ Antigravity CLI العملية لفهم المشروع الحالي وجمع السياق المطلوب. سيظهر لك تنفيذ الأمر مثل ListDir وRead كما هو موضّح أدناه

3102949f929df967.png

سيستخدم أيضًا عملية ربط BigQuery MCP التي أعددناها سابقًا للعثور على مخطط مجموعة البيانات.

7fbc061a07058d24.png

سيضمن ذلك توفّر السياق الصحيح لواجهة سطر الأوامر Antigravity قبل بدء عملية التطوير

توضيح المتطلبات

قد يطرح Antigravity CLI أسئلة مركّزة حول نطاق الميزة. تشمل الأسئلة النموذجية ما يلي:

  • كيف يجب ضبط رقم تعريف المشروع؟
  • كيف يجب تجميع الرسم البياني "مؤشر الأرباح" وعرضه؟
  • كيف يجب التعامل مع عملية الدمج؟ لغة SQL المباشرة مقابل Pandas المحلية

يمكنك الإجابة عن هذه الأسئلة باتّباع اقتراح الوكيل

91fb44a131f927e9.png4d5e5ffbc81644a5.png

مراجعة المواصفات

بعد التوضيح، سيتم إنشاء مستند مواصفات رسمي. إذا اتّبعت التعليمات بشكل صحيح، سيتّبع اصطلاح مهارة obra/superpowers الذي سيتم بموجبه إنشاء مستند مواصفات ضمن الدليل docs/superpowers/specs كما هو موضّح أدناه

86e0a2f86a956497.png

سيبدو مستند المواصفات على النحو التالي

# BigQuery Integration Design Specification

## Overview

This document specifies ...

## Architecture

The application currently reads ...

## Data Schema & Sources

All tables reside in the BigQuery ...

...

بعد مراجعة ذلك، علينا تأكيد المواصفات حتى ننتقل إلى مرحلة التخطيط.

74cde3e9b4c95b88.png

proceed with the specs

مرحلة التخطيط وتنفيذ الوكلاء الفرعيين

بعد الموافقة على المواصفات، سيقسّم Antigravity CLI المواصفات إلى خطة تنفيذ سيتم كتابتها في الدليل docs/superpowers/plans

727b92a4eca89106.png

ستدرج مستندات الخطة عدة عناصر مثل المثال أدناه:

  • الملفات المطلوب تعديلها
  • الملفات المطلوب إنشاؤها أو تعديلها
  • التغييرات في الاعتماديات
  • تفاصيل المهمة

سيقترح عليك أيضًا استخدام subagent driven development الذي يتيحه Antigravity CLI، فبدلاً من أن ينفّذ وكيل واحد كل المهام بالتسلسل، يمكن أن يفوّض Antiravity CLI المهام إلى وكلاء فرعيين متخصصين. أثناء التنفيذ، قد تظهر لك وكلاء فرعيون مثل:

  • منفّذ المهام: يكتب الرمز البرمجي لمهمة محدّدة من الخطة
  • مراجِع المهام: يراجع الرمز البرمجي الذي تم تنفيذه مقارنةً بالمواصفات
  • مراجِع الرمز النهائي: يُجري مراجعة شاملة لجميع التغييرات قبل اكتمالها

751df4f6d964e42b.png

إذا ظهرت لك رسالة مثل هذه، يمكنك الردّ بما يلي

Use subagent driven development

سنرى لاحقًا كيف يتم تفويض الوكلاء الفرعيين في تنفيذ المهام واحدة تلو الأخرى.

fb4a986dbceaec96.pngb2e74e769f9ff4bf.png620d12e9056f621b.png

بعد فترة، سيتم الانتهاء من عملية التطوير بالكامل ( ربما بعد إنشاء Final Code Reviewer وكيل)، ويمكننا بعد ذلك فحص النتيجة.

تعديل على عملية المراجعة اليدوية للتطبيقات

بعد الانتهاء من جميع المهام، يمكننا التحقّق من التطبيق المعدَّل. اخرج من واجهة سطر الأوامر Antigravity CLI بالضغط على Ctrl+D مرّتين، ثم شغِّل الأمر التالي

bash configure_terminal.sh && uv run uvicorn src.main:app --host 0.0.0.0 --port 8080

من المفترض أن يظهر الآن Total Orders > 120 ألف طلب وتم دمجه مع BigQuery في حال نجاح عملية التطوير

20398466e2d8a70f.png

تهانينا! أنت الآن تدمج BigQuery بنجاح مع تطبيق الويب الخاص بك بمساعدة كاملة من Antigravity CLI

9. (اختياري) النشر على Cloud Run باستخدام Antigravity CLI

تعمل لوحة البيانات محليًا من خلال ميزة "معاينة الويب" في Cloud Shell. تؤدي هذه الخطوة الاختيارية إلى نشر التطبيق على Cloud Run كخدمة ويب يمكن الوصول إليها من الجميع، ما يوضّح كيف تمتد مهارات نطاق Antigravity CLI من التطوير إلى العمليات.

تمنح مهارة cloud-run-basics (من إضافة google/skills التي ثبّتها سابقًا) أداة Antigravity CLI معلومات حول أنماط النشر في Cloud Run ومتطلبات Dockerfile وربط المنافذ وعلامات gcloud run deploy. تتيح عملية النشر المستندة إلى المصدر (gcloud run deploy --source .) إنشاء التطبيق ونشره باستخدام أمر واحد، ويتولّى Cloud Build عملية إنشاء الحاويات تلقائيًا.

تفعيل واجهات برمجة التطبيقات في Cloud Run

فعِّل واجهات برمجة التطبيقات المطلوبة للنشر:

gcloud services enable \
  run.googleapis.com \
  cloudbuild.googleapis.com \
  cloudresourcemanager.googleapis.com

بعد ذلك، أدخِل Antigravity CLI

agy --dangerously-skip-permissions

طلب النشر من Antigravity CLI

لنطلب منه نشر تطبيقاتنا

Deploy this application to Cloud Run, name the service "bigquery-dashboard" and make it publicly accessible

ستقرأ هذه المهارة cloud-run-basics لفهم متطلبات نشر تطبيق الويب الحالي للمشروع

a5ef955de2d71c91.png

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

b58fb8f5f2023264.png

يمكنك الآن نشر التطبيق المباشر بالكامل والوصول إليه بمساعدة Antigravity CLI

10. تقديم تقرير ملخص

تمت ترقية لوحة بيانات للتجارة الإلكترونية من ملفات CSV ثابتة إلى بيانات BigQuery مباشرةً، بدون كتابة الرمز البرمجي للتطبيق يدويًا. تعاملت Antigravity CLI مع عملية التنفيذ من خلال سير عمل منظَّم للتطوير المستند إلى المواصفات، والذي تم توجيهه من خلال مهارات قابلة لإعادة الاستخدام واتصال مباشر ببياناتك عبر MCP.

ما تعلّمته

  • كيفية استخدام Antigravity CLI في Cloud Shell لتطوير التطبيقات بمساعدة الذكاء الاصطناعي
  • ما هي مهارات الوكيل وكيف تحافظ ميزة "الإفصاح التدريجي" على فعالية قدرة استيعاب؟
  • ثلاث فئات من المهارات: المنهجية (القوى الخارقة)، والكفاءة (رجل الكهف)، ومعرفة المجال (Google/المهارات)
  • ما هو MCP وكيفية إعداد BigQuery MCP للوصول إلى البيانات المباشرة
  • كيفية تنفيذ دورة تطوير مستندة إلى المواصفات (تحديد المواصفات ← التخطيط ← التنفيذ) بدلاً من البرمجة الحدسية
  • كيف يمكن لأداة Antigravity CLI إنشاء وكيل فرعي لجعل عملية التطوير أكثر تركيزًا وفعالية؟

إخلاء مساحة

لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد التي تم إنشاؤها في هذا الدرس التطبيقي حول الترميز، يمكنك حذف الموارد الفردية أو حذف المشروع بأكمله.

أسهل طريقة لتنظيف مساحة التخزين هي حذف المشروع. يؤدي هذا الإجراء إلى إزالة جميع الموارد المرتبطة بالمشروع.

gcloud projects delete $GOOGLE_CLOUD_PROJECT

الخيار 2: حذف موارد فردية

إذا كنت تريد الاحتفاظ بالمشروع ولكن إزالة الموارد التي تم إنشاؤها في هذا الدرس العملي فقط، اتّبِع الخطوات التالية:

bq rm -r -f $GOOGLE_CLOUD_PROJECT:thelook_ecommerce
gcloud run services delete bigquery-dashboard --region us-central1 --quiet