פיתוח אפליקציה עם כמה סוכנים באמצעות MCP Toolbox ל-AlloyDB ול-ADK

1. סקירה כללית

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

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

ערכת פיתוח סוכנים (ADK)

הערכה לפיתוח סוכנים (ADK) היא מסגרת גמישה ומודולרית לפיתוח ולפריסה של סוכני AI. ‫ADK תומך בפיתוח אפליקציות מתוחכמות על ידי שילוב של כמה מופעים נפרדים של סוכנים במערכת מרובת סוכנים (MAS).

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

דברים שכדאי לזכור לגבי מערכת מרובת סוכנים

קודם, חשוב להבין את ההתמחות של כל סוכן ולנמק אותה. – "do you know why you need a specific sub-agent for something", work that out first.

שנית, איך לשלב אותם עם סוכן ראשי כדי לנתב כל אחת מהתשובות ולהבין אותן.

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

מה תפַתחו

בואו נבנה מערכת מרובת סוכנים לטיפול בשיפוצים במטבח באמצעות MCP Toolbox ל-AlloyDB ו-ADK.

  1. סוכן להצעת שיפוץ
  2. סוכן לבדיקת היתרים ותאימות
  3. בדיקת סטטוס ההזמנה (כלי באמצעות MCP Toolbox למסדי נתונים)

סוכן הצעות לשיפוץ, כדי ליצור את מסמך ההצעה לשיפוץ המטבח.

סוכן ההיתרים והתאימות, לטיפול במשימות שקשורות להיתרים ולתאימות.

סוכן לבדיקת סטטוס הזמנה, לבדיקת סטטוס הזמנה של חומרים על ידי עבודה על מסד הנתונים לניהול הזמנות שהגדרנו ב-AlloyDB. אבל כדי להטמיע את הלוגיקה של אחזור הסטטוס של ההזמנות בחלק הזה של מסד הנתונים, נשתמש ב-MCP Toolbox for AlloyDB.

2. MCP

‫MCP מייצג Model Context Protocol (פרוטוקול הקשר של המודל), תקן פתוח שפותח על ידי Anthropic ומספק לסוכני AI דרך עקבית להתחבר לכלים, לשירותים ולנתונים חיצוניים. הוא פועל למעשה כסטנדרט משותף לאפליקציות AI, ומאפשר להן לקיים אינטראקציה חלקה עם מקורות נתונים וכלים שונים.

  1. הוא מבוסס על מודל של לקוח-שרת, שבו אפליקציות AI (המארחים) מריצות את לקוח ה-MCP, שמתקשר עם שרתי ה-MCP.
  2. כשסוכן AI צריך לגשת לכלי או לנתונים ספציפיים, הוא שולח בקשה מובנית ללקוח ה-MCP, שמעביר אותה לשרת ה-MCP המתאים.
  3. מאפשרת למודלים של AI לגשת לנתונים ולכלים חיצוניים בלי לדרוש קוד מותאם אישית לכל שילוב.
  4. מפשטת את התהליך של בניית סוכנים ותהליכי עבודה מורכבים על בסיס מודלים גדולים של שפה (LLM).

MCP Toolbox למסדי נתונים

‫MCP Toolbox for Databases של Google הוא שרת MCP בקוד פתוח למסדי נתונים. הוא תוכנן במיוחד לארגונים ולשימוש בהפקה. הוא מאפשר לכם לפתח כלים בקלות, במהירות ובאופן מאובטח יותר, כי הוא מטפל במורכבויות כמו איגום חיבורים, אימות ועוד.

לאפשר לנציגים שלכם לגשת לנתונים במסד הנתונים!!! איך?

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

ביצועים משופרים: שיטות מומלצות כמו איגום חיבורים, אימות ועוד.

אבטחה משופרת: אימות משולב לגישה מאובטחת יותר לנתונים

יכולת מעקב מקצה לקצה: מדדים ומעקב מוכנים לשימוש עם תמיכה מובנית ב-OpenTelemetry.

חשוב לציין שהתכונה הזו קדמה ל-MCP!!!

‫MCP Toolbox for Databases (ערכת כלים לניהול מרכזי של תהליכים למסדי נתונים) נמצאת בין מסגרת התיאום של האפליקציה מבוססת הסוכנים לבין מסד הנתונים, ומספקת מישור בקרה שמשמש לשינוי, להפצה או להפעלת כלים. הוא מפשט את ניהול הכלים על ידי מתן מיקום מרכזי לאחסון ולעדכון כלים, ומאפשר לכם לשתף כלים בין סוכנים ואפליקציות ולעדכן את הכלים האלה בלי לפרוס מחדש את האפליקציה.

