‫Analytics עם Data Agent Kit ו-Antigravity IDE

1. מבוא

יום שני בבוקר, וסמנכ"ל הכספים שלכם בדיוק שלח לכם הודעה. ערך ההזמנה הממוצע ירד ב-7% החודש, אבל ההכנסה הכוללת לא השתנתה. משהו לא מסתדר, והדירקטוריון רוצה תשובות עד יום שישי.

החברה שלך, Cymbal Pets, היא אחת מהקמעונאיות הגדולות בארה"ב של מוצרים לחיות מחמד אונליין. הנתונים שאתם צריכים מפוזרים בשלושה שירותים של Google Cloud: היסטוריית מכירות והזמנות ב-BigQuery, רשומות של לקוחות ומוצרים ב-Cloud SQL וקבצים שיווקיים ב-Cloud Storage. בדרך כלל, כדי לבצע חקירה כזו שכוללת כמה שירותים, צריך לעבור בין מסופים, לכתוב קוד סטנדרטי לחיבור ולחבר את התוצאות באופן ידני.

בשיעור Codelab הזה תשתמשו בGoogle Cloud Data Agent Kit (DAK) ב-Antigravity IDE כדי לחקור את החריגה באמצעות שפה טבעית. אתם מתארים את מה שאתם מחפשים, וסוכן ה-AI מטפל בחיבורים, ב-SQL ובצירופים בין שירותים ב-BigQuery, ב-Cloud SQL וב-Cloud Storage. אחרי שתפתרו את הבעיה, תבקשו מהסוכן לבנות צינור dbt כדי להפוך את הממצאים שלכם לשימושיים, לנפות באגים במודל נתונים אמיתי ולספק המלצה מגובה בתחזית לסמנכ"ל הכספים.

הפעולות שתבצעו:

  • גילוי נכסי נתונים ב-BigQuery, ב-Cloud SQL וב-Cloud Storage באמצעות Knowledge Catalog
  • חקירת אנומליה על ידי שאילתות של כמה שירותים בשיחה אחת באמצעות כלי MCP
  • יצירת צינור עיבוד נתונים של dbt להכנת נתונים משירותים שונים ולשילוב שלהם באמצעות מודלים של הכנת נתונים ובדיקות אוטומטיות
  • ניפוי באגים בבעיה של מידול נתונים כשהסוכן מבצע אבחון עצמי ושינוי מבנה של באג מסוג fan-out
  • לחיזוי מגמות עתידיות ולמתן המלצה מבוססת-נתונים באמצעות AI.FORECAST של BigQuery

הדרישות

  • דפדפן אינטרנט כמו Chrome
  • Antigravity IDE
  • פרויקט ב-Google Cloud עם חיוב מופעל וגישה ל-Google Cloud Console (מומלץ להשתמש בפרויקט חדש וייעודי לשיעורי Lab מעשיים)
  • היכרות בסיסית עם SQL ועם מסוף Google Cloud

ה-Codelab הזה מיועד למומחי נתונים ברמת ביניים (מהנדסי ניתוח נתונים, מנתחי נתונים, מדעני נתונים).

העלות של המשאבים שנוצרו ב-codelab הזה צריכה להיות פחות מ-5$. בסיום שיעור ה-Lab, חשוב לפעול לפי ההוראות שבקטע ניקוי כדי למחוק את המשאבים שהוקצו.

‫2. לפני שמתחילים

בקטע הזה תפעילו סקריפט הגדרה שמקצה את כל סביבת המעבדה: מערך נתונים ב-BigQuery עם נתוני הזמנות, מופע Cloud SQL Postgres עם נתוני לקוחות ומוצרים, וקטגוריה של Cloud Storage עם רשומות של קמפיינים שיווקיים. הסקריפט יימשך כ-8 עד 10 דקות, כאשר צוואר הבקבוק הוא הקצאת Cloud SQL.

יצירת פרויקט חדש או בחירה בפרויקט קיים

בוחרים פרויקט קיים או יוצרים פרויקט חדש במסוף Google Cloud.

אימות החיוב

הקפידו לוודא שהחיוב מופעל בפרויקט בענן שלכם ב-Google Cloud. מידע נוסף על האופן שבו עושים את זה זמין במדריך הזה.

הפעלת Cloud Shell

תשתמשו ב-Google Cloud Shell כדי להריץ את סקריפט ההגדרה.

  1. פותחים את מסוף Google Cloud ולוחצים על Activate Cloud Shell (הפעלת Cloud Shell) בחלק העליון של החלון.

פתיחת Cloud Shell

  1. אחרי החיבור, מגדירים את מזהה הפרויקט ומאשרים את הסביבה:
gcloud config set project <<YOUR_PROJECT_ID>>
export PROJECT_ID=$(gcloud config get-value project)

אמורה להופיע הודעה דומה לזו:

