1. מבוא
יצירת MVP באמצעות קוד היא מהירה, אבל הוספת תכונות על ידי שליחת עוד הנחיות היא הדרך שבה פרויקטים נכשלים. אתם צריכים דרך להוסיף מבנה והקשר מהעולם האמיתי לפיתוח בעזרת AI. כאן נכנס לתמונה Antigravity CLI – סוכן AI לקידוד שפועל בטרמינל. הוא יכול להבין את בסיס הקוד, להריץ פקודות ולערוך קבצים. העוצמה האמיתית שלו נובעת ממה שמחברים אליו:
- מיומנויות מספקות לסוכן מתודולוגיה וידע בתחום – מיומנות מתודולוגית אוכפת תהליכי פיתוח מובנים, ומיומנות בתחום מספקת ידע מדויק ב-API כדי שהסוכן לא יהזה.
- שרתי MCP מספקים לסוכן חיבורים בזמן אמת למערכות חיצוניות, ומאפשרים לו לבדוק סכימות אמיתיות, להריץ שאילתות ולאמת את העבודה שלו מול נתונים בפועל, במקום להסתמך על ידע אימון ישן.
הכישורים קובעים איך הסוכן חושב, וה-MCP קובע מה הסוכן יכול לראות ולקיים איתו אינטראקציה. יחד, הם הופכים סוכן קידוד לשימוש כללי לסוכן שפועל לפי תהליך עבודה מובנה שמבוסס על נתונים מהעולם האמיתי. ב-Codelab הזה נסביר איך לשלב בין שתי הטכנולוגיות האלה, החל מהתקנת פלאגינים ועד להשקת תכונה.
מה תפַתחו
הדפוסים שמוצגים ב-Codelab הזה – התקנת מיומנויות לשימוש במתודולוגיה ובידע בתחום, חיבור שרתי MCP לגישה לנתונים בזמן אמת והרצת מחזור פיתוח מבוסס-מפרט – רלוונטיים לכל תכונה שיוצרים באמצעות Antigravity CLI, ללא קשר לשפה, למסגרת או למוצרי Google Cloud. כדי להמחיש את הדפוסים האלה, נשתמש בדוגמה ספציפית: הוספת שילוב של BigQuery ללוח בקרה של ניתוח נתונים של מסחר אלקטרוני.
אפליקציית המתחילים היא אפליקציית אינטרנט של FastAPI שקוראת נתוני מכירות מקובצי CSV סטטיים ומציגה תרשימים (מגמות הכנסות, מוצרים מובילים, פירוט של סטטוס ההזמנה, ביצועים לפי קטגוריה). בסיום, האפליקציה שולחת שאילתות לנתונים בזמן אמת מ-BigQuery – מחסן הנתונים (data warehouse) של Google Cloud במודל ללא שרת (serverless), שמאפשר להריץ שאילתות SQL על מערכי נתונים גדולים בלי לנהל תשתית. במילים אחרות, אתם מתחברים לthelook_ecommerce מערך הנתונים, וכך מקבלים גישה לקטלוג המלא של הזמנות, מוצרים ולקוחות, שלא ניתן לקבל באמצעות קובץ CSV עם 500 שורות. אתם יוצרים את התכונה הזו לגמרי דרך Antigravity CLI, בעזרת מיומנויות ו-MCP.

הגדרת הסוכן שבה נשתמש עם Antigravity CLI תיראה כך