9a9018b8596bd34e.png

יהיה לנו סוכן ראשי שיתאם בין הסוכנים האלה בהתאם לדרישה.

דרישות

  • דפדפן, כמו Chrome או Firefox
  • פרויקט ב-Google Cloud שהחיוב בו מופעל.

3. לפני שמתחילים

יצירת פרויקט

  1. ב-מסוף Google Cloud, בדף לבחירת הפרויקט, בוחרים או יוצרים פרויקט ב-Google Cloud.
  2. הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט

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

  1. לוחצים על הקישור כדי להפעיל את Cloud Shell. אפשר לעבור בין Cloud Shell Terminal (כדי להפעיל פקודות בענן) לבין Editor (כדי ליצור פרויקטים) בלחיצה על הכפתור המתאים ב-Cloud Shell.
  2. אחרי שמתחברים ל-Cloud Shell, בודקים שכבר בוצע אימות ושהפרויקט מוגדר למזהה הפרויקט באמצעות הפקודה הבאה:
gcloud auth list
  1. מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שפקודת gcloud מכירה את הפרויקט.
gcloud config list project
  1. אם הפרויקט לא מוגדר, משתמשים בפקודה הבאה כדי להגדיר אותו:
gcloud config set project <YOUR_PROJECT_ID>
  1. מפעילים את ממשקי ה-API הבאים באמצעות הפקודות הבאות:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
  1. מוודאים שמותקנת גרסה Python 3.9 ומעלה
  2. אפשר לעיין במאמרי העזרה בנושא פקודות gcloud ושימוש בהן.

4. הגדרת ADK

  1. יצירה והפעלה של סביבה וירטואלית (מומלץ)

בטרמינל של Cloud Shell, יוצרים סביבה וירטואלית:

python -m venv .venv

מפעילים את הסביבה הווירטואלית:

source .venv/bin/activate
  1. התקנת ADK
pip install google-adk

5. מבנה הפרויקט

  1. ב-Cloud Shell Terminal, מריצים את הפקודות הבאות אחת אחרי השנייה כדי ליצור תיקיות של root ושל פרויקט:
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
  1. עוברים אל Cloud Shell Editor ויוצרים את מבנה הפרויקט הבא על ידי יצירת הקבצים (ריקים בהתחלה):
renovation-agent/
        __init__.py
        agent.py
        .env

6. קוד המקור

  1. עוברים אל init.py ומעדכנים אותו עם התוכן הבא:
from . import agent
  1. עוברים אל agent.py ומעדכנים את הקובץ עם התוכן הבא מהנתיב הבא:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

ב-agent.py, אנחנו מייבאים תלות נדרשת, מאחזרים פרמטרים של הגדרות מקובץ ‎ .env ומגדירים את root_agent שמשתמש בכלי אחד כדי להפעיל את הכלי toolbox.

  1. עוברים לקובץ requirements.txt ומעדכנים אותו עם התוכן הבא:
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

7. הגדרת מסד נתונים

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

יצירת אשכול ומופע

  1. עוברים לדף AlloyDB במסוף Cloud. דרך קלה למצוא את רוב הדפים ב-Cloud Console היא לחפש אותם באמצעות סרגל החיפוש של המסוף.
  2. בדף הזה, לוחצים על יצירת אשכול:

f76ff480c8c889aa.png

  1. יוצג מסך כמו זה שבהמשך. יוצרים אשכול ומופע עם הערכים הבאים (אם משכפלים את קוד האפליקציה מהמאגר, חשוב לוודא שהערכים זהים):
  • cluster id: "vector-cluster"
  • password: "alloydb"
  • תואם ל-PostgreSQL 16 / מומלץ להשתמש בגרסה הכי עדכנית
  • אזור: "us-central1"
  • רשת: "default"

538dba58908162fb.png

  1. כשבוחרים את רשת ברירת המחדל, מוצג מסך כמו זה שבהמשך.

לוחצים על הגדרת חיבור.
7939bbb6802a91bf.png

  1. משם, בוחרים באפשרות שימוש בטווח כתובות IP שהוקצה באופן אוטומטי ולוחצים על 'המשך'. אחרי שבודקים את המידע, לוחצים על CREATE CONNECTION (יצירת חיבור). 768ff5210e79676f.png