Your active configuration is: [cloudshell-####]
Updated property [core/project]

שכפול המאגר

משכפלים את מאגר ה-Codelab לסביבת Cloud Shell:

cd ~/
git clone --filter=blob:none --no-checkout https://github.com/GoogleCloudPlatform/devrel-demos.git
cd ~/devrel-demos
git sparse-checkout init --cone
git sparse-checkout set codelabs/agentic-data-labs
git checkout main
cd codelabs/agentic-data-labs/

הפעלת סקריפט ההגדרה

סקריפט ההגדרה מכין את כל סביבת ה-Lab באופן אוטומטי, כך שתוכלו להתחיל מיד בחקירה:

cd ~/devrel-demos/codelabs/agentic-data-labs/scripts
chmod +x setup.sh setup_sql.sh
./setup.sh

בסיום, יוצג סיכום של סביבת החזית:

╔══════════════════════════════════════════════════════╗
║   Base Setup complete!                               ║
╚══════════════════════════════════════════════════════╝

Your core BigQuery and GCS assets are ready.
Cloud SQL is currently provisioning in the background and will be fully ready by Step 4.

  BigQuery:   YOUR_PROJECT_ID.cymbal_pets
              ├── orders
              └── order_items

  GCS:        gs://YOUR_PROJECT_ID-cymbal-pets-raw
              └── promo_events.json

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

tail -f /tmp/cloudsql_setup.log

שימו לב לארכיטקטורת הנתונים: רשומות היסטוריות של מכירות (הזמנות ופריטים בהזמנה) נמצאות ב-BigQuery, ואילו נתונים של אפליקציות תפעוליות (לקוחות, פרופילים של חיות מחמד ומוצרים) נמצאים ב-Cloud SQL. החלוקה הזו משקפת את המצב בארגונים בעולם האמיתי, שבהם מחסני נתונים אנליטיים ומסדי נתונים תפעוליים מכילים חלקים שונים של הפאזל.

סיכום הקטע: הפעלתם את סקריפט ההגדרה כדי להפעיל את סביבת ה-Lab ולהתחיל בהקצאת מסד הנתונים ברקע.

3. הגדרת סביבת הפיתוח המשולבת (IDE) ו-Data Agent Kit

פתיחת Antigravity IDE

לא צריך לחכות עד ש-Cloud SQL יסיים את הפעולה. פותחים את Antigravity IDE ומתחברים לפרויקט בענן ב-Google Cloud.

  1. אם עדיין לא עשיתם זאת, הורידו והתקינו את Antigravity IDE מדף ההורדה של Google Antigravity.
  2. מפעילים את אפליקציית Antigravity IDE למחשב.
  3. יוצרים תיקייה חדשה וריקה במחשב המקומי (למשל, בשם agentic-data-labs) ופותחים אותה בסביבת הפיתוח המשולבת (IDE) על ידי בחירה באפשרות פתיחת תיקייה. התיקייה הזו תשמש כסביבת העבודה המקומית שלכם ל-codelab.

הגדרת תיקיית הפרויקט ב-Antigravity IDE

התקנת התוסף Data Agent Kit

התוסף Google Cloud Data Agent Kit מוסיף דפדפן קטלוג נתונים, כישורי סוכן ושרתי MCP ל-BigQuery, ל-Cloud SQL ול-Cloud Storage, כך שתוכלו להריץ שאילתות ולבדוק את השירותים האלה מהעורך.

  1. ב-Antigravity IDE, לוחצים על סמל התוספים בסרגל הפעילות בצד ימין של המסך (הסמל נראה כמו ארבעה ריבועים).
  2. בסרגל החיפוש בחלק העליון של חלונית התוספים, מקלידים Google Cloud Data Agent Kit.
  3. אתר את התוצאה הראשונה בשם Google Cloud Data Agent Kit (פורסמה על ידי googlecloudtools).
  4. לוחצים על הלחצן התקנה.
  5. יכול להיות שתופיע הודעה עם השאלה 'האם אתה בוטח במוציא לאור googlecloudtools ובתוספים שלו?'. לוחצים על Trust Publishers & Install (הבעת אמון בבעלי האתרים והתקנה) כדי להמשיך.

התקנת התוסף Data Agent Kit

אחרי ההתקנה, יופיע סמל חדש של Google Cloud Data Agent Kit בסרגל הפעילות בצד ימין של Antigravity IDE.

אימות והגדרת התוסף

אחרי ההתקנה, מקשרים את התוסף לפרויקט בענן ב-Google Cloud.

  1. דף ההצטרפות 'ברוכים הבאים ל-Google Cloud Data Agent Kit' אמור להיפתח באופן אוטומטי. אם לא נכנסתם לחשבון Cloud, פועלים לפי ההנחיות כדי לאשר את הגישה.
  2. בקטע Configuration Summary (סיכום ההגדרה), מאתרים את שדה הפרויקט. לוחצים על התפריט הנפתח ובוחרים את הפרויקט ב-Google Cloud. מגדירים את האזור בתור us-central1. לאחר מכן בוחרים באפשרות Configure MCP Servers (הגדרת שרתי MCP).

הגדרה ראשונית של התוסף Data Agent Kit

  1. בחלונית MCP Configuration, לוחצים כדי להפעיל את BigQuery ואת Cloud SQL. לוחצים על שנתחיל?.

הגדרת שרתי MCP

אפשרויות ההגדרה

בסיום תהליך ההגדרה, תופנו לדף Get started with Google Cloud Data Agent Kit (תחילת העבודה עם ערכת כלי הסוכן של Google Cloud Data).

  1. בקטע 'הגדרה וקביעת תצורה', לוחצים על תחילת העבודה.
  2. תיפתח החלונית הגדרה של Data Agent Kit. מעיינים בכרטיסיות:
    • פרויקט ואזור: מוודאים שמזהה הפרויקט שנבחר נכון, ושממשקי ה-API הנדרשים (Cloud Storage API, ‏ BigQuery API, ‏ Catalog API ו-Cloud SQL Admin API) מופעלים.
    • BigQuery: הגדרת מיקום ברירת המחדל לשאילתות BigQuery. משתמשים באזור us-central1.
    • הגדרת שרתי MCP: אפשר לראות את שרתי ה-MCP המופעלים (BigQuery,‏ Notebooks,‏ Cloud SQL וכו') שמאפשרים לסוכני AI ליצור אינטראקציה מאובטחת עם הנתונים שלכם.
    • מיומנויות: אפשר לעיין במיומנויות מוגדרות מראש שמספקות לסוכנים יכולות ייעודיות למשימות מורכבות שקשורות לנתונים.

חלונית ההגדרות של Data Agent Kit

סיכום החלק: פתחתם את סביבת הפיתוח המשולבת (IDE) של Antigravity, חיברתם אותה לפרויקט שלכם ב-Google Cloud והגדרתם את שרתי ה-MCP המרוחקים של ערכת סוכני הנתונים.

4. איך מגלים את הנתונים

הגיע הזמן להכין את הרקע. הנה תיאור המצב: סמנכ"ל הכספים אומר שערך ההזמנה הממוצע ירד ב-7% בחודש שעבר, אבל ההכנסה הכוללת לא השתנתה. לפני שמבקשים מהנציג לבדוק, חשוב להבין קודם עם אילו נתונים עובדים.

בקטע הזה, תבדקו באופן ידני את החלונית Data Agent Kit כדי להבין את המבנה שלה. הבנת הנתונים לפני שמתחילים לשלוח אליהם שאילתות היא שלב ראשון חשוב בכל חקירה.

עיון בטבלאות BigQuery

  1. בחלונית Data Agent Kit, בקטע CATALOG, מרחיבים את האפשרויות your project (הפרויקט שלכם) → BigQuerycymbal_pets.
  2. לוחצים על הטבלה orders. תיפתח כרטיסייה חדשה עם פרטי הטבלה.
  3. מעיינים בכרטיסיות בצד ימין של כלי הצגת הטבלאות:
    • נתונים: תצוגה מקדימה של השורות בפועל. גוללים במערך הנתונים ובודקים את העמודות.
    • סכימה: בודקים את השמות והסוגים של העמודות. שימו לב לשדות כמו order_type ו-promo_code, שיהפכו לחשובים בהמשך.
    • כרטיסיות אחרות (פרטים, תובנות, פרופיל נתונים וכו'): תוכלו לגשת למטא-נתונים, לנתוני שושלת ולפרטי איכות שבדרך כלל אפשר למצוא במסוף Google Cloud, בלי לצאת מהעורך.

טבלת ההזמנות ב-BigQuery

  1. עכשיו לוחצים על הטבלה order_items ובודקים את הסכימה שלה. שימו לב לשדות quantity ו-price.

עיון בטבלאות של Cloud SQL

סקריפט ההגדרה גם הציב נתוני לקוחות, חיות מחמד ונתוני מוצרים במסד נתונים של PostgreSQL ב-Cloud SQL.

  1. בחלונית Data Agent Kit, לחצו על חיפוש אוניברסלי תחת הקטע קטלוג.
  2. בתיבת החיפוש, מקלידים pet_profiles ומקישים על Enter.
  3. בתוצאות החיפוש, לוחצים על התוצאה PostgreSQL Table (טבלת PostgreSQL) של pet_profiles (במכונת Cloud SQL של הפרויקט). שימו לב שהאקורדיון בסרגל הצד מתרחב אוטומטית, ומראה בדיוק איפה הטבלה נמצאת בעץ מסד הנתונים. עכשיו לוחצים על הטבלה customers שנמצאת ממש מעליה בעץ כדי לפתוח את הפרטים שלה, ומעיינים בכרטיסיות סכימה ופרטים.

סכימה של Cloud SQL

התנסות בקבצים ב-Cloud Storage

לבסוף, רשומות של קמפיינים שיווקיים וקידומיים מאוחסנות כקבצי JSON גולמיים ב-Cloud Storage.

  1. בחלונית Data Agent Kit (ערכת כלי סוכן הנתונים) שמימין, מרחיבים את הקטע CLOUD STORAGE (אחסון בענן). מאתרים את קטגוריית הנתונים הגולמיים של הפרויקט (YOUR_PROJECT_ID-cymbal-pets-raw).
  2. לוחצים על הקובץ promo_events.json בתוך הדלי. תיפתח כרטיסייה חדשה בעורך, שבה תוכלו לראות את תוכן ה-JSON הגולמי של הקמפיינים השיווקיים ישירות בתוך סביבת הפיתוח המשולבת.

תצוגה מקדימה של promo_events.json ב-Cloud Storage

בדיקת המצב

אלה הפרטים שאתם יודעים עכשיו על הנתונים:

שירות

טבלאות

מה יש שם

BigQuery

orders, order_items

כ-1.9 מיליון הזמנות, כ-4.3 מיליון פריטים, טווח התאריכים 2023-2025

Cloud SQL

customers,‏ pet_profiles,‏ products

כ-92,000 לקוחות, כ-7,600 פרופילים של חיות מחמד, 206 מוצרים

Cloud Storage

promo_events.json

רשומות של קמפיינים לקידום מכירות

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

סיכום הקטע: השתמשתם בחלונית Data Agent Kit כדי לבדוק באופן ידני את ארכיטקטורת הנתונים ב-BigQuery, ב-Cloud SQL וב-Cloud Storage. עכשיו אתם יודעים איפה הנתונים נמצאים ואילו שדות זמינים, אז אתם מוכנים להתחיל את החקירה.

5. פועלים לפי המספרים

עכשיו מתחילה החקירה. תשתמשו בחלונית של Chat כדי לבקש מסוכן ה-AI לשלוף נתונים של ערך הזמנה ממוצע (AOV) מ-BigQuery. ערך הזמנה ממוצע (AOV) הוא מדד עסקי שמייצג את הסכום הממוצע בדולר שהוצא על כל הזמנה. הסוכן יבצע שאילתות בשמכם באמצעות כלי MCP, ותוכלו לראות כל שאילתת SQL שהוא מריץ.

שליפת מגמת ערך ההזמנה הממוצע

  1. בחלונית הצ'אט בצד שמאל של סביבת הפיתוח המשולבת, מקלידים את ההנחיה הבאה ומקישים על Enter:
    Calculate our monthly average order value from August 2024 through January 2025
    using the orders and order_items tables in BigQuery.
    
  2. מאשרים את הרשאות הגישה לנתונים. חשוב לנקוט משנה זהירות לגבי סוכני AI שמריצים שאילתות במסדי הנתונים שלכם. Data Agent Kit מאפשר לכם לשמור על השליטה בנתונים, כי הוא עוצר ומבקש אישור מפורש לפני שהוא ניגש לנתונים. כשמופיעה בקשה, אפשר לבחור באחת מהאפשרויות הבאות:
    • לאפשר הפעם: מאשר שימוש חד-פעמי (האפשרות הזו מתאימה במיוחד לביקורת של שאילתות בסיכון גבוה).
    • אישור תמיד: מאשר שימוש מתמשך בכלי הספציפי הזה במהלך הסשן.
    • לא: חסימה מוחלטת של הפעולה.

כדי ליהנות מחוויית השימוש הטובה ביותר במעבדה, בוחרים באפשרות כן, תמיד. הערה: ההרשאות ניתנות לכל כלי בנפרד. סביר להניח שיוצגו לך עוד כמה הנחיות בקרוב, כי הסוכן ישתמש בכלים חדשים (כמו list_table_ids או execute_sql_readonly). אפשר גם לאשר את ההנחיות האלה.

הנחיה למתן הרשאה לכלי ה-MCP

  1. צופים בסוכן בפעולה. חלונית הצ'אט משמשת גם כיומן שקיפות לכל הפעולות שהסוכן מבצע. במקום תיבה שחורה, הסוכן מציג את הנימוקים והפעולות שלו בזמן אמת.
  2. אחרי שהסוכן מסיים, לוחצים על התפריט הנפתח Worked for Xm (העבודה נמשכה X דקות) שמתחת לפרומפט כדי להרחיב את יומן העבודה המלא. כאן אפשר לבדוק בדיוק איך התקבלה התשובה:
    • נבדקו: אפשר להרחיב את הפריטים האלה כדי לראות את הסוכן קורא קבצים, מעיין בתיקיות או מפעיל כלי MCP (כמו datacloud_bigquery_remote / list_table_ids ו-execute_sql_readonly). אפשר לראות את ארגומנטי ה-JSON המדויקים שהועברו לכלים ואת ה-SQL שהופעל.
    • הופעלה: אפשר להרחיב את הפריטים האלה כדי לראות את כל הפקודות בטרמינל שהסוכן הפעיל, כמו gcloud config list.

יומן שקיפות של סוכן שמציג קריאות לכלי MCP

  1. מעיינים בתוצאות. הנציג צריך להחזיר טבלה עם ערכי AOV חודשיים. אפשר לראות את המספרים בעצמכם: בחודשים הקודמים ההוצאות היו בסביבות 110$, ואז בינואר הן ירדו לסביבות 103$. זו החריגה שסמנכ"ל הכספים סימן.

הצגת פירוט לפי ערוץ

הערך הממוצע של ההזמנות ירד, אבל מאיפה מגיעה הירידה? בואו נגלה.

  1. בחלונית הצ'אט, מקלידים:
    January looks lower than the prior months. 
    Break down January's AOV by order_type to see what's going on?
    
  2. הסוכן מריץ שאילתת BigQuery נוספת, הפעם עם קיבוץ לפי order_type. בודקים את התוצאות בקפידה. אמור להופיע נתון בולט: ערכי ה-AOV של Online ושל Offline נשארים יציבים בערך 110$. אבל יש ערוץ חדש, B2B-Wholesale, עם ערך הזמנה ממוצע נמוך בהרבה (בערך 75$). הערוץ החדש הזה מוריד את הממוצע המשוקלל.
  3. הסוכן יכול להציע באופן יזום לבדוק את הלקוחות B2B. אם לא, זה בסדר. את זה עושים בשלב הבא.

סיכום הקטע: זיהיתם בעצמכם את הירידה בערך ההזמנה הממוצע בינואר מתוך נתונים ניטרליים, ואז התעמקתם בנתונים לפי order_type כדי לזהות את B2B-Wholesale כערוץ החדש שמוריד את הממוצע המשוקלל. עכשיו צריך לגלות מי הם הלקוחות האלה מסוג B2B.

6. חציית הגבול של השירות

זיהיתם את B2B-Wholesale כערוץ האנומלי ב-BigQuery, אבל נתוני הלקוחות נמצאים ב-Cloud SQL. בעזרת Data Agent Kit, אפשר להמשיך את אותה שיחה והיא מטפלת בגבולות השירות.

בדיקת לקוחות B2B

  1. בחלונית הצ'אט, מקלידים:
    Who are these B2B customers? Their profiles should be in our Cloud SQL database. 
    Check for:
    - Who they are
    - When they signed up
    - Whether they're new or existing customers
    
  2. צריך להסתכל בעיון בחלונית של Chat. בפעם הזו אמור להופיע כלי MCP אחר. הסוכן מבצע עכשיו שאילתות ב-Cloud SQL במקום ב-BigQuery. הסוכן מתחבר למופע cymbal-pets-ops Cloud SQL Postgres ומריץ שאילתה בטבלה customers. כדי לראות את ה-SQL, לוחצים על הצגת פרטים.
  3. מעיינים בתוצאות. הנציג צריך להציג כמה ממצאים עיקריים:
    • לכל הלקוחות B2B יש customer_type = 'Business'
    • כולם נרשמו ב-30 הימים האחרונים (ינואר 2025)
    • הערכים של last_name הם שמות של עסקים, כמו Pet Supply Co,‏ Animal Care LLC ו-Happy Paws Inc
    • יש כ-100 כאלה, קבוצת משתמשים שלא הייתה קיימת לפני החודש הזה

קישור קוד ההטבה

  1. יכול להיות שהסוכן יזהה בעצמו שהרבה הזמנות B2B ב-BigQuery נושאות את הערך promo_code של BIGORDER25. אם הוא מציע את התצפית הזו, מצוין. הבדיקה מתקדמת באופן טבעי.אם הנציג לא מזכיר את קוד ההטבה, כדאי להזכיר לו:
    I noticed a promo_code field on the orders table in BigQuery. 
    Check what promo codes appear on the B2B-Wholesale orders?
    
  2. הסוכן שולח שאילתה נוספת ל-BigQuery ומגלה שלכ-92% מההזמנות של B2B-Wholesale יש promo_code = 'BIGORDER25'. כמעט כל הפעילות ב-B2B קשורה לקמפיין קידום מכירות יחיד.לאחר מכן, יכול להיות שהסוכן יחפש נתונים שקשורים לקידום מכירות במקום אחר בסביבה. (הוא נמצא ב-Cloud Storage).

סיכום הקטע: הסוכן של Google Cloud שאל שאילתה ב-Cloud SQL כדי לגלות שהלקוחות מסוג B2B הם עסקים חדשים שנרשמו בינואר 2025. בנוסף, ב-BigQuery נמצא שכ-92% מההזמנות כוללות את promo_code = 'BIGORDER25', ולכן נראה שמדובר בקמפיין קידום מכירות. הגיע הזמן למצוא את המקור.

7. Find the missing piece

שני שירותים ירדו, נשאר עוד אחד. אתם יודעים מה קרה (הזמנות B2B מורידות את הערך הממוצע של ההזמנה) ומי אחראי לכך (לקוחות עסקיים חדשים מ-30 הימים האחרונים). עכשיו צריך להבין למה, והתשובה נמצאת ב-Cloud Storage.

בדיקה של קטגוריית ה-GCS

  1. בחלונית הצ'אט, מקלידים:
    Good catch on the promo code. 
    We might have promotional campaign data in our GCS bucket. 
    Can you check what's there?
    
  2. לסוכן אין כלי MCP מוגדר מראש ל-Cloud Storage, ולכן הוא עובר אוטומטית לשימוש בכלי הטרמינל שלו כדי להריץ פקודות gcloud storage. הוא יבקש הרשאה להריץ פקודות כמו gcloud storage ls. מאשרים את הפקודות האלה, ואז מרחיבים את היומן Ran בחלונית של Chat כדי לראות את פקודות ה-CLI המדויקות שבהן נעשה שימוש כדי לקרוא ולנתח את הקובץ promo_events.json.
  3. הסוכן צריך לזהות שלושה קמפיינים שיווקיים בקובץ:

    קמפיין

    קוד הטבה

    הנחה

    יעד

    תאריכים

    מבצע קיץ לטיפול בחיות מחמד

    PETSUMMER15

    15% הנחה

    הכול

    יוני 2024

    B2B Wholesale Push

    BIGORDER25

    ‫25% הנחה

    B2B

    ינואר 2025

    בונוס לחגים לחברי מועדון לקוחות

    LOYAL10

    10% הנחה

    חברים במועדון לקוחות

    דצמבר 2024

    זו הסיבה. קוד המבצע BIGORDER25 ממופה לקמפיין שנקרא B2B Wholesale Push: הנחה של 25% ללקוחות B2B עם כמות מינימלית להזמנה של 50 יחידות.

סיכום של כל המידע

  1. מבקשים מהסוכן לסכם את כל מה שהוא מצא:
    Put it all together. 
    What happened to our average order value?
    
  2. הסוכן מספק סיכום ברור ומובנה שמקשר בין שלושת מקורות הנתונים. ההסבר צריך להיות בסגנון הבא:
    1. הירידה בערך ההזמנה הממוצע היא אמיתית, אבל היא לא מעידה על ירידה בפעילות העסקית הקיימת. הערך הממוצע של הזמנות אונליין ואופליין נשאר יציב ועומד על כ-110$.
    2. ערוץ חדש של B2B-Wholesale הופיע בינואר 2025, עם כ-25,000 הזמנות עם ערך הזמנה ממוצע נמוך בהרבה (‎75-100$).
    3. הלקוחות B2B הם 100 חשבונות עסקיים חדשים שנרשמו כולם ב-30 הימים האחרונים (Cloud SQL).
    4. הפעילות נובעת מקמפיין קידום מכירות (B2B Wholesale Push) שמציע הנחה של 25% על הזמנות בכמויות גדולות, עם מינימום של 50 יחידות (Cloud Storage).
    5. ההכנסות לא משתנות כי נפח ההזמנות הגבוה של B2B מפצה על המחירים הנמוכים יותר. עם זאת, שולי הרווח ליחידה מצטמצמים מאוד (יורדים בכ-65%) בגלל הנחת הסיטונאות של 25%, ולכן הרווחיות הכוללת נמצאת בסכנה חמורה כשמביאים בחשבון את עלויות המשלוח והתקורה התפעולית.
    זה הרגע שבו החקירה מתחילה. לשאלה של סמנכ"ל הכספים יש תשובה ברורה: הערך הממוצע של ההזמנות ירד כי תוכנית B2B שמונעת על ידי שיווק הציפה את ינואר בהזמנות בכמויות גדולות ובמחירים נמוכים. העסק הקיים תקין.

סיכום הקטע: מצאתם את הסיבה ב-Cloud Storage: קמפיין שיווקי מסוג B2B שמציע הנחה של 25% על הזמנות בכמויות גדולות. הסוכן סינתז את הממצאים מכל שלושת השירותים לסיפור ברור. שלב החקירה הושלם. לאחר מכן, תפעילו את הממצאים האלה.

8. יצירת צינור עיבוד הנתונים

פתרת את התעלומה. עכשיו סמנכ"ל הכספים רוצה שהניתוח הזה יתעדכן באופן אוטומטי. בקטע הזה, תבקשו מהסוכן ליצור פרויקט dbt שמכין את נתוני BigQuery ומפיק טבלת עובדות לניתוח מתמשך של ערך ההזמנה הממוצע.

בשלב הזה, הנציג משנה את התפקיד מחוקר למהנדס. תוכלו לראות אותו יוצר תשתית לפרויקט dbt שלם ומריץ את הצינור כולו, והכול מהנחיה אחת.

יצירת תבנית לפרויקט dbt

  1. בחלונית הצ'אט, מקלידים את ההנחיה הבאה. המדריך הזה מתמקד ביעדים ולא בשלבים. אתם אומרים לסוכן מה אתם רוצים, ולא איך ליצור את זה:
    I want to productionize our AOV analysis so it updates automatically. Build a dbt project that:
    1. Creates staging models for the BigQuery tables (orders and order_items) and a mart called fct_order_analysis that calculates AOV by channel and month
    2. Add a uniqueness test on order_id and run dbt build
    
  2. התבוננות בתיקון עצמי: אם מרחיבים את היומן Worked for Ns, יכול להיות שתראו שהסוכן בודק אם יש dbt, ואם הוא לא מוצא אותו, הוא מריץ אוטומטית פקודות כדי ליצור סביבה וירטואלית של Python‏ (.venv). הוא מטפל בהגדרת הסביבה בשבילכם.

הגדרת סביבה וירטואלית על ידי סוכן

  1. בדיקת תוכנית ההטמעה: הסוכן ייצור תוכנית הטמעה רשמית. אתם יכולים לבדוק את הקבצים והארכיטקטורה המוצעים, להוסיף הערות אם צריך וללחוץ על המשך כדי לאפשר לסוכן לבצע את התוכנית.

תוכנית הטמעה של סוכן

  1. צופים בחלונית הצ'אט בזמן שהסוכן מבצע את התוכנית שלו, וכותב את קובצי .sql והגדרות ה-YAML הנדרשים. כשהוא יסיים את הפעולה ויקמפל את הפרויקט בהצלחה, הוא יציג סיכום של השינויים. כדי להוסיף את הקבצים האלה לסביבת העבודה, לוחצים על אישור הכל.

אישור שינויים בקוד של סוכן

  1. בחלונית Explorer בצד ימין, בודקים את פרויקט ה-dbt שנוצר. אמורה להופיע מבנה דומה לזה:
    dbt/
    ├── models/
       ├── marts/
          └── fct_order_analysis.sql
       └── staging/
           ├── schema.yml
           ├── sources.yml
           ├── stg_order_items.sql
           └── stg_orders.sql
    ├── dbt_project.yml
    └── profiles.yml
    

מבנה פרויקט dbt בסייר הקבצים

  1. לוחצים על קובצי המודל .sql כדי לבדוק את ה-SQL שהסוכן יצר. שימו לב לאופן שבו הוא מטפל ב:
    • מודלים של Staging: עמודות נקיות עם שמות חדשים והפניות למקורות
    • מודל ה-Mart: לוגיקת הצירוף וחישוב הערך הממוצע של הזמנה לפי ערוץ
    • טיפול בתשלומים של אורחים: יכול להיות שתבחינו ב-COALESCE(customer_type, 'Guest') או באילוצי null רפויים. המודלים האלה מתייחסים לרכישות של אורחים בחנויות קמעונאיות שבוצעו ללא חשבון, ושומרים על נתוני הכנסות תקפים מהזמנות במקום להשמיט רשומות לא מלאות.
  1. בודקים בחלונית הצ'אט (או לוחצים על ארטיפקט ההסבר המפורט שנוצר) כדי לראות את האישור של הסוכן שכל המודלים נוצרו וכל הבדיקות עברו בהצלחה. התוצאות של ערך ההזמנה הממוצע מה-mart צריכות לאשר את מה שמצאתם במהלך החקירה:
    - Online: ~$110
    - Offline: ~$110
    - B2B-Wholesale: ~$75 to $77
    

סיכום סעיף: הסוכן בנה פרויקט dbt (דיגיטלי מסחרי) מהנחיה אחת מוכוונת מטרה: מודלים מבוססי ביניים ומודלים של מרט, הפעיל dbt build מוצלח ואישר את אנומליית ה-AOV. בשלב הבא, תנסו להציג לסוכן שאלה מורכבת כדי לראות איך הוא מתמודד עם מורכבות.

9. אם הבדיקות נכשלות, הסוכן מפעיל ניפוי באגים

הצינור פועל, אבל הוא משתמש רק בנתוני BigQuery. צוות המוצר רוצה להעשיר את הניתוח בנתוני פרופיל של לקוחות וחיות מחמד מ-Cloud SQL, כדי שיוכל להמליץ על מוצרים על סמך צרכים תזונתיים. המשמעות היא שהסוכן צריך לגשר על הגבול של Cloud SQL ולטפל בבאג קטן של מידול נתונים, שהוא איחוד (join) קלאסי של 'fan-out' במידול רב-ממדי.

בהתאם למודל שבו אתם משתמשים וליכולות החשיבה הרציונלית שלו, הסוכן יטפל בבקשה הזו באחת משתי דרכים: הימנעות יזומה מהבאג (אפשרות א') או תיקון עצמי אחרי כשל בבדיקה (אפשרות ב'). בואו נראה באיזו דרך הסוכן שלכם יבחר!

הפעלת הבקשה

  1. בחלונית הצ'אט, מקלידים:
    Enrich fct_order_analysis with customer data and pet profile data from our Cloud SQL database. 
    Include customer type and each customer's pets and dietary needs so we can recommend products. 
    Keep the uniqueness test on order_id and run dbt build.
    
  2. צופים בסוכן בפעולה. הכלי יאתר את הטבלאות ב-Cloud SQL, יבין איך לגשר על הנתונים ב-BigQuery (באמצעות שאילתה לכמה מסדי נתונים או עותק מגובה), ייצור מודלים חדשים של הכנה וישנה את fct_order_analysis.sql.

אפשרות א': הסוכן הפרואקטיבי (מניעת באגים)

אם אתם משתמשים במודל מתקדם של הסקת מסקנות, יכול להיות שהסוכן יזהה את השינוי ברמת הפירוט לפני כתיבת קוד כלשהו. מכיוון שללקוח יכולים להיות כמה חיות מחמד, צירוף ישיר משכפל הזמנות ולא עובר את בדיקת הייחודיות שביקשת ב-order_id.

  1. התבוננות בצבירה פרואקטיבית: בחלונית ההסבר של הצ'אט או בארטיפקט של ההדרכה, יכול להיות שהסוכן יציין שהוא ביצע צבירה מראש של נתוני חיות המחמד לפני ששילב אותם כדי למנוע "fan-out קלאסי". בדרך כלל, המערכת תעשה זאת על ידי צמצום של כמה חיות מחמד לכל לקוח באמצעות פונקציית צבירה (למשל, ARRAY_AGG() או STRING_AGG()).
  2. בדיקת התוצאות: הסוכן dbt build מורץ ועובר בהצלחה בניסיון הראשון כי הוא הגן באופן יזום על הגרנולריות של טבלת העובדות. כדי לבדוק זאת, אפשר לעיין בארטיפקט של ההסבר המפורט שנוצר, שבו מוצגות לעיתים קרובות תוצאות הבדיקה המוצלחת לצד תוצאות השאילתה.

הסבר מפורט שמראה צבירה פרואקטיבית ובדיקות מוצלחות

הסוכן עקף את הבאג. בודקים את ה-SQL שנוצר ב-fct_order_analysis.sql כדי לראות איך הוא בנוי, ואז עוברים לקטע הבא, הצגת התשובה.

אפשרות ב': סוכן לתיקון עצמי (ניפוי באגים ואבחון)

אם המודל כותב קוד наивный של צירוף שמאלי ישיר קודם, שאילתת ה-SQL עצמה תפעל בהצלחה, אבל חבילת dbt test האוטומטית תזהה את השינוי ברמת הפירוט.

  1. התבוננות בשגיאת הבדיקה: שגיאת הבדיקה תדווח ביומני ההתקדמות של ההרצה בחלונית Chat:
    Completed with 1 error
    
    Failure in test unique_fct_order_analysis_order_id
    Got 287 results, configured to fail if != 0
    
    בבדיקת הייחודיות ב-order_id נמצאו רשומות כפולות כי לקוחות עם כמה חיות מחמד פיצלו את ההזמנות.
  2. מאפשרים לסוכן לאבחן את הבעיה ולתקן אותה בעצמו: מכיוון שהבדיקה נכשלה, מבקשים מהסוכן לנפות באגים. בחלונית הצ'אט, מקלידים:
    The uniqueness test failed. Can you figure out why and fix it?
    
  3. צפייה באבחון: הסוכן יבצע שאילתה על הנתונים, יזהה את היחס של אחד לרבים בטבלה pet_profiles, יסביר שצירוף ישיר של הטבלה משנה את רמת הגרעיניות משורה אחת לכל הזמנה לשורה אחת לכל הזמנה לכל חיית מחמד, וישכתב את המודל כדי לבצע צבירה מראש של פרופילי חיות המחמד:
    -- Pre-aggregating pets per customer to resolve fan-out
    LEFT JOIN (
      SELECT
        customer_id,
        COUNT(*) AS num_pets,
        STRING_AGG(DISTINCT pet_type, ', ') AS pet_types,
        STRING_AGG(DISTINCT dietary_needs, ', ') AS dietary_needs
      FROM pet_profiles
      GROUP BY customer_id
    ) pet_agg ON c.customer_id = pet_agg.customer_id
    
  4. אימות התיקון: הסוכן מריץ שוב את dbt build, והפעם כל המודלים ממומשים וכל הבדיקות עוברות בהצלחה.

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

10. העברת התשובה

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

כתיבת תקציר המנהלים

  1. בחלונית הצ'אט, מקלידים:
    Write an executive summary covering:
    - Main findings and the quantitative margin impact
    - Project AOV for the subsequent quarter if the B2B program continues at its current trajectory
    - A data-driven recommendation
    
  2. צופים בסוכן בפעולה.
  3. בודקים את תקציר המנהלים של הסוכן. תשובה אופיינית ומובנית היטב צריכה להתייחס לנקודות הבאות:
    • מסקנה מרכזית: ירידה בערך ההזמנה הממוצע בינואר נבעה אך ורק מהערוץ החדש B2B-Wholesale. הערך של מכירות אונליין ואופליין נשאר יציב ברמה של כ-110$.
    • הגורם הבסיסי: המבצע 'הנחה על הזמנות בכמות גדולה לעסקים' (25% הנחה על הזמנות בכמות גדולה) משך 100 חשבונות חדשים, והניב כ-25,000 הזמנות.
    • השפעה על שולי הרווח: הזמנות סיטונאיות גרמו לירידה של כ-65% ברווח הממוצע ליחידה (מכ-7.50$‎ לכ-2.60$‎).
    • הכנסה: הכנסה כוללת קבועה, כי נפח גבוה של B2B מפצה על המחירים הנמוכים יותר.

תחזית של ערך ההזמנה הממוצע באמצעות AI.FORECAST

  1. הסוכן צריך גם ליצור תחזית לעתיד. מחפשים קריאה לכלי MCP שבה הסוכן מריץ שאילתת AI.FORECAST ב-BigQuery. השאילתה משתמשת במודל הבסיסי המובנה TimesFM כדי לחזות את ערך ההזמנה הממוצע ל-90 ימים קדימה על סמך מגמות היסטוריות. השאילתה צריכה לחזות את ערך ההזמנה הממוצע ל-90 ימים קדימה בשני תרחישים: המשך הקמפיין (ערך הזמנה ממוצע נמוך מבחינה מבנית) לעומת סיום הקמפיין (התאוששות לערך של כ-110$).
  1. בודקים את ההמלצות האסטרטגיות של הסוכן. ההמלצות צריכות לכלול את הנושאים הבאים:
    • שינוי מבנה ההנחות: הטמעת רמות מינימום של שולי רווח או הגבלת הנחות בכמות גדולה כדי להגן על שולי הרווח ברמת היחידה.
    • אכיפת כמויות מינימום להזמנה (MOQ) מחמירות יותר: מניעת ניצול לרעה של מחירי סיטונאות על ידי קונים קמעונאיים.
    • דיווח נפרד: אפשר לעקוב אחרי חטיבות קמעונאיות וחטיבות B2B בנפרד כדי למנוע הסתרה של ביצועים קמעונאיים.

הסיפור המלא

מה שהתחיל ביום שני כתרגיל חירום בעקבות ירידה של 7% בערך ההזמנה הממוצע, הסתיים בפתרון ברור עבור סמנכ"ל הכספים:

  • Retail Health: ערוצי הליבה של הקמעונאות נשארים תקינים ויציבים בקו הבסיס.
  • גידול במכירות הסיטונאיות: הירידה בערך ההזמנה הממוצע נובעת כולה מהערוץ החדש של מכירות סיטונאיות B2B ומהקמפיין BIGORDER25.
  • השפעה על שולי הרווח: ההנחה על רכישה בכמות גדולה של 25% שחקה מאוד את שולי הרווח ליחידה, וסיכנה את הרווחיות למרות שההכנסות נשארו ללא שינוי.
  • תחזית אסטרטגית: AI.FORECAST תחזית שמראה ששינוי המבנה של רמות המחירים הסיטונאיות ישחזר את ערך ההזמנה הממוצע המשוקלל.

אתם מספקים המלצה שמבוססת על נתונים כדי לקבוע רמות מינימליות של רווח בסיטונאות ודיווח נפרד על מכירות קמעונאיות או על מכירות B2B.

סיכום של הקטע: ביקשת מהסוכן לכתוב סיכום מנהלים עם ניתוח של שולי הרווח, ליצור תחזית AI.FORECAST ולספק המלצה מבוססת-נתונים. החקירה הושלמה.

11. הסרת המשאבים

כדי להימנע מחיובים שוטפים בחשבון Google Cloud, מוחקים את המשאבים שנוצרו ב-codelab הזה על ידי הפעלת סקריפט הניקוי.

  1. חוזרים אל Google Cloud Shell (שבו הפעלתם את סקריפט ההגדרה) ומריצים את סקריפט ההסרה:
cd ~/devrel-demos/codelabs/agentic-data-labs/scripts
chmod +x teardown.sh
./teardown.sh
  1. הסקריפט יציג את כל המשאבים שהוא מתכנן למחוק ויבקש אישור לפני שימשיך:
    • מופע Cloud SQL (cymbal-pets-ops): כל הטבלאות
    • מערכי נתונים ב-BigQuery (cymbal_pets, ‏ dbt_marts): כל הטבלאות והמודלים
    • קטגוריה של Cloud Storage (gs://YOUR_PROJECT_ID-cymbal-pets-raw)
    • חיבור ל-BigQuery (cymbal-pets-cloudsql)
  2. כדי לאשר, מקלידים y. הפירוק נמשך כ-2-3 דקות.
[INFO]  Deleting BigQuery dataset cymbal_pets...
[ OK ]  BigQuery dataset cymbal_pets deleted.
[INFO]  Deleting BigQuery dataset dbt_marts...
[ OK ]  BigQuery dataset dbt_marts deleted.
[INFO]  Deleting GCS bucket gs://YOUR_PROJECT_ID-cymbal-pets-raw...
[ OK ]  GCS bucket deleted.
[INFO]  Deleting BigQuery connection cymbal-pets-cloudsql...
[ OK ]  BQ connection deleted.
[INFO]  Deleting Cloud SQL instance cymbal-pets-ops...
[ OK ]  Cloud SQL instance deleted.

12. מעולה!

סיימת בהצלחה את החקירה בנושא Cymbal Pets! הפכתם שאלה לא ברורה של סמנכ"ל להמלצה מגובה בתחזית, באמצעות סוכן AI שפועל בכל נכסי הנתונים שלכם ב-Google Cloud.

מה השגתם

  1. 🔍 נבדקו בשירותים שונים: נכסים שזוהו ונבדקו בתצוגה מקדימה ב-BigQuery, ב-Cloud SQL וב-Cloud Storage באמצעות ערכת כלי הסוכן לנתונים של קטלוג הידע.
  2. 🕵️‍♂️ נבדק באמצעות AI: בוצעה שאילתה לגבי כמה שירותים בשיחה אחת בחלונית הצ'אט באמצעות MCP Tools כדי לאתר את האנומליה בערך ההזמנה הממוצע בקמפיין קידום מכירות B2B בכמות גדולה.
  3. ‫🔧 יצירת צינור נתונים לייצור: יצירת פרויקט dbt מלא לניקוי, לצירוף ולבדיקה של נתוני הזמנות ולקוחות.
  4. 🐛 תיקנו באג של fan-out: נצפה שהסוכן מאבחן אוטומטית בעיה בגרנולריות ומבצע ארגון קוד מחדש במודל ה-SQL של dbt כדי לבצע צבירה מראש של פרופילי חיות מחמד של לקוחות.
  5. ‫📈 חיזוי והמלצה: השתמשנו ב-AI.FORECAST המובנה של BigQuery כדי ליצור מודל של מגמות ערך ההזמנה הממוצע, והעברנו המלצה מבוססת-נתונים לסמנכ"ל הכספים.

מושגים מרכזיים

קונספט

מה למדתם

כלי MCP

חיבורים מאובטחים שניתנים לביקורת, שמאפשרים לסוכן ה-AI לשלוח שאילתות לשירותים כמו BigQuery,‏ Cloud SQL,‏ Spanner ומסדי נתונים אחרים בשמכם, וכל שיחה מוצגת בחלונית הצ'אט

מיומנויות של סוכנים

קבוצות הוראות מוכנות מראש (כמו dbt-bigquery או discovering-gcp-data-assets) שמלמדות את הסוכן שיטות מומלצות ספציפיות לדומיין, בלי שתצטרכו לתת לו הנחיות לגביהן

חקירה חוצת-שירותים

הסוכן שולח שאילתות לכמה שירותים של Google Cloud בשיחה אחת, בלי להגדיר חיבור ובלי לעבור בין מסופים

הנחיות שמכוונות להשגת יעד

אומרים לסוכן מה רוצים ("תבנה פרויקט dbt שמחשב את ערך ההזמנה הממוצע לפי ערוץ") במקום איך, ומאפשרים לו לבחור את גישת ההטמעה

Data Agent Kit

התוסף שמקשר בין הכול, החל מ-MCP Tools ו-Agent Skills ועד לגילוי נתונים, ומאפשר לכם לגשת לכל נתוני Google Cloud מתוך סביבת הפיתוח המשולבת (IDE) שבחרתם

השלבים הבאים

  • מידע נוסף על היכולות של Data Agent Kit זמין בתיעוד.
  • מידע על פונקציות של BigQuery ML ו-AI, כולל AI.FORECAST, ‏ AI.GENERATE ו-AI.EMBED
  • אפשר לנסות ליצור חקירה משלכם בין שירותים באמצעות Antigravity IDE על הנתונים שלכם