מידע על Codelab זה
1. סקירה כללית
סוכן הוא תוכנית אוטונומית שמדברת עם מודל AI כדי לבצע פעולה מבוססת-יעד באמצעות הכלים וההקשר שיש לה, והיא מסוגלת לקבל החלטות אוטונומיות שמבוססות על אמת.
כשיש באפליקציה כמה סוכנים שפועלים יחד באופן אוטונומי ועם זאת יחד כנדרש כדי לעמוד במטרה הרחבה יותר שלה, כאשר כל אחד מהסוכנים יודע ומומחה בתחום ספציפי, האפליקציה הופכת למערכת עם סוכנים מרובים.
ערכת הפיתוח של סוכן (ADK)
ערכת פיתוח סוכנים (ADK) היא מסגרת גמישה ומודולרית לפיתוח ופריסה של סוכני AI. ADK תומך ביצירת אפליקציות מתוחכמות על ידי שילוב של כמה מכונות סוכנים נפרדות למערכת של סוכנים מרובים (MAS).
ב-ADK, מערכת עם סוכנים מרובים היא אפליקציה שבה סוכנים שונים, שפעמים רבות יוצרים היררכיה, משתפים פעולה או מתואמים כדי להשיג מטרה גדולה יותר. למבנה כזה של האפליקציה יש יתרונות משמעותיים, כולל מודולריות משופרת, התמחות, שימוש חוזר, יכולת תחזוקה ויכולת להגדיר תהליכי בקרה מובְנים באמצעות סוכני תהליכי עבודה ייעודיים.
דברים שכדאי לזכור לגבי מערכת עם כמה סוכנים
קודם, חשוב להבין את ההתמחות של כל סוכן ולדעת למה היא מתאימה לו. — "האם ברור לך למה דרושה לך סוכנות משנה ספציפית למשהו", קודם צריך להבין את זה.
השלב השני: איך משלבים אותם עם סוכן ברמה הבסיסית כדי לנתב ולנתח כל אחת מהתשובות.
שלישי, יש כמה סוגים של ניתוב סוכנים שמפורטים במסמכי התיעוד האלה. חשוב לבדוק איזו מהן מתאימה לתהליך של האפליקציה. בנוסף, מהם ההקשרים והמצבים השונים שנדרשים לבקרת התהליך במערכת עם כמה סוכנים.
מה תפַתחו
נלמד איך ליצור מערכת עם כמה סוכנים לטיפול בשיפוצים של מטבחים באמצעות MCP Toolbox ל-AlloyDB ול-ADK.
- סוכן של הצעת שיפוץ
- סוכן לבדיקת רישיונות ותאימות
- בדיקת סטטוס ההזמנה (כלי באמצעות MCP Toolbox למסדי נתונים)
סוכן של הצעת שיפוץ, כדי ליצור את מסמך הצעת השיפוץ של המטבח.
סוכן רישיונות ותאימות, לטיפול ברישיונות ובמשימות שקשורות לתאימות.
Order Status Check Agent, כדי לבדוק את סטטוס ההזמנה של חומרי הגלם באמצעות מסד הנתונים לניהול ההזמנות שהגדרתנו ב-AlloyDB. אבל בחלק הזה של מסד הנתונים, נשתמש ב-MCP Toolbox for AlloyDB כדי להטמיע את הלוגיקה של אחזור הסטטוס של ההזמנות.
2. MCP
MCP הוא ראשי תיבות של Model Context Protocol, תקן פתוח שפותח על ידי Anthropic ומספק דרך עקבית לסוכני AI להתחבר לכלים, לשירותים ולנתונים חיצוניים. הוא פועל למעשה כתקן משותף לאפליקציות AI, ומאפשר להן לקיים אינטראקציה חלקה עם כלים ומקורות נתונים שונים.
- השירות מבוסס על מודל לקוח-שרת, שבו אפליקציות AI (המארחים) מפעילות את לקוח MCP, שמתקשר עם שרתי MCP.
- כשסוכן AI צריך לגשת לכלי או לנתונים ספציפיים, הוא שולח בקשה מובנית ללקוח MCP, שמעביר אותה לשרת MCP המתאים.
- מאפשרת למודלים של AI לגשת לנתונים ולכלים חיצוניים בלי צורך בקוד מותאם אישית לכל שילוב.
- הפלטפורמה מפשטת את תהליך היצירה של סוכני AI ותהליכי עבודה מורכבים על גבי מודלים גדולים של שפה (LLMs).
Toolbox של MCP למסדי נתונים
MCP Toolbox for Databases של Google הוא שרת MCP בקוד פתוח למסדי נתונים. הוא תוכנן ברמה ארגונית באיכות הפקה. הוא מאפשר לפתח כלים בקלות, במהירות ובצורה מאובטחת יותר, על ידי טיפול בבעיות מורכבות כמו מאגר חיבורים, אימות ועוד.
לתת לנציגים גישה לנתונים במסד הנתונים שלכם!!! איך?
פיתוח פשוט יותר: שילוב כלים בסוכנות בפחות מ-10 שורות קוד, שימוש חוזר בכלים בין כמה סוכנויות או מסגרות עבודה ופריסה קלה יותר של גרסאות חדשות של כלים.
ביצועים משופרים: שיטות מומלצות כמו מאגר חיבורים, אימות ועוד.
אבטחה משופרת: אימות משולב לגישה מאובטחת יותר לנתונים
יכולת תצפית מקצה לקצה: מדדים ומעקב מובנים עם תמיכה מובנית ב-OpenTelemetry.
חשוב לציין שהאירוע הזה התרחש לפני תוכנית MCP!!!
MCP Toolbox for Databases נמצא בין מסגרת התזמור של האפליקציה של הסוכנות לבין מסד הנתונים, ומספק מישור בקרה שמשמש לשינוי, להפצה או להפעלה של כלים. הכלי הזה מפשט את ניהול הכלים על ידי מתן מיקום מרכזי לאחסון ולעדכון של כלים, ומאפשר לכם לשתף כלים בין סוכנים ואפליקציות ולעדכן את הכלים האלה בלי שתצטרכו לפרוס מחדש את האפליקציה.
יהיה לנו סוכן ברמה הבסיסית (root) שינהל את הסוכנים האלה על סמך הדרישה.
דרישות
3. לפני שמתחילים
יצירת פרויקט
- בדף לבחירת הפרויקט במסוף Google Cloud, בוחרים פרויקט ב-Google Cloud או יוצרים פרויקט חדש.
- הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט
אם אתם קוראים את המאמר הזה ואתם רוצים לקבל זיכויים שיעזרו לכם להתחיל להשתמש ב-Google Cloud וב-ADK, תוכלו לממש את הזיכויים דרך הקישור הזה. כדי לממש את השובר, אפשר לפעול לפי ההוראות כאן. לתשומת ליבך, הקישור הזה תקף רק עד סוף מאי.
- לוחצים על הקישור הזה כדי להפעיל את Cloud Shell. כדי לעבור בין Cloud Shell Terminal (להרצת פקודות ב-Cloud) לבין Cloud Shell Editor (ליצירת פרויקטים), לוחצים על הלחצן המתאים ב-Cloud Shell.
- אחרי שמתחברים ל-Cloud Shell, בודקים שכבר בוצע אימות ושהמזהה של הפרויקט מוגדר כפרויקט באמצעות הפקודה הבאה:
gcloud auth list
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שהפקודה gcloud מכירה את הפרויקט.
gcloud config list project
- אם הפרויקט לא מוגדר, משתמשים בפקודה הבאה כדי להגדיר אותו:
gcloud config set project <YOUR_PROJECT_ID>
- מריצים את הפקודות הבאות כדי להפעיל את ממשקי ה-API הבאים:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
- מוודאים שמותקנת גרסה 3.9 ואילך של Python
- במסמכי העזרה מפורטות הפקודות של gcloud והשימוש בהן.
4. הגדרת ADK
- יצירה והפעלה של סביבה וירטואלית (מומלץ)
יוצרים סביבה וירטואלית בטרמינל של Cloud Shell:
python -m venv .venv
מפעילים את הסביבה הווירטואלית:
source .venv/bin/activate
- התקנת ADK
pip install google-adk
5. מבנה הפרויקט
- בטרמינל של Cloud Shell, מריצים את הפקודות הבאות אחת אחרי השנייה כדי ליצור תיקיות ברמה הבסיסית (root) ובפרויקט:
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
- עוברים לעורך של Cloud Shell ויוצרים את קבצי מבנה הפרויקט הבא (תחילה הם יהיו ריקים):
renovation-agent/
__init__.py
agent.py
.env
6. קוד המקור
- עוברים לקובץ init.py ומעדכנים אותו בתוכן הבא:
from . import agent
- עוברים לקובץ agent.py ומעדכנים אותו בתוכן הבא מהנתיב הבא:
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py
בקובץ agent.py אנחנו מייבאים את יחסי התלות הנדרשים, מאחזרים את פרמטרים ההגדרה מקובץ .env ומגדירים את root_agent שמארגן את 3 סוכני המשנה שרצינו ליצור באפליקציה הזו. יש כמה כלים שיעזרו לכם לבצע את הפונקציות המרכזיות והתומכות של סוכני המשנה האלה.
- מוודאים שיש לכם קטגוריה ב-Cloud Storage
זהו המיקום שבו יישמר מסמך ההצעה שהסוכן יוצר. יוצרים אותו ומעניקים גישה כדי שמערכת הסוכנים המרובים שנוצרה באמצעות Vertex AI תוכל לגשת אליו. כך עושים את זה:
https://cloud.google.com/storage/docs/creating-buckets#console
- נותנים לקטגוריה את השם '
next-demo-store
' או כל שם אחר שאפשר לתת לה. חשוב לזכור את השם, כי תצטרכו לעדכן את הערך של STORAGE_BUCKET בקובץ .env (בשלב 'הגדרת משתני ENV'). - יוצרים אותו במיקום us-central1
- כדי להגדיר גישה לקטגוריה, נכנסים למסוף Cloud Storage ולקטגוריית האחסון (במקרה שלנו שם הקטגוריה הוא next-demo-storage: https://console.cloud.google.com/storage/browser/next-demo-storage.
עוברים אל Permissions (הרשאות) -> View Principals (הצגת חשבונות משתמשים) -> Grant Access (מתן גישה). בוחרים באפשרות Principals כ-'allUsers' ובאפשרות Role כ-'Storage Object User'.
Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
7. הגדרת מסד נתונים
באחד הכלים שבהם ה-ordering_agent משתמש, שנקרא check_status, אנחנו ניגשים למסד הנתונים של ההזמנות ב-AlloyDB כדי לקבל את סטטוס ההזמנות. בקטע הזה נגדיר את האשכולות והמכונות של מסדי הנתונים של AlloyDB.
יצירת אשכול ומכונה
- נכנסים לדף AlloyDB במסוף Cloud. דרך קלה למצוא את רוב הדפים במסוף Cloud היא לחפש אותם באמצעות סרגל החיפוש במסוף.
- בוחרים באפשרות CREATE CLUSTER (יצירת אשכול) בדף הזה:
- יוצג מסך כמו זה שבהמשך. יוצרים אשכול ומכונה עם הערכים הבאים (חשוב לוודא שהערכים תואמים במקרה שמשכפלים את קוד האפליקציה מהמאגר):
- cluster id: "
vector-cluster
" - password: "
alloydb
" - תואם ל-PostgreSQL 16 / מומלץ להשתמש בגרסה העדכנית ביותר
- אזור: "
us-central1
" - Networking: "
default
"
- כשבוחרים את רשת ברירת המחדל, מופיע מסך כמו זה שבהמשך.
בוחרים באפשרות הגדרת חיבור.
- לאחר מכן, בוחרים באפשרות Use an automatically allocated IP range (שימוש בטווח כתובות IP שהוקצה באופן אוטומטי) וממשיכים. אחרי שבודקים את המידע, בוחרים באפשרות 'יצירת חיבור'.
6. הערה חשובה: חשוב לשנות את מזהה המכונה (שאפשר למצוא בזמן ההגדרה של האשכולות או המכונות) ל
vector-instance
. אם אין לכם אפשרות לשנות אותו, חשוב לזכור להשתמש במזהה המכונה בכל ההפניות הבאות.
- כהכנה להגדרת Toolbox, נפעיל את האפשרות Enable public IP (הפעלת כתובת IP ציבורית) במכונה של AlloyDB כדי שהכלי החדש יוכל לגשת למסד הנתונים.
- עוברים לקטע Public IP connectivity (קישוריות של כתובת IP ציבורית), מסמנים את התיבה Enable Public IP (הפעלת כתובת IP ציבורית) ומזינים את כתובת ה-IP של המכונה ב-Cloud Shell.
- כדי לקבל את כתובת ה-IP של המכונה ב-Cloud Shell, עוברים ל-Cloud Shell Terminal ומזינים ifconfig. בתוצאה, מזהים את כתובת ה-inet של eth0 ומחליפים את שתי הספרות האחרונות ב-0.0 עם גודל מסכה של '/16'. לדוגמה, הפורמט הוא 'XX.XX.0.0/16', כאשר XX הם מספרים.
- מדביקים את כתובת ה-IP הזו בתיבת הטקסט 'רשתות' בקטע 'רשתות חיצוניות מורשות' בדף העריכה של המכונה.
- אחרי שמגדירים את הרשת, אפשר להמשיך ליצור את האשכולות. לוחצים על CREATE CLUSTER כדי להשלים את הגדרת האשכולות, כפי שמתואר בהמשך:
לתשומת ליבכם: יצירת האשכולות תימשך כ-10 דקות. לאחר השלמת הפעולה, אמור להופיע מסך עם סקירה כללית של האשכולות שיצרתם.
הטמעת נתונים
עכשיו הגיע הזמן להוסיף טבלה עם הנתונים על החנות. עוברים אל AlloyDB, בוחרים את האשכול הראשי ואז את AlloyDB Studio:
יכול להיות שתצטרכו להמתין עד לסיום יצירת המכונה. לאחר מכן, נכנסים ל-AlloyDB באמצעות פרטי הכניסה שיצרתם כשיצרתם את האשכולות. משתמשים בנתונים הבאים כדי לבצע אימות ב-PostgreSQL:
- שם משתמש : "
postgres
" - מסד נתונים : '
postgres
' - סיסמה : "
alloydb
"
אחרי שתבצעו אימות ב-AlloyDB Studio, תוכלו להזין פקודות SQL בעורך. אפשר להוסיף כמה חלונות של הכלי באמצעות סמל הפלוס שמשמאל לחלון האחרון.
מזינים פקודות ל-AlloyDB בחלונות העריכה, באמצעות האפשרויות Run (הפעלה), Format (פורמט) ו-Clear (מחיקה) לפי הצורך.
צור טבלה
אפשר ליצור טבלה באמצעות משפט ה-DDL הבא ב-AlloyDB Studio:
-- Table DDL for Procurement Material Order Status
CREATE TABLE material_order_status (
order_id VARCHAR(50) PRIMARY KEY,
material_name VARCHAR(100) NOT NULL,
supplier_name VARCHAR(100) NOT NULL,
order_date DATE NOT NULL,
estimated_delivery_date DATE,
actual_delivery_date DATE,
quantity_ordered INT NOT NULL,
quantity_received INT,
unit_price DECIMAL(10, 2) NOT NULL,
total_amount DECIMAL(12, 2),
order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
delivery_address VARCHAR(255),
contact_person VARCHAR(100),
contact_phone VARCHAR(20),
tracking_number VARCHAR(100),
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
quality_check_passed BOOLEAN, -- Indicates if the material passed quality control
quality_check_notes TEXT, -- Notes from the quality control check
priority VARCHAR(20), -- e.g., "High", "Medium", "Low"
project_id VARCHAR(50), -- Link to a specific project
receiver_name VARCHAR(100), -- Name of the person who received the delivery
return_reason TEXT, -- Reason for returning material if applicable
po_number VARCHAR(50) -- Purchase order number
);
הוספת רשומות
מעתיקים את ביטוי השאילתה insert
מהסקריפט database_script.sql
שצוין למעלה לעורך.
לוחצים על Run.
עכשיו, כשמערך הנתונים מוכן, נגדיר את MCP Toolbox for Databases בתור מישור הבקרה של כל האינטראקציות שלנו עם מסדי הנתונים של ההזמנות ב-AlloyDB.
8. כלי MCP להגדרת מסדי נתונים
Toolbox נמצא בין מסגרת התזמור של האפליקציה לבין מסד הנתונים, ומספק מישור בקרה שמשמש לשינוי, להפצה או להפעלה של כלים. הכלי הזה מאפשר לכם לנהל את הכלים בצורה פשוטה יותר, כי הוא מספק לכם מיקום מרכזי לאחסון ולעדכון של הכלים. כך תוכלו לשתף כלים בין סוכנים ואפליקציות ולעדכן את הכלים האלה בלי שתצטרכו לפרוס מחדש את האפליקציה.
אפשר לראות שאחד מהמסדי נתונים שנתמכים ב-MCP Toolbox for Databases הוא AlloyDB, וכבר הקצינו אותו בקטע הקודם, אז נמשיך להגדיר את Toolbox.
- עוברים אל Cloud Shell Terminal ומוודאים שהפרויקט נבחר ומוצג בהודעה של מסוף. מריצים את הפקודה הבאה בטרמינל של Cloud Shell כדי לנווט לספריית הפרויקט:
cd adk-renovation-agent
- מריצים את הפקודה הבאה כדי להוריד ולהתקין את Toolbox בתיקייה החדשה:
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
- עוברים ל-Cloud Shell Editor (למצב עריכת קוד) ובתיקיית השורש של הפרויקט מוסיפים קובץ בשם tools.yaml.
sources:
alloydb-orders:
kind: "alloydb-postgres"
project: "<<YOUR_PROJECT_ID>>"
region: "us-central1"
cluster: "<<YOUR_ALLOYDB_CLUSTER>>"
instance: "<<YOUR_ALLOYDB_INSTANCE>>"
database: "<<YOUR_ALLOYDB_DATABASE>>"
user: "<<YOUR_ALLOYDB_USER>>"
password: "<<YOUR_ALLOYDB_PASSWORD>>"
tools:
get-order-data:
kind: postgres-sql
source: alloydb-orders
description: Get the status of an order based on the material description.
parameters:
- name: description
type: string
description: A description of the material to search for its order status.
statement: |
select order_status from material_order_status where lower(material_name) like lower($1)
LIMIT 1;
בחלק של השאילתה (עיינו בפרמטר 'statement' למעלה), אנחנו רק מאחזרים את הערך של השדה order_status כששם החומר תואם לטקסט החיפוש של המשתמש.
הסבר על tools.yaml
מקורות מייצגים את מקורות הנתונים השונים שכלי יכול לקיים איתם אינטראקציה. מקור מייצג מקור נתונים שכלי יכול ליצור איתו אינטראקציה. אפשר להגדיר את המקורות כמפה בקטע sources בקובץ tools.yaml. בדרך כלל, הגדרת מקור תכלול את כל המידע הנדרש כדי להתחבר למסד הנתונים ולבצע בו פעולות.
כלים מגדירים את הפעולות שסוכן יכול לבצע – כמו קריאה וכתיבה למקור. כלי מייצג פעולה שהסוכן יכול לבצע, כמו הפעלת משפט SQL. אפשר להגדיר את הכלים כמפה בקטע tools בקובץ tools.yaml. בדרך כלל, כלי מחייב מקור שבו יבוצעו הפעולות.
פרטים נוספים על הגדרת קובץ tools.yaml מופיעים במסמכי העזרה האלה.
מריצים את MCP Toolbox for Databases Server
מריצים את הפקודה הבאה (מהתיקייה mcp-toolbox) כדי להפעיל את השרת:
./toolbox --tools-file "tools.yaml"
עכשיו, אם תפתחו את השרת במצב תצוגה מקדימה באינטרנט בענן, אתם אמורים לראות את שרת Toolbox פועל עם הכלי החדש שנקרא get-order-data.
שרת MCP Toolbox פועל כברירת מחדל ביציאה 5000. נשתמש ב-Cloud Shell כדי לבדוק את זה.
לוחצים על Web Preview ב-Cloud Shell כמו שמוצג בהמשך:
לוחצים על 'שינוי יציאה' ומגדירים את היציאה ל-5000 כפי שמוצג בהמשך, ואז לוחצים על 'שינוי ותצוגה מקדימה'.
הפלט אמור להיות:
ב-MCP Toolkit for Databases מתואר SDK של Python שבעזרתו אפשר לאמת ולבדוק את הכלים. התיעוד שלו זמין כאן. נדלג על זה ונעבור ישירות ל-Agent Development Kit (ADK) בקטע הבא, שבו נשתמש בכלים האלה.
פריסת Toolbox ב-Cloud Run
קודם כול, נתחיל עם השרת של MCP Toolbox ונתאר איך מארחים אותו ב-Cloud Run. כך נקבל נקודת קצה ציבורית שאפשר לשלב עם כל אפליקציה אחרת ו/או עם אפליקציות הסוכן. כאן מפורטות ההוראות לאירוח הקוד הזה ב-Cloud Run. עכשיו נעבור על השלבים העיקריים.
- פותחים טרמינל Cloud Shell חדש או משתמשים בטרמינל Cloud Shell קיים. עוברים לתיקיית הפרויקט שבה נמצאים קובץ ה-toolbox הבינארי והקובץ tools.yaml, במקרה הזה adk-renovation-agent
- מגדירים את המשתנה PROJECT_ID כך שיצביע על מזהה הפרויקט ב-Google Cloud.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
- הפעלת שירותי Google Cloud האלה
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
secretmanager.googleapis.com
- נוצר חשבון שירות נפרד שישמש כזהות של שירות Toolbox שנעביר ל-Google Cloud Run.
gcloud iam service-accounts create toolbox-identity
- אנחנו גם מוודאים שלחשבון השירות הזה יש את התפקידים הנכונים, כלומר יכולת לגשת ל-Secret Manager ולדבר עם AlloyDB.
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
--role roles/secretmanager.secretAccessor
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
--role roles/alloydb.client
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
--role roles/serviceusage.serviceUsageConsumer
- מעלים את הקובץ tools.yaml כסוד:
gcloud secrets create tools --data-file=tools.yaml
אם כבר יש לכם סוד ואתם רוצים לעדכן את גרסת הסוד, מריצים את הפקודה הבאה:
gcloud secrets versions add tools --data-file=tools.yaml
מגדירים משתנה סביבה לקובץ האימג' בקונטיינר שבו רוצים להשתמש ב-Cloud Run:
export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
- השלב האחרון בפקודת הפריסה המוכרת ל-Cloud Run:
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated
הפקודה הזו אמורה להתחיל את תהליך הפריסה של שרת Toolbox עם קובץ tools.yaml המוגדר שלנו ב-Cloud Run. אם הפריסה הושלמה, אמורה להופיע הודעה דומה לזו:
Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.
OK Creating Revision...
OK Routing traffic...
OK Setting IAM Policy...
Done.
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app
הכול מוכן לשימוש בכלי החדש שנפרס באפליקציה של הסוכנות שלך!!!
נקשר את הכלי של Toolbox לסוכן שלנו!!!
כבר יצרנו את המקור למערכת שלנו עם כמה סוכנים. נעדכן את הרשימה הזו ונוסיף לה כלי חדש של MCP Toolbox למסדי נתונים שפרוסנו ב-Cloud Run.
- משנים את הקובץ requirements.txt באמצעות המקור מהמאגר:
אנחנו כוללים את התלות ב-MCP Toolbox for Databases בקובץ requirements.txt
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt
- משנים את הקובץ agent.py באמצעות הקוד מהמאגר:
אנחנו כוללים את הכלי שמפעיל את נקודת הקצה של Toolbox כדי לאחזר את נתוני ההזמנה של חומר ספציפי שהוזמנה.
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py
9. הגדרת מודל
היכולת של הנציג להבין בקשות של משתמשים וליצור תשובות מבוססת על מודל שפה גדול (LLM). הסוכן צריך לבצע שיחות מאובטחות לשירות ה-LLM החיצוני הזה, שדורש פרטי כניסה לאימות. ללא אימות תקין, שירות ה-LLM ידחה את הבקשות של הסוכן והסוכן לא יוכל לפעול.
- מקבלים מפתח API מ-Google AI Studio.
- בשלב הבא, שבו מגדירים את הקובץ .env, מחליפים את הערך
<<your API KEY>>
בערך בפועל של מפתח ה-API.
10. הגדרת משתני ENV
- מגדירים את הערכים של הפרמטרים בקובץ .env של התבנית. במקרה שלי, הקובץ .env מכיל את המשתנים הבאים:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET=next-demo-store <<or your storage bucket name>>
מחליפים את ה-placeholders בערכים שלכם.
11. הפעלת הסוכן
- עוברים לספריית ההורה של פרויקט הנציג באמצעות הטרמינל:
cd renovation-agent
- יחסי תלות של התקנות:
pip install -r requirements.txt
- כדי להפעיל את הסוכן, אפשר להריץ את הפקודה הבאה במסוף של Cloud Shell:
adk run .
- כדי להריץ אותו בממשק משתמש אינטרנטי שהוקצה על ידי ADK, אפשר להריץ את הפקודה הבאה:
adk web
- אפשר לבדוק את ההנחיות הבאות:
user>>
Hello. Check order status for Cement Bags.
13. הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת הפוסט הזה, יש לפעול לפי השלבים הבאים:
- נכנסים לדף Manage resources במסוף Google Cloud.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
14. מזל טוב
מעולה! יצרתם אפליקציה עם כמה סוכנים באמצעות ADK ו-MCP Toolbox for Databases. מידע נוסף זמין במסמכי העזרה של המוצרים: Agent Development Kit ו-MCP Toolbox for Databases.