6. הערה חשובה: צריך לשנות את מזהה המופע (שאפשר למצוא בזמן ההגדרה של האשכול או המופע) ל

vector-instance. אם אי אפשר לשנות אותו, חשוב להשתמש במזהה המכונה בכל ההפניות הבאות.

  1. כדי להתכונן להגדרת Toolbox, צריך להפעיל קישוריות של כתובת IP ציבורית במופע AlloyDB שלנו, כדי שהכלי החדש יוכל לגשת למסד הנתונים.
  2. עוברים לקטע Public IP connectivity (קישוריות לכתובת IP ציבורית), מסמנים את התיבה Enable Public IP (הפעלת כתובת IP ציבורית) ומזינים את כתובת ה-IP של מכונת Cloud Shell.
  3. כדי לקבל את כתובת ה-IP של מכונת Cloud Shell, עוברים לטרמינל של Cloud Shell ומזינים ifconfig. מתוך התוצאה, מזהים את כתובת ה-inet של eth0 ומחליפים את 2 הספרות האחרונות ב-0.0 עם גודל מסכה ‎/16'. לדוגמה, זה יכול להיראות כך: XX.XX.0.0/16, כאשר XX הם מספרים.
  4. מדביקים את כתובת ה-IP הזו בתיבת הטקסט 'רשתות' בקטע 'רשתות חיצוניות מורשות' בדף העריכה של המופע.

e4d1045e1255e40f.png

  1. אחרי שמגדירים את הרשת, אפשר להמשיך ליצור את האשכול. לוחצים על CREATE CLUSTER (יצירת אשכול) כדי להשלים את הגדרת האשכול, כמו שמוצג בהמשך:

e06623e55195e16e.png

שימו לב: תהליך יצירת האשכול יימשך כ-10 דקות. אחרי שהפעולה תסתיים בהצלחה, יוצג מסך עם סקירה כללית של האשכול שיצרתם.

הטמעת נתונים

עכשיו צריך להוסיף טבלה עם הנתונים על החנות. עוברים אל AlloyDB, בוחרים את האשכול הראשי ואז את AlloyDB Studio:

847e35f1bf8a8bd8.png

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

  • שם משתמש : "postgres"
  • מסד נתונים : "postgres"
  • סיסמה : "alloydb"

אחרי שתעברו בהצלחה את תהליך האימות ב-AlloyDB Studio, תוכלו להזין פקודות SQL בכלי העריכה. אפשר להוסיף כמה חלונות של Editor באמצעות סימן הפלוס שמימין לחלון האחרון.

91a86d9469d499c4.png

מזינים פקודות ל-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.

  1. עוברים למסוף Cloud Shell ומוודאים שהפרויקט שלכם נבחר ומוצג בהנחיה של המסוף. מריצים את הפקודה הבאה מ-Cloud Shell Terminal כדי להיכנס לספריית הפרויקט:
cd adk-renovation-agent
  1. מריצים את הפקודה הבאה כדי להוריד ולהתקין את ארגז הכלים בתיקייה החדשה:
# 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
  1. עוברים אל 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' למעלה), אנחנו רק מאחזרים את הערך של השדה סטטוס הזמנה כשהשם של החומר תואם לטקסט החיפוש של המשתמש.

הסבר על tools.yaml

מקורות מייצגים את מקורות הנתונים השונים שהכלי יכול ליצור איתם אינטראקציה. מקור מייצג מקור נתונים שכלי יכול ליצור איתו אינטראקציה. אפשר להגדיר את המקורות כמפה בקטע sources בקובץ tools.yaml. בדרך כלל, הגדרת מקור תכיל את כל המידע שנדרש כדי להתחבר למסד הנתונים ולבצע בו פעולות.

כלים מגדירים את הפעולות שהסוכן יכול לבצע – כמו קריאה וכתיבה במקור. כלי מייצג פעולה שהסוכן יכול לבצע, כמו הפעלת הצהרת SQL. אפשר להגדיר כלי כמפה בקטע Tools בקובץ tools.yaml. בדרך כלל, כדי להשתמש בכלי צריך לציין מקור.

פרטים נוספים על הגדרת הקובץ tools.yaml מופיעים במאמר הזה.

הפעלת השרת MCP Toolbox for Databases

מריצים את הפקודה הבאה (מהתיקייה mcp-toolbox) כדי להפעיל את השרת:

./toolbox --tools-file "tools.yaml"