מה תלמדו
- איך משתמשים ב-Antigravity CLI ב-Cloud Shell – הפעלה, ניווט בממשק המשתמש מבוסס-הטקסט והרצת פקודות עם לוכסן
- מהן מיומנויות של סוכנים ואיך דפוס החשיפה ההדרגתית (מטא-נתונים → הוראות → משאבים) שומר על הקשר בצורה יעילה
- שלוש קטגוריות של כישורים: מתודולוגיה (כוחות על), יעילות (איש מערות) וידע בתחום (google/skills)
- מהו MCP ואיך מגדירים שרת MCP מרוחק (BigQuery MCP) ל-Antigravity CLI
- איך מריצים מחזור פיתוח מבוסס-מפרט: הגדרה ← תכנון ← הטמעה
- (אופציונלי) איך פועלים סוכני משנה ב-Antigravity CLI ואיך מנהלים אותם
- איך משלבים את ספריית הלקוח של Python
google-cloud-bigqueryבאפליקציית FastAPI - (אופציונלי) איך פורסים את האפליקציה ב-Cloud Run באמצעות Antigravity CLI עם מיומנות דומיין
דרישות מוקדמות
- חשבון Google Cloud
- היכרות בסיסית עם Python, ממשקי API ל-REST ופקודות בטרמינל
2. הגדרת הסביבה
בשלב הזה מתבצע שיבוט של מאגר התחלה, מוגדר פרויקט Google Cloud ומופעלים ממשקי ה-API שנדרשים.
פתיחת Cloud Shell
פותחים את Cloud Shell בדפדפן. Cloud Shell מספקת סביבה שהוגדרה מראש עם כל הכלים שדרושים ל-Codelab הזה. כשמוצגת בקשה, לוחצים על Authorize
אחר כך לוחצים על View (תצוגה) -> Terminal (טרמינל) כדי לפתוח את הטרמינל.הממשק אמור להיראות בערך כך:

זה יהיה הממשק הראשי שלנו, סביבת הפיתוח המשולבת (IDE) בחלק העליון והטרמינל בחלק התחתון
הגדרת ספריית העבודה
משכפלים את מאגר הקוד הנלווה שמכיל את קוד לתחילת הדרך של ה-Codelab הזה:
git clone https://github.com/alphinside/sdd-agy-bigquery-dashboard.git
cloudshell workspace sdd-agy-bigquery-dashboard && cd sdd-agy-bigquery-dashboard
המאגר הזה מכיל אפליקציית לוח בקרה מלאה ופעילה למסחר אלקטרוני, שקוראת נתונים מקובצי CSV סטטיים. במהלך שיעור ה-Codelab הזה, תשתמשו ב-Antigravity CLI כדי להוסיף שילוב של BigQuery כתכונה חדשה.

הקבצים והספריות של המפתחות:
-
src/main.py— אפליקציית FastAPI עם נקודות קצה של API שמציגות נתונים של לוח בקרה -
src/data_service.py– שכבת נתונים שקוראת מקובצי CSV באמצעות pandas -
src/templates/dashboard.html— תבנית Jinja2 עם המחשות של Chart.js -
data/— קובצי CSV סטטיים (orders.csv, products.csv, order_items.csv) שמכילים קבוצת משנה קטנה של נתונים מסחר אלקטרוני
האפליקציה היא לוח בקרה פשוט לקריאה בלבד: main.py מגדירה נקודות קצה של API, data_service.py קוראת קובצי CSV ומחזירה נתונים מובנים, וdashboard.html מעבדת את הנתונים האלה לתרשימים. השילוב עם BigQuery שאתם יוצרים מחליף את data_service.py במודול שמריץ שאילתות על נתונים בזמן אמת במקום לקרוא קבצים סטטיים.
הגדרת טרמינל
יצירת פרויקט ב-Google Cloud ( אופציונלי)
כדי ליצור פרויקט חדש, אפשר לעשות זאת מממשק המשתמש של Cloud Console. לשם כך, לוחצים על בורר הפרויקטים בפינה הימנית העליונה ואז על New Project

לחלופין, אם רוצים להשתמש בשיטה מהירה יותר, מריצים את הפקודה הבאה בטרמינל
PROJECT_ID="sdd-agy-cli-$(openssl rand -hex 5)"
gcloud projects create "$PROJECT_ID"
echo $PROJECT_ID
ייווצר פרויקט בענן ב-Google Cloud עם מזהה פרויקט אקראי. הפקודה מחזירה את מזהה הפרויקט שנוצר. תצטרכו להשתמש בו בתור YOUR_PROJECT_ID בהמשך התצורה.
הפעלת הטרמינל
עכשיו צריך להגדיר את הטרמינל עם הפרויקט שנבחר ב-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 במזהה הפרויקט. הפקודה הקודמת גם מייצאת את מזהה הפרויקט כמשתנה סביבה לשימוש בכל שלבי ה-codelab. אחרי כן שומרים את הקובץ ומריצים אותו.
bash configure_terminal.sh
כדי לוודא שהפרויקט מוגדר בצורה נכונה, בודקים את הטקסט הצהוב שליד ספריית העבודה בהנחיה של טרמינל Cloud Shell. מזהה הפרויקט צריך להופיע בו.

