בדף הזה מתוארות תבניות שילוב להטמעת חוויות של סוכנים לאינטראקציה עם נתונים באפליקציות שלכם. התבניות האלה נעות ברמת המורכבות שלהן, מרכיב צ'אט מוטמע ועד למערכת מרובת סוכנים (MAS) מתוזמרת.
המדריך הזה מיועד לאדריכלי ענן ולמהנדסי נתונים שמתכננים אפליקציות של AI גנרטיבי. אתם צריכים להבין את המושגים הבסיסיים של Google Cloud , ניהול זהויות והרשאות גישה (IAM) וממשקי API בארכיטקטורת REST. כדאי גם להכיר את הארכיטקטורה של מקור הנתונים שבו האפליקציה משתמשת.
סקירה כללית של דפוסי שילוב
המדריך הזה מחולק למסלולים העיקריים הבאים, שכל אחד מהם מבוסס על נקודת ההתחלה שלכם:
- מסלול Looker: בחרו במסלול הזה אם אתם רוצים לספק פונקציונליות של צ'אט באמצעות הטמעת Looker, Looker API או Conversational Analytics API.
- מסלול BigQuery ומסד נתונים: בחרו במסלול הזה אם אתם מפתחים אפליקציה בהתאמה אישית שמשתמשת ב-BigQuery, ב-Data Studio או במסד נתונים תפעולי נתמך.
הטבלה הבאה מסכמת את דפוסי השילוב הזמינים:
| תבנית שילוב | תיאור | מקור הנתונים |
|---|---|---|
| הטמעת iframe של Looker | מוסיף את ממשק צ'אט ברירת המחדל לאפליקציה שדורשת קוד מינימלי. | Looker |
| Looker API וערכות SDK | יוצר ממשק צ'אט בהתאמה אישית שמשתמש ב-Looker API לאימות. | Looker |
| Conversational Analytics API (מקור Looker) | מנהל את סוכני לאינטראקציה עם נתונים של Looker כמשאבים של Google Cloud שפועלים בכמה פלטפורמות ובמערכות מרובות סוכנים (MAS). | Looker |
| Direct API (נציג אחד) | משתמש בשילוב ישיר של API לתהליכי מענה על שאלות בטקסט. | BigQuery, מסדי נתונים, Looker |
| Direct API (orchestrator) | מנתב שאילתות בין ה-API לכלים אחרים באמצעות קריאה להפעלת פונקציות. | BigQuery, מסדי נתונים, Looker |
ADK (מבוסס-סכימה) עם BigQueryToolset |
מפיק תובנות במהירות מהפניות בטבלה באמצעות הכלי ask_data_insights. |
BigQuery |
ADK (מנוהל) עם DataAgentToolset |
שליחת שאילתות לסוכנים מוגדרים מראש לאינטראקציה עם נתונים שמשתמשים בכלי ask_data_agent כדי להבטיח התנהגות עקבית. |
BigQuery, מסדי נתונים, Looker |
| ADK (סטרימינג בהתאמה אישית) | תמיכה בסטרימינג בזמן אמת של תרשימים ו-SQL באמצעות מחלקת סוכן בהתאמה אישית. | BigQuery, מסדי נתונים, Looker |
MCP עם McpToolset או ToolboxToolset |
מקשר בין אפליקציות לבין כלי נתונים שמשתמשים ב-Model Context Protocol (MCP). | BigQuery, Looker |
| שרת MCP מרוחק של Conversational Analytics API | שער גישה מאובטח ומאוחד שמאפשר לסוכני בסיס בפלטפורמות AI של צד שלישי ובפלטפורמות בניהול Google (כמו Gemini Enterprise) לגלות סוכנים לאינטראקציה עם נתונים ייעודיים ב- Google Cloudולתקשר איתם. | BigQuery, מסדי נתונים, Looker |
| פרוטוקול A2A | מאפשר שיתוף פעולה מאובטח בין סוכנים ייעודיים שפועלים במערכות שונות. | תלוי-מסגרת |
אפשרויות שילוב ב-Looker
אם אתם משתמשים ב-Looker, אתם יכולים לספק למשתמשים את Looker Conversational Analytics באמצעות התבניות הבאות:
- הטמעה באמצעות מסגרות iframe: תבנית עם תכנות מינימלי שמוסיפה את ממשק צ'אט ברירת המחדל לאפליקציה קיימת.
- פיתוח באמצעות Looker API וערכות SDK: גישה גמישה שמאפשרת לפתח ממשק משתמש בהתאמה אישית באמצעות אימות וניהול סוכנים ב-Looker.
- שימוש ב-Conversational Analytics API: שילוב ישיר עם ה-API שמאפשר להשתמש בסוכנים לאינטראקציה עם נתונים בכמה פלטפורמות של Google Cloud .
סיכום של תבניות השילוב של Looker
בטבלה הבאה מופיע סיכום של דפוסי השילוב העיקריים של Looker:
| דוגמת קוד | למי זה מתאים | יתרונות | לתשומת ליבכם |
|---|---|---|---|
| הטמעה באמצעות iframe: שיטה עם תכנות מינימלי להוספה מהירה של חוויית הצ'אט הרגילה של Looker לאפליקציה. | צוותים שצריכים חוויית ניתוח נתוני שיחות שמוכנה לייצור עם פיתוח מינימלי בהתאמה אישית. |
|
|
| פיתוח באמצעות Looker API וערכות SDK: גישה גמישה לפיתוח ממשק צ'אט בהתאמה אישית, תוך שמירה על האימות וניהול הנציגים ב-Looker. | צוותים שצריכים חוויית משתמש מותאמת אישית בצ'אט, אבל רוצים להשאיר את אימות המשתמשים וניהול הנציגים בסביבה העסקית של Looker. התבנית הזו מתאימה במיוחד לאפליקציות שכבר משתמשות בהטמעה של Looker או ב-API. |
|
|
| שימוש ב-Conversational Analytics API: שילוב ישיר עם ה-API כדי לנהל נציגים כמשאבים ברמת הענן. | לקוחות Looker שצריכים ניידות בין פלטפורמות שונות בשביל הסוכנים שלהם לאינטראקציה עם נתונים. |
|
|
הטמעה באמצעות iframe
אתם יכולים להטמיע את ניתוח הנתונים בשיחה כ-iframe כדי לספק את חוויית הצ'אט מחוץ לממשק המשתמש של Looker. התבנית הזו היא דרך ישירה לספק ניתוח נתונים של שיחות, שלא דורשת פיתוח ממשק משתמש בהתאמה אישית, תזמור בקצה העורפי או ניהול מצב API. כדי להשתמש בתבנית הזו, מוסיפים לאפליקציה כתובת URL בפורמט מוגדר מראש.
Embed SDK של Looker מספק כלים לניהול משימות כמו יצירת כתובות URL מאובטחות, ניהול מחזור החיים של iframe והעברת אירועי JavaScript בין האפליקציה המארחת לבין ה-iframe. כדי להטמיע את הדף Agents, את הדף Conversations או שיחה ספציפית, מוסיפים לאפליקציה כתובת URL בפורמט מוגדר מראש.
אפשר להשתמש בשיטות האימות הבאות לתוכן מוטמע:
- הטמעה פרטית: מאמתת משתמשים באמצעות פרטי הכניסה הקיימים שלהם ל-Looker. כשמגדירים את כתובת ה-URL להטמעה כמקור ה-iframe, המשתמשים נכנסים באמצעות חשבונות Looker שלהם. השיטה הזו אוכפת באופן אוטומטי תפקידים קיימים, גישה לתוכן והרשאות ברמת הנתונים, כמו מסנני גישה או הענקת גישה, בלי צורך בהגדרת IAM נוספת או במיפוי טוקנים.
- הטמעה חתומה: מאמתת משתמשים דרך האפליקציה באמצעות כניסה יחידה (SSO). אתם יוצרים כתובת URL חתומה שכוללת את נתיב התוכן של Conversational Analytics, שמאפשר לכם לציין באופן דינמי בדיוק אילו הרשאות להעניק.
פיתוח באמצעות Looker API וערכות SDK
כדי ליהנות מחוויית צ'אט גמישה יותר, אתם יכולים להשתמש בשיטות של ConversationalAnalytics ב-Looker API או להשתמש ב-Looker SDK כדי ליצור אפליקציה בהתאמה אישית. הגישה הזו מאפשרת לכם ליצור ממשק משתמש מותאם אישית שמתקשר ישירות עם נקודות הקצה של Looker.
השילוב עם Looker API מספק את היתרונות הבאים:
- אתם מנהלים את האימות רק באמצעות Looker. אין צורך לבצע אימות בנפרד באמצעות Conversational Analytics API.
- באפליקציות שכבר משתמשות בהטמעה של Looker או ב-API, התבנית הזו מפשטת את ארכיטקטורת הפרויקט כי היא לא דורשת מנגנוני אימות משניים ומבטלת את הצורך לנהל סוכנים לאינטראקציה עם נתונים חיצוניים.
- יש לכם שליטה מלאה על ממשק הצ'אט, על תהליך השיחה ועל האופן שבו האפליקציה מציגה את התוצאות (למשל, תרשימים וטבלאות).
להטמעה של קובץ עזר, עיינו במדריך ל-Looker API שמשתמש בשיטות ConversationalAnalytics ב-GitHub.
שימוש ב-Conversational Analytics API עם נתונים מ-Looker
אתם יכולים לשלב ישירות עם Conversational Analytics API בכתובת geminidataanalytics.googleapis.com אם אתם צריכים לבצע אחת מהמשימות הבאות:
- לשתף את אותו סוכן לאינטראקציה עם נתונים בכמה פלטפורמות של Google Cloud , כמו אפליקציות אינטרנט בהתאמה אישית, Google Chat ו-Gemini Enterprise.
- לשלב מקורות נתונים של Looker עם מקורות נתונים של BigQuery או של מסדי נתונים תפעוליים במערכת מרובת סוכנים (MAS) אחת.
- אתם יכולים לנהל את הסוכן לאינטראקציה עם נתונים כמשאב ברמת הענן, שנשלט על ידי IAM ולא על ידי מודל ההרשאות של Looker.
למידע נוסף על דפוסי ארכיטקטורה נפוצים של Conversational Analytics API, קראו את המאמר אפשרויות שילוב של BigQuery ומסדי נתונים.
אפשרויות שילוב עם BigQuery, Data Studio ומסדי נתונים
בקטע הזה מתוארים דפוסי ארכיטקטורה של אפליקציות שמשתמשות ב-BigQuery, ב-Data Studio או ב Google Cloud מסדי נתונים תפעוליים נתמכים כדי ליצור חוויות בהתאמה אישית באמצעות Conversational Analytics API.
אם אתם משתמשים ב-Conversational Analytics API עם מקור נתונים של Looker, התבניות שמתוארות בקטע הזה רלוונטיות גם לשילוב שלכם.
Conversational Analytics API מספק את השיטות העיקריות הבאות לאינטראקציה עם נתונים:
- השיטה
chat: תומכת ב-BigQuery, ב-Looker, ב-Data Studio ובמסדי נתונים תפעוליים. - השיטה
queryData: תומכת במסדי נתונים תפעוליים כמו AlloyDB, GoogleSQL ל-Spanner, Cloud SQL ל-MySQL ו-Cloud SQL ל-PostgreSQL.
כשמפתחים אפליקציה בהתאמה אישית, אפשר להשתמש באחת או יותר מתבניות השילוב הבאות:
- שילוב ישיר של API: גישה מותאמת אישית שמספקת את הגמישות הרבה ביותר, אבל מחייבת אתכם לבנות את התשתית לאימות, לניהול שיחות ולניתוח תשובות.
- תזמור מבוסס-מסגרת (ADK): גישה שמשתמשת בערכה לפיתוח סוכנים (ADK) לניתוב של כמה סוכנים, להפעלת כלים ולניהול מצבים.
- שילוב אנכי (MCP): גישה שמשתמשת ב-Model Context Protocol (MCP) כדי לספק דרך אחידה לחבר אפליקציות מבוססות-AI לכלים ולמקורות נתונים בסביבות שונות.
- תזמור אופקי (A2A): גישה שמשתמשת בפרוטוקול Agent-to-Agent (A2A) כדי לאפשר לסוכנים ייעודיים במערכות שונות לשתף פעולה באופן מאובטח בלי צורך בקוד שילוב מותאם אישית.
סיכום של תבניות השילוב של BigQuery ומסד הנתונים
בטבלה הבאה מפורטים דפוסי ההטמעה הספציפיים של BigQuery ומסדי נתונים תפעוליים:
| דוגמת קוד | למי זה מתאים | יתרונות | לתשומת ליבכם |
|---|---|---|---|
| שילוב של סוכן יחיד (API ישיר): דפוס שבו האפליקציה קוראת ישירות ל-API כדי להחזיר תובנות ממקורות הנתונים. | אפליקציות, אבות טיפוס או מיקרו-שירותים עם נציג אחד שדורשים שליטה ישירה בכל קריאה ל-API. |
|
|
| תזמור בהתאמה אישית (API ישיר): דפוס שמשתמש בסוכן ברמה הבסיסית ובקריאה להפעלת פונקציות כדי לנתב שאילתות בין Conversational Analytics API לבין כלים או שירותים אחרים. | אפליקציות שמשלבות שאילתות נתונים עם משימות אחרות, כמו אימייל או מסמכים, ברצף שיחה אחד. |
|
|
שילוב מבוסס-סכימה עם BigQueryToolset (ADK): דפוס שמשתמש בהפניות לטבלאות כדי להחזיר תובנות מנתונים במהירות. |
יצירת אב טיפוס מהיר, כלים פנימיים שבהם משילות המידע פחות קריטית, או תרחישים שבהם תובנות מנתונים הן אחת מכמה יכולות של סוכן ADK. |
|
|
שילוב מנוהל עם DataAgentToolset (ADK): תבנית ששולחת שאילתה לסוכן לאינטראקציה עם נתונים שהוגדר מראש, על ידי הפניה למזהה של הסוכן. |
אפליקציות בסביבת ייצור שדורשות גישה עקבית לנתונים, או מערכות מרובות סוכנים שבהן הסוכן לאינטראקציה עם נתונים הוא רכיב מהימן שאפשר לעשות בו שימוש חוזר. |
|
|
| סוכני משנה בהתאמה אישית (ADK): תבנית שמשתמשת במחלקת סוכנים בהתאמה אישית כדי להתחבר ישירות ל-API ולהעביר נתונים בסטרימינג בחזרה למשתמש. | אפליקציות שגלויות למשתמשים שבהן זמן אחזור קצר הוא בעדיפות גבוהה, או צינורות עיבוד נתונים עם כמה סוכנים שבהם אחזור הנתונים מזין סוכנים במורד הזרם. |
|
|
| Model Context Protocol (MCP): דפוס שמשתמש בתקן פתוח כדי לחבר אפליקציות מבוססות-AI למקורות נתונים ולכלים בסביבות שונות. | ארגונים שצריכים יכולת פעולה הדדית של כלים בכמה לקוחות AI וסביבות פיתוח משולבות (IDE), או צוותים שצריכים גישה לאותם כלי נתונים ממסגרת ADK, מסביבות פיתוח משולבות ומאפליקציות בהתאמה אישית. |
|
|
| סוכן לסוכן (A2A): דפוס שמשתמש בפרוטוקול A2A, תקן פתוח שמאפשר לסוכנים ייעודיים במערכות שונות לשתף פעולה בצורה מאובטחת בלי צורך בקוד שילוב מותאם אישית. | סביבות ארגוניות מבוזרות מאוד, שבהן סוכן ניתוב מרכזי צריך להקצות משימות לסוכנים לאינטראקציה עם נתונים שפועלים במערכות או ברשתות שונות. |
|
|
שילוב ישיר של API
שילוב ישיר של API מספק שליטה פרטנית על הלוגיקה והארכיטקטורה של האפליקציה, אבל מחייב אתכם לבנות את התשתית התומכת. בגישה הזו, אתם אחראים למשימות כמו אימות, ניהול השיחה, ניתוח התשובות והפריסה.
הנושאים בקטע הזה:
- שילוב של נציג אחד: דפוס שבו האפליקציה שלכם קוראת ישירות ל-Conversational Analytics API כדי להחזיר תובנות ממקורות הנתונים שלכם.
- שילוב של כלי תזמור בהתאמה אישית: דפוס מתקדם שמשתמש בנציג בסיסי ובקריאה להפעלת פונקציות כדי לנתב שאילתות בין Conversational Analytics API.
שילוב של נציג אחד
בשילוב של נציג אחד, הקצה העורפי שלכם שולח קריאה ישירות ל-Conversational Analytics API באמצעות REST או ספריית לקוח, ומעביר את השאילתה וההקשר של המשתמש. התבנית הזו מתאימה לאפליקציות פשוטות, כמו אפליקציות אינטרנט, כלי צ'אט פנימיים או מיקרו-שירותים, שמשתמשים בתהליך פשוט של טקסט לתשובה. אפשר להשתמש בגישה הזו גם ליצירת אב טיפוס ולעבודה על הוכחת היתכנות.
התבנית הזו תומכת גם בצ'אט עם שמירת מצב, שבו Google מנהלת את היסטוריית השיחות, וגם בצ'אט בלי שמירת מצב, שבו האפליקציה שלכם מנהלת את ההיסטוריה.
להטמעות לדוגמה, עיינו במדריך למתחילים של Conversational Analytics API או בהדגמה של Conversational Analytics API ב-GitHub.
שילוב של כלי מותאם אישית לניהול סוכנים
בגישה הזו, אתם יוצרים נציג ברמה הבסיסית שמשמש כנקודת הכניסה הראשית וכמתאם של האפליקציה. הסוכן הראשי משתמש במודל Gemini רגיל שמצויד בכלים באמצעות קריאה להפעלת פונקציות. כשמשתמש שואל שאלה שקשורה לנתונים, הנציג הראשי שולח קריאת API לכלי Conversational Analytics API, מקבל את התוצאה ויכול להמשיך בתהליך החשיבה או לקרוא לכלים אחרים בהמשך.
הקריאה להפעלת פונקציות כוללת את השלבים הבאים:
- הצהרה: מגדירים סכימות של כלים כאובייקטים מסוג
FunctionDeclarationשכוללים הגדרות של פרמטרים. - הפעלה: המודל מחזיר הודעת
functionCallמובנית שמכילה את שם הפונקציה והארגומנטים. - ביצוע: האפליקציה מבצעת את הקריאה ל-API ומחזירה את התוצאה בהודעת
FunctionResponse. - סינתזה: מודל Gemini משתמש בתוצאה כדי ליצור תשובה סופית או כדי לקבוע את הפעולה הבאה.
הגישה הזו מתאימה לאפליקציות שבהן המשתמשים עשויים לבקש תובנות מנתונים לצד משימות אחרות. לדוגמה, משתמש יכול לבקש מהנציג "תראה לי את נתוני המכירות, ואז תנסח אימייל לצוות המכירות". הסוכן הראשי יכול להעביר את השאלה לגבי הנתונים ל-Conversational Analytics API ולהשתמש בכלים אחרים למשימות שלא קשורות לנתונים.
כדי לראות הטמעה לדוגמה, עיינו בדפים orchestrate או multimodal בהדגמה של Conversational Analytics API ב-GitHub.
תזמור מבוסס-מסגרת (ADK)
הערכה לפיתוח סוכנים (ADK) היא מסגרת שמתמקדת בקוד ליצירת סוכני AI, שמנהלת את המורכבות של ניתוב בין כמה סוכנים, הפעלת כלים וניהול מצבים. מסגרת ה-ADK היא אותה מסגרת שמפעילה את Gemini Enterprise.
באמצעות ה-ADK, אתם יכולים לקשר את Conversational Analytics API לכלים ולסוכנים אחרים כדי לבצע פעולות מורכבות.
הנושאים בקטע הזה:
- שילוב מבוסס-סכימה: תבנית שמשתמשת בכלי
ask_data_insightsמתוך ערכת הכליםBigQueryToolsetכדי להחזיר תובנות מנתונים מהפניות לטבלאות ב-BigQuery. - שילוב מנוהל: דפוס שמשתמש בכלי
ask_data_agentמתוך ערכת הכליםDataAgentToolsetכדי לשלוח שאילתות לסוכן לאינטראקציה עם נתונים שהוגדר מראש, באמצעות הפניה למזהה של הסוכן. - שילוב מתקדם של חוויית המשתמש עם סוכני משנה בהתאמה אישית: דפוס שמשתמש ברכיב של סוכן משנה בהתאמה אישית כדי להתחבר ישירות ל-Conversational Analytics API ולהעביר נתונים בחזרה למשתמש באופן אסינכרוני.
שילוב מבוסס-סכימה עם BigQueryToolset
ערכת הכלים BigQueryToolset במסגרת ADK כוללת כלי ask_data_insights מובנה. כדי להשתמש בכלי הזה, מעבירים אליו את שמות הטבלאות ואת השאלה של המשתמש, והוא קורא ל-Conversational Analytics API באמצעות הקשר מוטבע.
כשמפעילים את הכלי, הוא שולח בקשה ללא שמירת מצב (stateless) שכוללת את ההפניות שצוינו לטבלאות ב-BigQuery אל Conversational Analytics API. ה-API מסיק את סכימת מסד הנתונים, יוצר ומריץ את שאילתת ה-SQL ומחזיר תשובה בטקסט. התוצאה מועברת בחזרה לסוכן ADK כתגובה של הכלי.
התבנית הזו היא דרך יעילה להוסיף במהירות ניתוח שיחות לסוכן. עם זאת, מכיוון שהקריאה ל-API היא ללא שמירת מצב (stateless) וללא פיקוח, ה-API יוצר SQL שמבוסס כולו על סכימת הטבלה ללא אמצעי הגנה סמנטיים. התבנית הזו מהירה יותר לפריסה, אבל היא מסוכנת יותר ללוגיקה עסקית בסביבת ייצור שבה חלים מוסכמות למתן שמות, לוגיקה עסקית או אמצעי בקרת גישה.
שילוב מנוהל עם DataAgentToolset
ערכת הכלים DataAgentToolset במסגרת ADK מספקת שילוב מובנה שמפנה לסוכן לאינטראקציה עם נתונים מוגדר מראש לפי המזהה שלו. סוכן ה-ADK מעביר את השאלה של המשתמש לכלי ask_data_agent, שקורא ל-Conversational Analytics API עם ההקשר שצוין של הסוכן לאינטראקציה עם נתונים.
אתם יכולים ליצור סוכן לאינטראקציה עם נתונים באופן פרוגרמטי באמצעות Conversational Analytics API או דרך Agent Catalog במסוף Google Cloud . סוכן לאינטראקציה עם נתונים כולל את הרכיבים הבאים:
- מקורות ידע: טבלאות, תצוגות או פונקציות בהגדרת המשתמש (UDF) שהסוכן יכול לשלוח אליהן שאילתות
- הקשר מובנה: תיאורים של טבלאות ועמודות שעוזרים לסוכן להבין את הנתונים הבסיסיים
- הוראות: הנחיות נוספות לסוכן לגבי פירוש מקורות הנתונים ושליחת שאילתות אליהם
- שאילתות מאומתות: שאילתות SQL שעברו אימות מראש ומשמשות כדוגמאות לשאלות נפוצות
- מילון מונחים: הגדרות של מונחים עסקיים שעוזרות לסוכן להבין את השפה הספציפית לתחום
למדריך מפורט על יצירת סוכנים באמצעות Agent Catalog, ראו את ה-Codelab ניתוח שיחות ב-BigQuery.
הסוכן מוגדר כיחידה מנוהלת, ולכן הוא משתמש באותו לוגיקה, הקשר ומעקות בטיחות מהימנים, לא משנה איזו אפליקציה או סוכן משנה קוראים לו.
שילוב מתקדם של חוויית המשתמש עם סוכני משנה בהתאמה אישית
ערכות הכלים BigQueryToolset ו-DataAgentToolset לא מחזירות תוצאות למשתמש עד שעיבוד בקשת ה-API מסתיים. מסגרת ה-ADK מתייחסת ל-API ככלי שחוסם תשובות עד להשלמת הפעולה, ולכן שאילתות ארוכות יותר עלולות להשאיר את המשתמשים בלי משוב.
אם אתם מפתחים אפליקציות שבהן זמן תגובה קצר הוא בעדיפות גבוהה, או שבהן אחזור הנתונים מזין סוכנים בהמשך התהליך, אתם יכולים ליצור מחלקת סוכנים בהתאמה אישית ב-ADK שמתחברת ישירות ל-Conversational Analytics API ומעבירה נתונים בסטרימינג באופן אסינכרוני בחלקים בחזרה למשתמש. התבנית הזו תומכת בסוגי התשובות הבאים כשהם נוצרים:
- הודעות על תהליך החשיבה: תהליך החשיבה של הסוכן לאינטראקציה עם נתונים כשהוא מפרש את השאלה.
- הודעות על התקדמות: עדכוני סטטוס במהלך אחזור הנתונים ממקורות הנתונים.
- יצירת שאילתות: שאילתת ה-SQL או Looker שנוצרה, שמועברת בסטרימינג בזמן שהיא נוצרת.
- Data: תוצאות הנתונים בפורמט JSON.
- תצוגה חזותית: מפרטים של תרשימי Vega-Lite.
- סיכום: התשובה הסופית שמבוססת על טקסט.
כדי לראות את הרשימה המלאה של סוגי הנתונים שמוחזרים, עיינו בסוג SystemMessage במאמרי העזרה של ה-API.
הגישה האסינכרונית הזו מבטיחה שהמשתמשים לא יצטרכו לחכות עד שתהליך אחזור הנתונים המורכב יסתיים לגמרי. בזמן שהסוכן לאינטראקציה עם נתונים מעבד את השאילתה, הוא משתף באופן רציף עדכונים מצטברים – כמו סיכומי טקסט, נתונים גולמיים או הגדרות של תרשימים – בסביבת עבודה זמנית ומשותפת. לאחר מכן, אפשר להציג את הנתונים האלה למשתמש בזמן אמת ולשתף אותם עם סוכני משנה ייעודיים כדי לבצע משימות נוספות.
כדי לראות הטמעה לדוגמה שכוללת סוכן ברמה הבסיסית, סוכן משני לנתונים וסוכן להמחשה חזותית, עיינו בהדגמה של סטרימינג ב-ADK ב-GitHub.
שילוב אנכי (MCP)
Model Context Protocol (MCP) הוא תקן פתוח שמספק לאפליקציות מבוססות-AI דרך אחידה להתחבר לכלים ולמקורות נתונים חיצוניים. MCP יוצר ממשק סטנדרטי בין מודלי AI לבין הכלים שבהם הם משתמשים.
הנושאים בקטע הזה:
- שרת MCP מרוחק של Conversational Analytics API: מתאר איך סוכני בסיס של צד שלישי וסוכני בסיס בניהול Google מתקשרים עם Conversational Analytics API דרך שער שרת ה-MCP המרוחק, כולל הפצת זהויות וגישה לשיטות API.
- MCP Toolbox for Databases: כלים מובנים להתחברות ל-BigQuery ול-Looker.
- תבניות הטמעה של MCP לארכיטקטורות עצמאיות ו-ADK: מתאר תבניות לשימוש ב-MCP כשרת עצמאי או בתהליך עבודה של ערכת פיתוח לסוכנים (ADK).
שרת MCP מרוחק של Conversational Analytics API
Conversational Analytics API מספק שרת MCP מרוחק בכתובת https://geminidataanalytics.googleapis.com/mcp, שמופעל על ידי שרת MCP מנוהל של Google. השער הזה מספק ממשק מאובטח ומאוחד של HTTP ו-Server-Sent Events (SSE), שמאפשר לסוכני הבסיס בפלטפורמות AI של צד שלישי ובפלטפורמות בניהול Google (כמו Gemini Enterprise) לגלות סוכנים לאינטראקציה עם נתונים ייעודיים ב- Google Cloudולתקשר איתם.
סקירה כללית על התקשורת של הסוכן הראשי
התקשורת בין סוכן בסיס חיצוני או סוכן בסיס שמנוהל על ידי Google לבין Conversational Analytics API כוללת שלושה תפקידים נפרדים:
- מפעילי נתונים יוצרים ומגדירים סוכנים לאינטראקציה עם נתונים ברמת היקף מסוים בממשקים של ניתוח נתונים בממשק שיחה, כותבים תיאורים ברורים של מקורות הנתונים שכל סוכן יכול לגשת אליהם ושל השאלות שהוא יכול לענות עליהן, ומשתפים את הסוכנים האלה עם משתמשים עסקיים.
- אדמינים של הפלטפורמה רושמים חיבור MCP בהתאמה אישית בפלטפורמה מבוססת הסוכנים שלהם, שמפנה לנקודת הקצה
https://geminidataanalytics.googleapis.com/mcp. האדמינים מגדירים את פרטי הכניסה של לקוח OAuth 2.0 (מזהה לקוח וסוד לקוח) באמצעות נקודת הקצה של ההרשאה של Google (https://accounts.google.com/o/oauth2/v2/auth), נקודת הקצה של הטוקן (https://oauth2.googleapis.com/token) והיקפי ההרשאות הנדרשים (https://www.googleapis.com/auth/geminidataanalyticsו-https://www.googleapis.com/auth/bigquery.readonly). - משתמשים עסקיים שואלים שאלות בשפה טבעית בפלטפורמה של הסוכנים. במקום לשלוח שאילתות ישירות למסדי נתונים גולמיים, סוכן הבסיס של הפלטפורמה (מודל ה-LLM המתזמר) מתקשר עם שרת ה-MCP המרוחק של Conversational Analytics API כדי לגלות סוכנים לאינטראקציה עם נתונים רלוונטיים, לנתב את השאלה של המשתמש לסוכן הנתונים המתאים ולהחזיר את התשובה המסונתזת.
הפצת זהויות
כדי לשמור על משילות המידע (data governance) בארגון כשבקשות מגיעות מסוכני שורש חיצוניים או של צד שלישי, שרת ה-MCP המרוחק אוכף הפצת זהויות מקצה לקצה:
- אימות בהקצאת הרשאות למשתמשים: כשמשתמש עסקי יוצר אינטראקציה עם נציג הבסיס, הפלטפורמה מבוססת-הסוכנים מאמתת את המשתמש באמצעות הרשאה באמצעות OAuth 2.0 תלת-שלבית, וכוללת את טוקן הגישה של OAuth בהקצאת הרשאות למשתמשים בכותרות ה-HTTP של הבקשות שנשלחות לשער ה-MCP.
- העברת פרטי כניסה של משתמשי קצה (EUC): שרת ה-MCP המרוחק מאמת את האסימון ומעביר את פרטי הכניסה של משתמשי הקצה דרך שכבת Conversational Analytics API למנועי הנתונים הבסיסיים, כמו BigQuery, Spanner, AlloyDB ו-Cloud SQL.
- גישה מנוהלת לנתונים: מכיוון שהשאילתות פועלות באמצעות הזהות של המשתמש המאומת ולא באמצעות חשבון שירות משותף, מקורות הנתונים הבסיסיים אוכפים באופן אוטומטי את ההרשאות הקיימות של IAM, את כללי מדיניות האבטחה ברמת השורה וברמת העמודה ואת גבולות הגישה המנוהלת לנתונים. המשתמשים יכולים לגלות רק סוכנים לאינטראקציה עם נתונים ולשלוח שאילתות רק על קבוצות נתונים שכבר יש להם הרשאת גישה אליהם.
- מודל שתי הזהויות של Looker: ב-BigQuery ובמסדי נתונים תפעוליים, השאילתות מופעלות באמצעות פרטי הכניסה של המשתמש הספציפי שהועברו דרך Google OAuth. בסוכנים לאינטראקציה עם נתונים שמבוססים על Looker, האימות מתבצע באמצעות מודל של שתי זהויות: טוקן Google OAuth של המשתמש מאשר את הגישה לסוכן לאינטראקציה עם נתונים ב-Google IAM, אבל השאילתה מופעלת ב-Looker באמצעות פרטי כניסה שסופקו למשתמש Looker API (מועברים בבלוק פרטי הכניסה של כלי הצ'אט). הגישה למודל Looker, ההרשאות והכללים ברמת השורה משקפים את משתמש ה-API שהוגדר, ולא את הזהות של משתמש הקצה הספציפי ב-Looker.
איך נציגי שורש ניגשים לשיטות API
כשלקוח MCP מתחבר אל https://geminidataanalytics.googleapis.com/mcp, הוא קורא ל-method הרגיל של MCP tools/list כדי לייבא באופן דינמי את הסכימות של הכלים שנחשפות על ידי Conversational Analytics API. הסוכן הראשי יוצר אינטראקציה עם Conversational Analytics API באמצעות הפעלת הכלים והמשאבים האלה של MCP, שממופים ישירות לשיטות הבסיסיות של API בארכיטקטורת REST:
| כלי או משאב MCP | ה-Method הממופה ב-Conversational Analytics API | איך הסוכן הראשי משתמש בו |
|---|---|---|
list_data_agents |
projects.locations.dataAgents.list
|
מאתר סוכנים זמינים לאינטראקציה עם נתונים. הסוכן הראשי מעביר את היעד PROJECT_ID (וגם LOCATION) ומקבל רשימה של סוכנים פעילים לאינטראקציה עם נתונים שלמשתמש יש הרשאת גישה אליהם, כולל המזהה והתיאור של כל סוכן. הסוכן הראשי מעריך את התיאורים האלה כדי לקבוע איזה סוכן לאינטראקציה עם נתונים יכול לענות על השאלה של המשתמש. טיפ: כדאי לכלול את PROJECT_ID היעד בהוראות המערכת המותאמות אישית של הנציג הראשי, כדי שהנציג הראשי לא יבקש ממשתמשים עסקיים לספק מזהה פרויקט. |
|
(או המשאב |
projects.locations.dataAgents.get
|
בדיקת המטא-נתונים וההקשר של סוכן ספציפי לאינטראקציה עם נתונים. הסוכן הראשי מעביר את היעד AGENT_ID כדי לאחזר פרטי הגדרות – כמו טבלאות ב-BigQuery מקושרות, הוראות מערכת, מילוני מונחים או שאילתות מאומתות – כשהתיאורים של הסוכנים לא מספיקים כדי לנתב פרומפט מורכב. |
chat
|
projects.locations.chat
|
משמש כשרת proxy לביצוע שאילתות בשיחה. כדי לשלוח שאילתה לסוכן לאינטראקציה עם נתונים שזוהה, הסוכן הראשי מעביר את |
MCP Toolbox for Databases
אתם יכולים לגשת ל-Conversational Analytics API גם דרך שרת MCP Toolbox for Databases בקוד פתוח. השרת הזה מספק כלים מובנים שתואמים ל-MCP וחושפים את השיטה chat ב-Conversational Analytics API:
-
bigquery-conversational-analytics: כולל את השיטהchatלמקורות נתונים של BigQuery. -
looker-conversational-analytics: עוטף את השיטהchatלמקורות נתונים של Looker.
MCP היא שכבת יכולת פעולה הדדית שחושפת את יכולות הניתוח ככלים ללקוחות שתואמים ל-MCP, ולא כמודל הפעלה נפרד של Conversational Analytics API.
תבניות הטמעה של MCP לארכיטקטורות עצמאיות ו-ADK
אפשר להטמיע את MCP באמצעות התבניות הבאות:
| דוגמת קוד | פרטים |
|---|---|
| MCP עצמאי (ללא ADK) |
אתם יכולים להשתמש בשרת MCP Toolbox for Databases כשרת עצמאי כדי להתחבר לכל לקוח שתואם ל-MCP. התבנית הזו משמשת בדרך כלל למשימות הבאות:
|
| MCP ב-ADK |
מסגרת ה-ADK מספקת את המנגנונים הבאים לשילוב שרתי MCP בתהליכי עבודה של סוכנים:
|
אתם יכולים גם ליצור שרתי MCP באמצעות FastMCP framework כדי לחשוף כלים שנוצרו באמצעות ADK framework לכל לקוח שתואם ל-MCP. כך סוכני ה-ADK שלכם יהיו זמינים ככלים בסביבות אחרות.
בוחרים תבנית שילוב שעונה על הדרישות הארכיטקטוניות הספציפיות של האפליקציה:
- שימוש בערכות הכלים המובנות של הערכה לפיתוח סוכנים (ADK), כמו
BigQueryToolsetאוDataAgentToolset, מספק שילוב הדוק יותר ללא תלות בשרתים חיצוניים. הגישה הזו מתאימה למערכות שקיימות כולן במסגרת של ADK. - השימוש בכלים ב-MCP Toolbox מאפשר יכולת פעולה הדדית בין לקוחות שתואמים ל-MCP. הגישה הזו מתאימה במיוחד לכלי נתונים שצריכים לשרת כמה אפליקציות של צרכנים או סביבות פיתוח משולבות (IDE) של צד שלישי.
תזמור אופקי (A2A)
פרוטוקול Agent-to-Agent (A2A) הוא תקן פתוח שמאפשר לסוכנים ייעודיים במערכות שונות לתקשר ולשתף פעולה באופן מאובטח, בלי צורך בקוד שילוב מותאם אישית.
ככל שהמערכות גדלות, ארגונים פורסים לעיתים קרובות כמה סוכנים ייעודיים שמבוססים על מסגרות או תשתיות ענן שונות. A2A יוצרת שכבת העברת הודעות אוניברסלית לסוכנים האוטונומיים האלה. במקום להשתמש בממשקי API מותאמים אישית, כל סוכן מפרסם כרטיס סוכן, שהוא פרופיל שניתן לגלות שמפרט את היכולות של הסוכן, את פורמטי הנתונים הנתמכים ואת דרישות האבטחה.
כשהסוכן המרכזי או סוכן אחר צריך נתונים לניתוח, הוא מעביר את המשימה בצורה מאובטחת לסוכן לאינטראקציה עם נתונים באמצעות הודעות A2A מובנות. הסוכן לאינטראקציה עם נתונים מעבד את הבקשה באופן אוטונומי ומחזיר את הממצאים, וכך מפריד בין לוגיקת הביצוע לבין מבקש הנתונים.
כדי ללמוד איך למצוא כרטיסי סוכנים לאינטראקציה עם נתונים, לשלוח הודעות ולהציג באופן שוטף פריטי מידע מובנים באמצעות פרוטוקול A2A, ראו ניהול סוכני נתונים באמצעות A2A.
בחירת תבנית שילוב
בטבלה הבאה אפשר להשוות בין המורכבות, הפיקוח והיכולות של כל דפוס שילוב.
רמות המורכבות מוגדרות כך:
- נמוכה: תבניות שדורשות קוד מינימלי בהתאמה אישית ומסתמכות על ממשקי משתמש או כלים מובנים מראש.
- בינוני: דפוסים שדורשים פיתוח מותאם אישית של ממשק קצה (frontend) ושילוב של API או SDK, אבל לא דורשים תשתית מורכבת של תזמור בקצה העורפי (backend).
- גבוהה: תבניות שדורשות פיתוח אפליקציות Full Stack, ניהול מצב שיחה, כמה שכבות אימות או תשתית תזמור ביניים.
- משתנה: תבניות שבהן המורכבות תלויה בשיטת השילוב הבסיסית שבחרתם.
| תבנית שילוב | מורכבות | התאמה אישית | ניהול סוכנים | בקרת גישה | כמה סוכנים | סטרימינג | ניידות |
|---|---|---|---|---|---|---|---|
| הטמעת iframe של Looker | נמוכה | נמוכה | מנוהלות באמצעות Looker | Looker | לא | מובנה | Looker בלבד |
| Looker API וערכות SDK | בינוני | גבוהה | מנוהלות באמצעות Looker | Looker | לא | מובנה | Looker בלבד |
| Conversational Analytics API עם מקור Looker | משתנה | גבוהה | מנוהלות באמצעות ה-API | Looker ו-IAM | כן | כן | כל Google Cloud משטח |
| נציג יחיד (API ישיר) | בינוני | גבוהה | מנוהלות באמצעות ה-API | IAM | לא | כן (נתמך) | כל Google Cloud משטח |
| תזמור בהתאמה אישית | גבוהה | גבוהה מאוד | מנוהלות באמצעות ה-API | IAM | גלילה ידנית | גלילה ידנית | כל Google Cloud משטח |
מבוסס-סכימה עם BigQueryToolset (ADK) |
נמוכה | בינוני | ללא (הסקת סכימה) | IAM | כן (ADK) | לא (חסימה) | המערכת האקולוגית של ADK |
מנוהל באמצעות DataAgentToolset (ADK) |
נמוכה | בינוני | מנוהלות באמצעות ה-API | IAM | כן (ADK) | לא (חסימה) | המערכת האקולוגית של ADK |
| סוכן משנה מותאם אישית לסטרימינג (ADK) | גבוהה | גבוהה מאוד | מנוהלות באמצעות ה-API | IAM | כן (ADK) | כן (בהתאמה אישית) | המערכת האקולוגית של ADK |
| חשבון MCP עצמאי | בינוני | בינוני | ללא (הסקת סכימה) | IAM | לא | לא | כל לקוח MCP |
| MCP ב-ADK | בינוני | גבוהה | ללא (הסקת סכימה) | IAM | כן (ADK) | לא | לקוחות ADK ו-MCP |
| פרוטוקול A2A | גבוהה | גבוהה | תלוי-מסגרת | IAM | כן | כן | בפלטפורמות שונות |
המאמרים הבאים
- מידע ולמידה על הארכיטקטורה והמושגים העיקריים של Conversational Analytics API
- להבין את ניהול המצבים של סוכנים לאינטראקציה עם נתונים ואיך ה-API מנהל את ההקשר של השיחה.
- איך מאמתים מקור נתונים ומקשרים אותו
- איך יוצרים ומגדירים סוכן באמצעות HTTP
- איך יוצרים ומגדירים נציג באמצעות Python
- מידע נוסף על הנחיית ההתנהגות של הנציג באמצעות הקשר שנוצר
- הבנת בקרת גישה עם IAM עבור Conversational Analytics API
- איך להגן על הסוכנים לאינטראקציה עם נתונים ועל השיחות באמצעות CMEK
- איך מתזמרים סוכנים לאינטראקציה עם נתונים באמצעות A2A
- איך מעבדים תשובות של נציגים למקורות נתונים של Looker