עכשיו, אם תפתחו את השרת במצב תצוגה מקדימה באינטרנט בענן, תוכלו לראות שהשרת של ערכת הכלים פועל עם הכלי החדש שלכם שנקרא get-order-data.

שרת ה-MCP Toolbox פועל כברירת מחדל ביציאה 5000. נשתמש ב-Cloud Shell כדי לבדוק את זה.

לוחצים על Web Preview ב-Cloud Shell כמו שמוצג למטה:

f990712162e8e924.png

לוחצים על 'שינוי יציאה' ומגדירים את היציאה ל-5000 כמו שמוצג למטה. לוחצים על 'שינוי ותצוגה מקדימה'.

d1b9de0c46ecef8a.png

הפלט שיתקבל:

2fdcdac326034d41.png

ב-MCP Toolkit for Databases מוסבר על Python SDK שבעזרתו אפשר לאמת ולבדוק את הכלים. התיעוד שלו זמין כאן. במקום זאת, נדלג על זה ונעבור ישירות לערכת פיתוח הסוכנים (ADK) בקטע הבא, שבה נשתמש בכלים האלה.

פריסת ערכת הכלים ב-Cloud Run

קודם כול, אפשר להתחיל עם שרת ה-MCP Toolbox ולארח אותו ב-Cloud Run. כך נקבל נקודת קצה ציבורית שנוכל לשלב עם כל אפליקציה אחרת ו/או עם אפליקציות של סוכנים. הוראות לאירוח האתר ב-Cloud Run מפורטות כאן. עכשיו נסביר את השלבים העיקריים.

  1. מפעילים טרמינל חדש של Cloud Shell או משתמשים בטרמינל קיים של Cloud Shell. עוברים לתיקיית הפרויקט שבה נמצאים הקובץ הבינארי של ארגז הכלים והקובץ tools.yaml, במקרה הזה adk-renovation-agent
  2. מגדירים את המשתנה PROJECT_ID כך שיצביע על מזהה הפרויקט שלכם ב-Google Cloud.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
  1. הפעלת שירותי Google Cloud הבאים
gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com
  1. ניצור חשבון שירות נפרד שישמש כזהות של שירות Toolbox שנפרוס ב-Google Cloud Run.
gcloud iam service-accounts create toolbox-identity
  1. אנחנו גם מוודאים שלחשבון השירות הזה יש את התפקידים הנכונים, כלומר אפשרות לגשת ל-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
  1. נעלה את הקובץ 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
  1. השלב האחרון בפקודת הפריסה המוכרת ל-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 for Databases שפרסנו זה עתה ב-Cloud Run.

  1. בודקים את קובץ requirements.txt עם המקור ממאגר המידע:

אנחנו כוללים את התלות ב-MCP Toolbox for Databases בקובץ requirements.txt

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

  1. צופים בקובץ agent.py עם הקוד ממאגר המידע:

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

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

9. הגדרת המודל

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

  1. מקבלים מפתח API מ-Google AI Studio.
  2. בשלב הבא, שבו מגדירים את קובץ ‎ .env, מחליפים את <<your API KEY>> בערך מפתח ה-API בפועל.

10. הגדרת משתני ENV

  1. מגדירים את הערכים של הפרמטרים בקובץ התבנית ‎ .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>>

מחליפים את ה-placeholders בערכים שלכם.

11. הרצת הסוכן

  1. בטרמינל, עוברים אל ספריית האב של פרויקט הנציג:
cd renovation-agent
  1. יחסי תלות של התקנות:
pip install -r requirements.txt
  1. כדי להפעיל את הסוכן, מריצים את הפקודה הבאה בטרמינל של Cloud Shell:
adk run .
  1. כדי להריץ אותו בממשק משתמש אינטרנטי שהוקצה על ידי ADK, מריצים את הפקודה הבאה:
adk web
  1. הנחיות לדוגמה:
user>> 

Hello. Check order status for Cement Bags.

12. תוצאה

3e74f6f757e2db2c.png

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

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם במאמר הזה:

  1. במסוף Google Cloud, עוברים לדף Manage resources.
  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

14. מזל טוב

מעולה! יצרתם בהצלחה אפליקציה מרובת סוכנים באמצעות ADK ו-MCP Toolbox למסדי נתונים. מידע נוסף זמין במסמכי העזרה של המוצרים: ערכה לפיתוח סוכנים (ADK) ו-MCP Toolbox for Databases.