הפעלת ממשקי API נדרשים
בשלב הבא נשתמש ב-BigQuery, שקשור לתרחיש לדוגמה שלנו. מפעילים את ממשקי Google Cloud API שנדרשים לשיעור ה-Codelab הזה:
gcloud services enable bigquery.googleapis.com
ה-API הזה יאפשר לנו לגשת ל-BigQuery. עכשיו נכין את מערך הנתונים הראשוני שלנו לתרחיש הזה ב-Codelab
3. הגדרת מערך הנתונים ב-BigQuery
התרחיש הוא כזה: לחברה שלכם כבר יש נתונים של מסחר אלקטרוני שמאוחסנים ב-BigQuery – הזמנות, מוצרים ופריטים בהזמנה. אתם מפתחים אפליקציה להצגת לוח הבקרה של נתוני ההזמנות, אבל כרגע היא קוראת רק קובץ CSV קטן של הנתונים האלה, כדי שתוכלו להתמקד בחלק הקדמי בהתחלה. עכשיו אתם רוצים לשדרג אותו כדי לבצע שאילתה ישירות ב-BigQuery לגבי מערך הנתונים המלא.
כדי לדמות את התהליך הזה, אפשר להשתמש ב-TheLook E-commerce – מערך נתונים ציבורי שמתוחזק על ידי Google ומכיל נתונים סינתטיים ריאליסטיים של מסחר אלקטרוני (מעל 125,000 הזמנות, מעל 29,000 מוצרים). אתם מעתיקים את הטבלאות הרלוונטיות למופע BigQuery של הפרויקט שלכם, כדי שהן ישמשו כ"נתונים של החברה שלכם".
ב-Cloud Shell, יש לנו כבר bq CLI שאפשר להשתמש בו כדי ליצור אינטראקציה ישירות עם 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 ( מסמכים). בשיעור Codelab הזה נשתמש בו כדי להסביר על הנושא במהירות ובפשטות. אם משתמשים ב-Cloud Shell לצורך המדריך הזה, הוא כבר מותקן מראש במופע. במדריך הזה מוסבר איך להתקין את התוסף במחשב
מתקינים את יחסי התלות של הפרויקט, ובכך גם מכינים את הסביבה הווירטואלית:
uv sync
אחרי זה, אם אתם מכירים את Python, במקום להריץ פקודה של python, נריץ כל פקודה עם קובץ בינארי של uv. מפעילים את שרת הפיתוח של FastAPI:
uv run uvicorn src.main:app --host 0.0.0.0 --port 8080
פותחים את מרכז הבקרה בדפדפן באמצעות התכונה Web Preview של Cloud Shell. לוחצים על הלחצן Web Preview (תצוגה מקדימה באינטרנט) (סמל העין בסרגל הכלים של Cloud Shell) ובוחרים באפשרות Preview on port 8080 (תצוגה מקדימה ביציאה 8080).

בלוח הבקרה מוצגות ארבע חלוניות של תרשימים:
- מגמת ההכנסות – תרשים קו שבו מוצגות ההכנסות היומיות בטווח התאריכים שמופיע בנתוני ה-CSV
- מוצרים מובילים לפי הכנסות – תרשים עמודות אופקי שמדרג את המוצרים לפי סך המכירות
- פירוט סטטוס ההזמנה – תרשים טבעת שמציג את ההתפלגות של הזמנות שהושלמו, נשלחו, נמצאות בתהליך, בוטלו והוחזרו
- ביצועים לפי קטגוריה – תרשים עמודות אופקי שמציג את ההכנסות לפי קטגוריית מוצרים
שימו לב לתג מקור נתונים: CSV בכותרת. בכרטיסי הסיכום מוצגים סכומים כוללים שמחושבים מ-500 הזמנות ומכ-750 פריטים בהזמנה – קבוצת משנה קטנה של מערך הנתונים המלא של TheLook. טווח התאריכים מוגבל לאוקטובר עד דצמבר 2023.
זו האפליקציה הבסיסית שלנו, ועכשיו נשדרג אותה כך שתהיה משולבת עם BigQuery בעזרת Antigravity CLI.
5. הגדרת Antigravity CLI
בשלב הזה נסביר על Antigravity CLI, נסקור את ממשק המשתמש של הטרמינל ונתקין שלוש קטגוריות של תוספים כדי לשפר את תהליך העבודה של הפיתוח. במהלך הקורס תלמדו מהם כישורי סוכן ו-MCP, ואיך הם מרחיבים את היכולות של סוכן AI לכתיבת קוד.
מה זה Antigravity CLI?
Antigravity CLI היא גרסה של סוכן ה-AI של 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
אם מריצים אותו בפעם הראשונה, תתבקשו לבחור את שיטת האימות.

