‫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
  • פרויקט ב-Google Cloud שהחיוב בו מופעל
  • היכרות בסיסית עם SQL ועם מסוף Google Cloud

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

העלות של המשאבים שנוצרו ב-codelab הזה צריכה להיות פחות מ-5$.

2. לפני שתתחיל

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

הפעלת Cloud Shell

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

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

פתיחת 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/

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

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

הסקריפט יוצר באופן אוטומטי סיסמה מאובטחת ל-Cloud SQL ושומר אותה בקובץ .env.

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 מספק שילוב עמוק עם שירותי הנתונים של Google Cloud ישירות בתוך העורך, ומאפשר לכם ליצור אינטראקציה עם 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 Configuration (הגדרת סוכן הנתונים). מעיינים בכרטיסיות:
    • פרויקט ואזור: מוודאים שמזהה הפרויקט שנבחר נכון, ושממשקי ה-API הנדרשים (Cloud Storage API, ‏ BigQuery API, ‏ Catalog API ו-Cloud SQL Admin API) מופעלים.
    • BigQuery: הגדרת מיקום ברירת המחדל לשאילתות BigQuery. משתמשים באזור us-central1.
    • הגדרת שרתי MCP: אפשר לראות את שרתי ה-MCP המופעלים (BigQuery,‏ Notebooks,‏ Cloud SQL וכו') שמאפשרים לסוכני AI ליצור אינטראקציה מאובטחת עם הנתונים שלכם.
    • מיומנויות: אפשר לעיין במיומנויות מוגדרות מראש שמספקות לסוכנים יכולות ייעודיות למשימות מורכבות שקשורות לנתונים.

החלונית &#39;הגדרות סוכן הנתונים&#39;

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

4. Discover Your Data

הגיע הזמן להסביר את הרקע. הנה תיאור המצב: סמנכ"ל הכספים אומר שערך ההזמנה הממוצע ירד ב-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 (ערכת סוכני נתונים), לוחצים על Universal Search (חיפוש אוניברסלי) בקטע CATALOG (קטלוג).
  2. בתיבת החיפוש, מקלידים pet_profiles ומקישים על Enter.
  3. בתוצאות החיפוש, לוחצים על התוצאה PostgreSQL Table (טבלת PostgreSQL) של pet_profiles (במכונת Cloud SQL של הפרויקט). שימו לב שהאקורדיון בסרגל הצד מתרחב אוטומטית ומראה בדיוק איפה הטבלה נמצאת בעץ מסד הנתונים. עכשיו לוחצים על הטבלה customers שנמצאת ממש מעליה בעץ כדי לפתוח את הפרטים שלה, ומעיינים בכרטיסיות סכימה ופרטים.

סכימה של Cloud SQL

התנסות ב-Cloud Storage Files

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

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

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

Take Stock

אלה הדברים שאתם יודעים עכשיו על סביבת הנתונים:

שירות

טבלאות

מה יש שם

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 מאפשר לכם לשמור על השליטה בנתונים, כי הוא עוצר ומבקש אישור מפורש לפני שהוא ניגש לנתונים. כשמופיעה בקשה, אפשר לבחור באחת מהאפשרויות הבאות:
    • לאפשר הפעם: מאשר שימוש חד-פעמי (האפשרות הזו מתאימה במיוחד לביקורת של שאילתות בסיכון גבוה).
    • אישור תמיד: מאשר שימוש מתמשך בכלי הספציפי הזה במהלך הסשן.
    • לא: חסימה מוחלטת של הפעולה.
    כדי ליהנות מחוויית השימוש הטובה ביותר ב-Labs, בוחרים באפשרות כן, תמיד לאפשר.הערה: ההרשאות ניתנות לכל כלי בנפרד. סביר להניח שיוצגו לך עוד כמה הנחיות בקרוב, כי הסוכן ישתמש בכלים חדשים (כמו 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 של אונליין ואופליין נשארים יציבים על סך של כ-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 יחידות לפחות. זו ההוכחה הניצחת.

Put It All Together

  1. מבקשים מהסוכן לסכם את כל מה שהוא מצא:
    Put it all together. 
    What happened to our average order value?
    
  2. הסוכן מספק סיכום ברור ומובנה שמקשר בין שלושת מקורות הנתונים. ההסבר צריך להיות בסגנון הבא:
    1. הירידה בערך ההזמנה הממוצע היא אמיתית, אבל היא לא מעידה על ירידה בפעילות העסקית הקיימת. הערך הממוצע של הזמנות אונליין ואופליין נשאר יציב ועומד על כ-110$.
    2. בינואר 2025 הופיע ערוץ חדש של B2B-Wholesale, עם כ-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 שהסוכן יצר. חשוב לשים לב לאופן שבו הוא מטפל ב:
    • מודלים של הכנה: עמודות נקיות עם שמות חדשים והפניות למקורות
    • מודל ה-Mart: לוגיקת הצירוף וחישוב הערך הממוצע של הזמנה לפי ערוץ
  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 מורץ ועובר בהצלחה בניסיון הראשון כי הוא הגן באופן יזום על הגרנולריות של טבלת העובדות. כדי לבדוק זאת, אפשר לעיין בארטיפקט של ההסבר המפורט שנוצר, שבו מוצגות לעיתים קרובות תוצאות הבדיקה המוצלחת לצד תוצאות השאילתה.

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

אם הסוכן שלכם עשה את זה, כל הכבוד! ראיתם הנדסת AI פרואקטיבית. כדאי לעיין ב-SQL שנוצר ב-fct_order_analysis.sql כדי לראות איך הוא בנוי, ואז לעבור לקטע הבא, Deliver the Answer.

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

אם המודל כותב קודם naive direct left join, שאילתת ה-SQL עצמה תפעל בהצלחה, אבל חבילת dbt test האוטומטית תזהה את השינוי ברמת הפירוט.

  1. התבוננות בכשל הבדיקה: הכשל ידווח ביומני ההתקדמות של הביצוע בחלונית הצ'אט:
    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, יסביר שצירוף ישיר משנה את הגרעין מ-one-row-per-order ל-one-row-per-order-per-pet, וישכתב את המודל כדי לבצע צבירה מראש של פרופילי חיות המחמד:
    -- 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. בודקים את ההמלצות האסטרטגיות של הסוכן. המלצות מפורטות יכולות לכלול:
    • שינוי מבנה ההנחות: הטמעת רמות מינימום של שולי רווח או הגבלת הנחות בכמות גדולה כדי להגן על שולי הרווח ברמת היחידה.
    • אכיפת כמויות מינימום להזמנה מחמירות יותר: מניעת ניצול לרעה של מחירי סיטונאות על ידי קונים קמעונאיים.
    • דיווח נפרד: אפשר לעקוב אחרי חטיבות קמעונאיות וחטיבות B2B בנפרד כדי למנוע הסתרה של ביצועים קמעונאיים.

הסיפור המלא

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

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

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

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

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

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

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

12. מעולה!

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

מה השגתם

  1. 🔍 נבדקו בשירותים שונים: נכסים שזוהו ונבדקו בתצוגה מקדימה ב-BigQuery, ב-Cloud SQL וב-Cloud Storage באמצעות ערכת כלי הסוכן לנתונים של קטלוג הידע.
  2. 🕵️‍♂️ נבדק באמצעות AI: בוצעה שאילתה בכמה שירותים בשיחה אחת בחלונית הצ'אט באמצעות MCP Tools כדי לאתר את האנומליה בערך ההזמנה הממוצע בקמפיין קידום מכירות B2B בכמות גדולה.
  3. ‫🔧 יצירת צינור נתונים לייצור: יצירת פרויקט dbt מלא לניקוי, לצירוף ולבדיקה של נתוני עסקאות ונתוני לקוחות.
  4. 🐛 תיקנו באג של fan-out: נצפה שהסוכן מאבחן באופן אוטומטי בעיה בגרנולריות ומבצע ארגון הקוד מחדש (Refactoring) במודל ה-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 על הנתונים שלכם