מטרה
סוכן ADK של תובנות לניהול נתוני דרכים (RMI) מספק ממשק בשפה טבעית לשליחת שאילתות ולניתוח נתוני RMI שמאוחסנים ב-Google BigQuery. הכלי מבוסס על הערכה לפיתוח סוכנים (ADK) של Google ועל מודלים גדולים של שפה (LLM) של Gemini, והוא מאפשר למשתמשים להפיק תובנות פרקטיות ממערכי נתונים גדולים של רשתות כבישים ותנועה, בלי לכתוב באופן ידני שאילתות SQL מורכבות.
ארכיטקטורה לדוגמה
הארכיטקטורה מורכבת ממערכת היררכית של סוכנים שבה סוכן הבסיס מתכנן ומנהל את האינטראקציות עם המשתמשים, ומקצה משימות ספציפיות של אחזור נתונים ויצירת SQL לסוכן משנה ייעודי.
רכיבים
1. סוכן RMI (סוכן ראשי)
- תפקיד: ממשק שיחה ראשי וכלי לתזמור משימות.
- תחומי אחריות:
- שומר על ההקשר של שיחה רב-שלבית.
- מפרק בקשות בשפה טבעית למשימות אנליטיות שניתן לבצע.
- הסוכן מעביר משימות של אחזור נתונים מובנים לסוכן BigQuery.
- מסנתז את הנתונים הגולמיים בטבלה שהוחזרו על ידי סוכן המשנה לתובנות תמציתיות וקריאות.
2. BigQuery Agent (סוכן משנה)
- תפקיד: סוכן מיוחד לתרגום SQL ולהפעלת מסד נתונים.
- תחומי אחריות:
- מתרגם הוראות בשפה טבעית מהסוכן הראשי לשאילתות SQL מותאמות ב-BigQuery.
- מריץ שאילתות ישירות על מערך הנתונים המוגדר ב-BigQuery.
- החזרת תוצאות שאילתה גולמיות ללא שינוי לסוכן הבסיס.
3. מערך נתונים של BigQuery
- תפקיד: מחסן נתונים אנליטי מבוסס-ענן.
- תוכן: טבלאות של תובנות לניהול נתוני דרכים (RMI), כולל
historical_travel_timeו-recent_roads_data, שמובנות לפי סכימת RMI BigQuery.
4. Google GenAI
- תפקיד: מנוע ליצירת שפה וליצירת נימוקים.
- מודל: משתמש במודלים של Google Gemini (לדוגמה,
gemini-3.5-flash) כדי להפעיל תזמור של סוכנים, הבנה של שפה טבעית ויצירת SQL.
תהליך הביצוע
- בקשת משתמש: המשתמש שולח שאלה בשפה טבעית (לדוגמה, "מה היה זמן הנסיעה הממוצע בכביש 66 אתמול?").
- תכנון ותזמור: סוכן ה-RMI מקבל את הבקשה, מזהה שנדרשים נתוני תנועה אמפיריים ומנסח הוראת אחזור ספציפית לסוכן המשנה.
- הקצאת הרשאות: סוכן ה-RMI מפעיל את סוכן BigQuery עם ההוראה המובנית והאילוצים הרלוונטיים של זמן או מיקום.
- יצירת SQL: הסוכן של BigQuery משתמש בהבנה שלו של סכימת ה-RMI כדי ליצור שאילתת SQL מותאמת של BigQuery.
- ביצוע ואחזור נתונים: סוכן BigQuery מריץ את השאילתה מול מערך הנתונים הבסיסי של BigQuery ומאחזר את הרשומות הטבלאיות שמתקבלות.
- סינתזת תשובות: סוכן BigQuery מחזיר את הנתונים הגולמיים ללא שינוי לסוכן RMI, שמפרש את התוצאות, פותר בעיות של מזהי דרכים חסרים ויוצר תשובה ברורה בשפה טבעית למשתמש.
תרחיש לדוגמה
האתגר
מתכנן ערים צריך להעריך את עומסי התנועה ברשת כבישים מטרופולינית כדי לקבוע אם יש צורך להתאים את התזמון של הרמזורים בשעות השיא של הנסיעה בערב.
תהליך העבודה של הפתרון
שאילתת משתמש: המתכנן מקיים אינטראקציה עם הסוכן באמצעות CLI או ממשק משתמש באינטרנט, ושואל:
"תזהה את 5 המסלולים העמוסים ביותר בדאונטאון בוסטון ביום שישי האחרון בשעה 17:00".
עיבוד על ידי סוכן:
- RMI Agent מנתח את הבקשה. הוא מזהה את מיקום היעד ("מרכז בוסטון"), את חלון הזמן ("יום שישי האחרון בשעה 17:00") ואת המטרה האנליטית ("5 המסלולים העמוסים ביותר"). הפונקציה קובעת שהפקק צריך להימדד כיחס בין משך הנסיעה בזמן אמת לבין משך הנסיעה הסטטי (
duration_in_seconds/static_duration_in_seconds). הוא מעביר את האחריות לאחזור הנתונים אל הסוכן של BigQuery באמצעות הוראה מובנית:
"תמצא קטעי כביש במרכז בוסטון ותחזיר את 5 הקטעים עם יחס העומס הכי גבוה ליום שישי, 9 בינואר 2026, בשעה 17:00".
- RMI Agent מנתח את הבקשה. הוא מזהה את מיקום היעד ("מרכז בוסטון"), את חלון הזמן ("יום שישי האחרון בשעה 17:00") ואת המטרה האנליטית ("5 המסלולים העמוסים ביותר"). הפונקציה קובעת שהפקק צריך להימדד כיחס בין משך הנסיעה בזמן אמת לבין משך הנסיעה הסטטי (
שליפת נתונים:
- סוכן BigQuery מתרגם את ההוראה הזו לשאילתת SQL שמכוונת לטבלה
historical_travel_time, מחשב את יחס העומס ומסדר את התוצאות כדי לזהות את 5 הפלחים המובילים. - הוא מריץ את השאילתה ב-BigQuery.
- BigQuery מחזיר תוצאות גולמיות בפורמט טבלאי, כמו
(segment_id, display_name, duration_in_seconds, static_duration_in_seconds, congestion_ratio).
- סוכן BigQuery מתרגם את ההוראה הזו לשאילתת SQL שמכוונת לטבלה
יצירת תובנות:
- הסוכן של BigQuery מעביר את הרשימה הגולמית של הפלחים בחזרה אל הסוכן של RMI.
- סוכן RMI מנתח את הרשומות, מטפל בפלחי כבישים עם שמות מוצגים חסרים או הפניות שמכילות רק מזהים, ומסכם את הנתונים בסיכום מנהלים.
הסוכן מרכיב את התשובה הסופית:
"ביום שישי, 9 בינואר 2026, בשעה 17:00, משך הנסיעה במסלולים העמוסים ביותר במרכז בוסטון היה ארוך משמעותית ממשך הנסיעה הרגיל במסלולים האלה. אלה 5 הפלחים העמוסים ביותר על סמך היחס בין משך הנסיעה עם נתוני תנועה לבין משך הנסיעה ללא נתוני תנועה: כבישים במסלול/CgkJZ-tTXuNcW4s: זה היה הפלח העמוס ביותר, עם זמן נסיעה של 66 שניות לעומת משך נסיעה ללא נתוני תנועה של 6 שניות בלבד (יחס עומס של 11.0x)..."
סיכום
הארכיטקטורה ההיררכית של סוכן ADK מסוג RMI מנתקת את האינטראקציה השיחתית ואת סינתזת הנרטיב מיצירת SQL ברמה נמוכה ומשליפת נתונים, וכך מגשרת על הפער בין מחסני נתונים גיאו-מרחביים מורכבים לבין משתמשי הקצה. בידוד של ביצוע מסד נתונים בתוך סוכן משנה ייעודי מקדם מודולריות, תחזוקה ובטיחות תפעולית, ומאפשר למקבלי ההחלטות לחלץ במהירות תובנות שניתנות לאימות באמצעות שפה טבעית.
השלבים הבאים
- התאמה אישית לתרחיש השימוש: אפשר להתאים את הארכיטקטורה מרובת הסוכנים ואת עיצוב ההנחיות לתרחישי שימוש ספציפיים שקשורים למיקום גיאוגרפי או לארגון.
- הרחבה באמצעות סוכני תכנון ייעודיים: אפשר לשלב סוכן תכנון ייעודי כדי לתזמן תהליכי עבודה מורכבים של ניתוח נתונים עם כמה שלבים.
- שילוב של מקורות נתונים מרובי-אופנים: כדי להעשיר את התובנות לגבי ניהול התנועה והכבישים, אפשר לשלב נתונים מ-RMI עם שכבות מרחביות נוספות, כמו אירועי מזג אוויר, לוחות זמנים של עבודות בנייה או פידים של אירועים בזמן אמת.
- פריסה בסביבת ייצור: כדי להעביר את הסוכן מאב טיפוס לסביבת ייצור ארגונית, צריך לפעול לפי ההוראות במדריך בנושא רישום וניהול של סוכני ADK שמתארחים ב-Gemini Enterprise Agent Platform.
תורמים
Kel Markert | Cloud Geographer