במדריך הזה נשתמש ב-Google OAuth. תתבקשו לפתוח כתובת URL שבה תתבקשו לבחור את חשבון Google שבו תשתמשו כדי להיכנס.

אחרי שלוחצים על 'אימות', בוחרים את חשבון Google ולוחצים על Sign In

תוצג לכם מחרוזת להעתקה. לוחצים על Copy to Clipboard כדי להעתיק אותה.

ואז מדביקים אותו בהנחיה של Antigravity CLI כמו שמוצג למטה

לאחר מכן, תתבקשו לבחור ערכת צבעים ולהסכים לתנאי השימוש.

תתבקשו גם לתת אמון בספרייה הנוכחית של סביבת העבודה. פשוט מאשרים את זה ואפשר להמשיך. זו תהיה הכניסה הראשית לאינטראקציה שלנו עם Antigravity CLI בטרמינל

בינתיים, נצא מ-Antigravity CLI ונמשיך לקטע הבא.
6. התאמה אישית – מיומנויות של סוכנים
כברירת מחדל, Antigravity CLI יכול לקרוא את בסיס הקוד, להריץ פקודות של מעטפת ולערוך קבצים. יש לו תהליך עבודה מוגבל מובנה של פיתוח מבוסס-מפרט, והידע שלו לגבי ממשקי API ספציפיים מוגבל למה שנכלל בנתוני האימון שלו. למשימה כמו שילוב של BigQuery באפליקציה קיימת, יש שני פערים:
- פער בתהליך – בלי מבנה, יכול להיות ש-Antigravity CLI יקפוץ ישר לכתיבת קוד. זה בסדר אם מדובר בתיקונים קטנים. אם התכונה משפיעה על כמה קבצים ונקודות קצה, יכול להיות שתקבלו הטמעות לא עקביות, מקרים קיצוניים חסרים ולא תקבלו תיעוד של ההחלטות שהתקבלו או של הסיבות להן.
- פער בידע – נתוני האימון של המודל עשויים לכלול דפוסים לא עדכניים של ספריות לקוח ב-BigQuery, קריאות API שהוצאו משימוש או סכימות טבלה שגויות. אין לו דרך לבדוק איך מערך הנתונים בפועל נראה כרגע.
מיומנויות עוזרות לסגור את הפער בתהליך. מיומנות של מתודולוגיית פיתוח כמו superpowers מחייבת מחזור של תכנון, ציון ויישום – הסוכן לא יכתוב קוד עד שתאשרו מפרט. מיומנות של תחום כמו bigquery-basics מספקת תיעוד עדכני של API שמתוחזק על ידי Google, כך שהסוכן משתמש בדפוסי ספריית לקוח נכונים.
שרתי MCP מצמצמים את פערי הידע בזמן הריצה. BigQuery MCP מעניק לסוכן חיבור פעיל למערך הנתונים בפועל – הוא יכול לפרט טבלאות, לבדוק סוגי עמודות ולהריץ שאילתות לדוגמה. הסוכן פועל על סמך נתוני סכימה אמיתיים, ולא על סמך ניחושים.
בואו נתעמק בשני המושגים האלה
מיומנויות של סוכנים
כישורי סוכן הם פורמט קל משקל ופתוח להרחבת היכולות של סוכני AI באמצעות ידע ותהליכי עבודה מיוחדים. כל מיומנות היא ספרייה ניידת עם בקרת גרסאות, שכוללת קובץ 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 (גילוי): בזמן ההפעלה, Antigravity קורא רק את מטא-נתוני ה-YAML של כל מיומנות מותקנת. הוא יודע שהמיומנות קיימת – וזה הכול.
- שכבה 2 (הפעלה): כשהמשימה שלכם תואמת לתיאור של מיומנות, AGY קורא את
SKILL.mdהמלא לתוך ההקשר הפעיל שלו. עכשיו הוא יודע מה לעשות. - שכבה 3 (ביצוע): לפי הצורך, Antigravity ניגש לסקריפטים, לדוגמאות או למשאבים של המיומנות. עכשיו הוא יודע איך לעשות את זה.
רק ידע רלוונטי נטען בזמן הנכון. לדוגמה, מיומנות לפריסה ב-Cloud Run לא צורכת הקשר כשעובדים על שאילתה ב-BigQuery.
שלוש קטגוריות של מיומנויות
יש הרבה סוגים שונים של מיומנויות של נציגים. בשיעור ה-Codelab הזה נשתמש בשלושה כישורים, שכל אחד מהם מייצג קטגוריה שונה של כישורים:
קטגוריה | מיומנויות | מטרה |
ידע בתחום | google/skills | מה הנציג יודע על טכנולוגיות ספציפיות |
מתודולוגיה | obra/superpowers | איך לפתח – אוכף פיתוח מבוסס-מפרט, תכנון ובדיקה |
יעילות | JuliusBrussee/caveman | כמה יעיל השימוש באסימונים |
google/skills מספק מיומנויות של סוכנים מהדומיין הנוכחי, שמתוחזקות על ידי Google למוצרי Google. לדוגמה, הוא מספק לסוכן ידע מדויק ועדכני על ממשקי BigQuery API, על דפוסי פריסה של Cloud Run ועל שירותים אחרים. בלי מיומנויות דומיין, הסוכן מסתמך על נתוני אימון שאולי לא עדכניים או לא מלאים – מיומנויות דומיין מחליפות את הניחושים בתיעוד עדכני.
obra/superpowers הוא יישום דעתני של תהליך עבודה של פיתוח מבוסס-מפרט (SDD). בלי מסגרת SDD, הסוכנים קופצים ישר לקוד כשאתם מתארים תכונה – זה עובד בתיקונים קטנים, אבל התוצאות לא עקביות וקשה לתחזק אותן כשמדובר במשהו גדול יותר. SDD מחייב מחזור מובנה: הבהרת הדרישות → כתיבת מפרט → יצירת תוכנית → הטמעה בהתאם למפרט. בכל שלב נוצר ארטיפקט שניתן לבדיקה. הסוכן לא יתחיל לכתוב קוד עד שתאשרו את המפרט. יש מסגרות SDD אחרות – spec-kit, agent-skills ועוד – שלכל אחת מהן יש דעות שונות לגבי מחזור התכנון-יישום-הגדרה. בשיעור Codelab הזה נשתמש ב'כוחות על' כדוגמה קונקרטית. העיקרון הבסיסי (הגדרה ותכנון לפני כתיבת הקוד) תקף לכל מסגרת שתבחרו.
JuliusBrussee/caveman דוחס את הפלט של הסוכן עד 75%. הוא מסיר מילים מיותרות, נימוסים והסברים ארוכים, תוך שמירה על כל המידע הטכני. פחות טוקנים לכל תשובה פירושו אינטראקציות פרודוקטיביות יותר לכל סשן ותשובות מהירות יותר. מפעילים אותו באמצעות /caveman או באמצעות הנחיה לסוכן לדבר בצורה יעילה. היא מושבתת אוטומטית עבור אזהרות אבטחה ופעולות בלתי הפיכות.
התקנה של מיומנויות לסוכן
התקנה רשמית של Google Skills
קודם כול, נתקין את היכולות הנדרשות של Google שאיתן נקיים אינטראקציה. במדריך הזה נתמקד בעיקר בסטאק התוכנות BigQuery ו-Cloud Run. אז נתקין את המיומנויות האלה. נשתמש בפקודה npx skills כדי להתקין את זה
npx skills add google/skills
ייפתח ממשק משתמש אינטראקטיבי של Terminal, עם הרבה מיומנויות. משתמשים במקשי החיצים ובמקש הרווח כדי לבחור את הכישורים שדרושים לכם ל-codelab הזה.

מחפשים את bigquery-basics ואת cloud-run-basics ולוחצים על מקש הרווח כדי לבחור אותם. התיבה צריכה להיות אפורה כהה כמו שמוצג בהמשך

לאחר מכן, בסוכנים שנבחרו, פשוט לוחצים על Enter כדי לדלג על הבחירה, כי Antigravity CLI כבר כלול כברירת מחדל.

נבחר את היקף ההתקנה Project, כך שהמיומנויות יותקנו בספרייה .agents בספריית העבודה שלנו

לסיום, לוחצים על Enter כדי לענות עם Yes (כן) ולהשלים את ההתקנה. אם הגדרתם הרבה מיומנויות, אתם יכולים גם לענות כן כדי להתקין את מיומנות find-skills.

התקנת מיומנויות של צד שלישי כפלאגינים
בשלב הבא נתקין את 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

MCP (Model Context Protocol) הוא פרוטוקול פתוח שקובע תקן לאופן שבו סוכני AI מגלים כלים חיצוניים ואיך הם מתקשרים איתם. הוא מגדיר מודל של לקוח-שרת: הסוכן מארח לקוח MCP, והכלים נחשפים על ידי שרתי MCP. כל לקוח שתואם ל-MCP יכול להשתמש בכל שרת שתואם ל-MCP – לא צריך קוד שילוב מותאם אישית לכל כלי.
פרוטוקול MCP משתמש בארכיטקטורת לקוח-שרת:
- Host – האפליקציה שבה מודל ה-AI נמצא (במקרה הזה, Antigravity CLI)
- לקוח – רכיב בתוך המארח שמטפל בתקשורת של MCP (מוטמע ב-Antigravity CLI)
- שרת – תוכנה קלה שחושפת יכולות ל-AI ( במקרה שלנו, נשתמש בשרת Google Cloud Managed BigQuery MCP)
כשמריצים את תהליך העבודה של SDD באמצעות Antigravity CLI בהמשך ה-codelab הזה, צריך לוודא שיש לו מידע מדויק על סכימת מערך הנתונים ב-BigQuery – שמות הטבלאות, סוגי העמודות והקשרים ביניהן. BigQuery MCP מאפשר ל-Antigravity CLI לבדוק את הסכימה הפעילה ישירות. כך נוצרות מפרטים וקוד שמפנים לטבלאות ולעמודות אמיתיות, ולא לכאלה שנוצרו על ידי AI גנרטיבי.
הגדרת MCP מנוהל ב-BigQuery
Google מארחת שרת BigQuery MCP מנוהל בתשתית 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
ההגדרה הזו מציינת ל-AGY:
- איפה אפשר למצוא את שרת ה-MCP של BigQuery (
serverUrl) - כדי להשתמש בפרטי הכניסה של Google לאימות (
authProviderType)
ההגדרה מתבצעת ברמת סביבת העבודה (.agents/mcp_config.json)
אנחנו יכולים לאמת את ההגדרה מתוך Antigravity CLI. בואו נפעיל פתרונות חכמים קודם
agy
אחר כך, מריצים את הפקודה דרך שורת הפקודות /mcp כדי לוודא שההגדרה תקינה.
/mcp
הוא ייראה בערך כך

לאחר מכן, לוחצים על Esc כדי לצאת מהאינטראקציה עם פקודה דרך שורת הפקודות.
יוצאים מ-Antigravity CLI (לוחצים פעמיים על Ctrl+D)
8. פיתוח תכונות באמצעות פיתוח מונחה-מפרט
אחרי שמתקינים את התוספים או את הכישורים ומחברים את BigQuery MCP, אפשר להשתמש בתהליך העבודה של פיתוח מבוסס-מפרט כדי לציין באופן רשמי את תכונת השילוב של BigQuery. בשלב הזה, ההנחיה specify before you code (צריך לציין לפני שכותבים קוד) הופכת למעשית.
מוודאים שמזינים את Antigravity CLI, ובשביל ההדגמה הזו נאפשר את כל ההרצות של הכלי באמצעות הדגל הזה
agy --dangerously-skip-permissions
הפעלת מצב מערה
לפני שמתחילים את מחזור ה-SDD, מפעילים את מצב האדם הקדמון כדי לשמור על יעילות השימוש באסימונים לאורך תהליך העבודה הרב-שלבי:
/caveman:caveman
התשובות של Antigravity CLI הופכות לתמציתיות – המילים המיותרות והנימוסים נעלמים, אבל כל התוכן הטכני נשאר. פחות טוקנים לכל חילופי מידע פירושו שיחות פרודוקטיביות יותר במסגרת אותה מכסת שימוש.

התחלת המפרט של 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 במקום לקפוץ ישר לקוד.
ה-CLI של Antigravity יתחיל את התהליך כדי להבין את הפרויקט הנוכחי ולאסוף את ההקשר הנדרש. תוכלו לראות את הפקודה שמופעלת, כמו ListDir ו-Read, כמו שמוצג בהמשך

בנוסף, הוא ישתמש בחיבור BigQuery MCP שהגדרנו קודם כדי למצוא את הסכימה של מערך הנתונים

כך תוכלו לוודא של-Antigravity CLI יש הקשר הנכון לפני שתתחילו לפתח
הבהרות לגבי הדרישות
יכול להיות ש-Antigravity CLI ישאל שאלות ממוקדות לגבי היקף התכונה. דוגמאות לשאלות נפוצות:
- איך צריך להגדיר את מזהה הפרויקט?
- איך צריך לצבור ולהציג את הנתונים בתרשים מגמת ההכנסות?
- איך כדאי לגשת לשילוב? SQL ישיר לעומת Pandas מקומי
אתם יכולים לענות על השאלות האלה לפי ההמלצה של הסוכן


עיון במפרט
אחרי ההבהרה, הוא ייצור מסמך מפרט רשמי. אם הוא יפעל לפי ההוראות בצורה נכונה, הוא יפעל לפי מוסכמת המיומנויות obra/superpowers שבה הוא ייצור מסמך מפרט בספרייה obra/superpowers כמו שמוצג בהמשךdocs/superpowers/specs

מסמך המפרט ייראה כך:
# BigQuery Integration Design Specification ## Overview This document specifies ... ## Architecture The application currently reads ... ## Data Schema & Sources All tables reside in the BigQuery ... ...
אחרי הבדיקה הזו, אנחנו צריכים לאשר את המפרט כדי שנוכל להעביר את הפרויקט לשלב התכנון

proceed with the specs
שלב התכנון והביצוע של סוכני משנה
אחרי שתאשרו את המפרט, Antigravity CLI יפרק אותו לתוכנית הטמעה שתיכתב לספרייה docs/superpowers/plans

במסמכי התוכנית יופיעו כמה דברים, כמו בדוגמה הבאה:
- קבצים לשינוי
- קבצים ליצירה או לעדכון
- שינויים בתלות
- פירוט המשימות
הוא גם ימליץ על שימוש ב-subagent driven development שנתמך על ידי Antigravity CLI – במקום שאגנט יחיד יבצע את כל הפעולות ברצף, Antiravity CLI יכול להקצות משימות לסוכני משנה מיוחדים. במהלך ההטמעה, יכול להיות שתראו סוכני משנה כמו:
- מבצע המשימה – כותב את הקוד למשימה ספציפית מהתוכנית
- בודק המשימות – בודק את הקוד שהוטמע בהשוואה למפרט
- בודק קוד סופי – מבצע בדיקה הוליסטית של כל השינויים לפני השלמתם

אם מוצגת לכם הנחיה כזו, הגיבו כך
Use subagent driven development
בהמשך נראה איך סוכני המשנה מקבלים משימות אחת אחרי השנייה.



אחרי זמן מה, הפיתוח יסתיים ( כנראה אחרי יצירת סוכן Final Code Reviewer). לאחר מכן נוכל לבדוק את התוצאה.
עדכון בנושא בדיקה ידנית של אפליקציות
אחרי שכל המשימות יסתיימו, נוכל לבדוק את האפליקציה המעודכנת. יוצאים מה-CLI של Antigravity על ידי הקשה על Ctrl+D פעמיים, ואז מריצים את הפקודה הבאה
bash configure_terminal.sh && uv run uvicorn src.main:app --host 0.0.0.0 --port 8080
אם הפיתוח הצליח, עכשיו אמורות להופיע Total Orders יותר מ-120,000 הזמנות, והן משולבות עם BigQuery

מעולה! עכשיו אתם משלבים בהצלחה את BigQuery עם אפליקציית האינטרנט שלכם בעזרת Antigravity CLI
9. (אופציונלי) פריסה ב-Cloud Run באמצעות Antigravity CLI
מרכז הבקרה פועל באופן מקומי באמצעות תצוגה מקדימה באינטרנט של Cloud Shell. בשלב האופציונלי הזה פורסים את האפליקציה ב-Cloud Run כשירות אינטרנט שנגיש לכולם – כך אפשר לראות איך היכולות של Antigravity CLI בתחום הדומיין מתרחבות מפיתוח לתפעול.
ה-skill cloud-run-basics (מהתוסף google/skills שהתקנתם קודם) מספק ל-Antigravity CLI ידע על תבניות פריסה של Cloud Run, דרישות של Dockerfile, קישור יציאות ודגלים של gcloud run deploy. פריסה מבוססת-מקור (gcloud run deploy --source .) יוצרת ופורסת בפקודה אחת – Cloud Build מטפל בקונטיינריזציה באופן אוטומטי.
הפעלת Cloud Run APIs
מפעילים את ממשקי ה-API שנדרשים לפריסה:
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 כדי להבין מה הדרישה לפריסת אפליקציית האינטרנט של הפרויקט הנוכחי

בסיום, המערכת תאמת שהפריסה בוצעה בהצלחה ותציג סיכום של תהליך הפריסה שבוצע קודם, כמו בדוגמה שמוצגת למטה. אפשר לגשת לאפליקציה באמצעות כתובת ה-URL שסופקה

עכשיו האפליקציה שלכם פרוסה וזמינה באופן מלא בעזרת Antigravity CLI
10. סיכום
שדרגתם לוח בקרה של מסחר אלקטרוני מקובצי CSV סטטיים לנתוני BigQuery בזמן אמת – בלי לכתוב קוד אפליקציה באופן ידני. Antigravity CLI טיפל בהטמעה באמצעות תהליך עבודה מבוקר של פיתוח מבוסס-מפרט, בהנחיית מיומנויות לשימוש חוזר וחיבור פעיל לנתונים באמצעות MCP.
מה למדתם
- איך משתמשים ב-Antigravity CLI ב-Cloud Shell לפיתוח בעזרת AI
- מהן מיומנויות של סוכן ואיך חשיפה הדרגתית שומרת על יעילות חלון ההקשר
- שלוש קטגוריות של כישורים: מתודולוגיה (יכולות על), יעילות (איש מערות), ידע בתחום (google/skills)
- מהו MCP ואיך מגדירים את BigQuery MCP לגישה לנתונים בזמן אמת
- איך מריצים מחזור פיתוח מבוסס-מפרט (ציון → תכנון → הטמעה) במקום קידוד אינטואיטיבי
- איך Antigravity CLI יכול ליצור סוכן משנה כדי שהפיתוח יהיה ממוקד ויעיל יותר
פינוי נפח
כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שנוצרו ב-Codelab הזה, אתם יכולים למחוק את המשאבים בנפרד או למחוק את הפרויקט כולו.
אפשרות 1: מחיקת הפרויקט (מומלץ)
הדרך הכי קלה לנקות היא למחוק את הפרויקט. הפעולה הזו מסירה את כל המשאבים שמשויכים לפרויקט.
gcloud projects delete $GOOGLE_CLOUD_PROJECT
אפשרות 2: מחיקת משאבים ספציפיים
אם אתם רוצים לשמור את הפרויקט אבל להסיר רק את המשאבים שנוצרו ב-Codelab הזה:
bq rm -r -f $GOOGLE_CLOUD_PROJECT:thelook_ecommerce
gcloud run services delete bigquery-dashboard --region us-central1 --quiet