Deploy an agentic AI application on GKE with the Agent Development Kit (ADK) and Vertex AI

במדריך הזה נדגים איך לפרוס ולנהל אפליקציות של AI/ML אקטיביות בקונטיינרים באמצעות Google Kubernetes Engine ‏ (GKE). אם משלבים את ערכת הפיתוח של Google Agent‏ (ADK) עם Vertex AI כספק של מודל השפה הגדול (LLM), אפשר להפעיל סוכני AI ביעילות ובקנה מידה נרחב. במדריך הזה נסביר איך לוקחים סוכן מבוסס-FastAPI שמבוסס על Gemini ‎2.5 Flash משלב הפיתוח ועד לפריסה בסביבת הייצור ב-GKE.

המדריך הזה מיועד למהנדסי למידת מכונה (ML), למפתחים ולארכיטקטים של ענן שמעוניינים להשתמש ביכולות של Kubernetes לארגון קונטיינרים כדי להפעיל אפליקציות של AI/ML עם AI אקטיבי. מידע נוסף על תפקידים נפוצים ומשימות לדוגמה ב Google Cloud תוכן זמין במאמר תפקידים נפוצים של משתמשים ומשימות ב-GKE.

לפני שמתחילים, חשוב לוודא שמכירים את הנקודות הבאות:

רקע

במדריך הזה משולבות כמה טכנולוגיות של Google כדי ליצור פלטפורמה ניתנת להרחבה ל-AI אקטיבי. ‫GKE מספק את תזמור הקונטיינרים לסוכן, שנוצר באמצעות ה-ADK. כשמשתמשים ב-Vertex AI API להסקת מסקנות ב-LLM, לא צריך חומרת GPU מיוחדת באשכול GKE, כי ההסקה מטופלת על ידי התשתית המנוהלת של Google.

Google Agent Development Kit (ADK)

הערכה לפיתוח סוכנים (ADK) היא מסגרת גמישה ומודולרית לפיתוח ולפריסה של סוכני AI. הערכה לפיתוח סוכנים (ADK) מותאמת ל-Gemini ולסביבת Google, אבל היא מתאימה לכל המודלים, לא תלויה בפריסה ונועדה לתאימות למסגרות אחרות.

מידע נוסף מופיע במאמרי העזרה בנושא ADK.

שירות Kubernetes מנוהל של GKE

‫GKE הוא שירות Kubernetes מנוהל לפריסה, להתאמה לעומס ולניהול של אפליקציות בקונטיינרים. ‫GKE מספק את התשתית הנדרשת, כולל משאבים שניתנים להתאמה, מחשוב מבוזר ורשתות יעילות, כדי להתמודד עם דרישות המחשוב של מודלי LLM.

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

Vertex AI

‫Vertex AI היא פלטפורמת למידת המכונה המאוחדת של Google Cloud, שמאפשרת למפתחים ליצור, לפרוס ולהתאים לעומס מודלים של AI או למידת מכונה. כדי להפעיל אפליקציות של AI אקטיבי ב-GKE,‏ Vertex AI מספק כלים ושירותים חיוניים, כולל גישה למודלים מסוג LLM כמו Gemini 2.5 Flash, תשתית מנוהלת לאימון ולהסקת מסקנות ויכולות MLOps לניהול יעיל של מחזור החיים.

כשמשתמשים במודלים של LLM דרך Vertex AI API, ההסקות של המודלים מתבצעות בתשתית שמנוהלת על ידי Google, ולכן אין צורך במכסות ספציפיות של GPU או TPU באשכול GKE.

מידע נוסף על Vertex AI לאפליקציות AI מבוססות-סוכנים זמין בתיעוד של Vertex AI.

Gemini ‎2.5 Flash

‫Gemini 2.5 Flash מספק תכונות מתקדמות ויכולות משופרות שנועדו לעומסי עבודה של סוכנים, כולל מהירות גבוהה יותר, שימוש מובנה בכלי עבודה, יצירה מולטי-מודאלית וחלון הקשר של מיליון טוקנים. ‫Gemini 2.5 Flash הוא גרסה משופרת של מודל Flash הקודם, והוא מציע איכות משופרת במהירויות דומות.

מידע טכני על Gemini 2.5 Flash (כמו נקודות השוואה של הביצועים, מידע על מערכי הנתונים לאימון, מאמצים בתחום הקיימות, שימוש מיועד ומגבלות, והגישה שלנו לאתיקה ולבטיחות) זמין בכרטיס המודל של Gemini 2.5 Flash.

מטרות

במדריך הזה נסביר איך לבצע את הפעולות הבאות:

  • מגדירים את הסביבה ב- Google Cloud .
  • יוצרים קובץ אימג' של קונטיינר לסוכן.
  • פורסים את הסוכן באשכול GKE.
  • בודקים את הנציג שנפרס.

עלויות

במדריך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

כדאי לעיין בתמחור של כל שירות כדי להבין את העלויות הפוטנציאליות.

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

  • נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  • In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • Verify that billing is enabled for your Google Cloud project.

  • Enable the required APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  • In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • Verify that billing is enabled for your Google Cloud project.

  • Enable the required APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  • צריך לוודא שיש לכם בפרויקט את התפקיד או התפקידים הבאים: roles/container.admin, roles/iam.serviceAccountAdmin, roles/artifactregistry.admin, roles/cloudbuild.builds.editor, roles/resourcemanager.projectIamAdmin

    בדיקת התפקידים

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM
    2. בוחרים את הפרויקט.
    3. בעמודה Principal, מחפשים את כל השורות שמזהות אתכם או קבוצה שאתם נכללים בה. כדי לדעת באילו קבוצות אתם נכללים, פנו לאדמין.

    4. בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.

    מתן התפקידים

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM
    2. בוחרים את הפרויקט.
    3. לוחצים על Grant access.
    4. בשדה New principals, מזינים את מזהה המשתמש. ‫ בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.

      ‫
    5. לוחצים על Select a role ומחפשים את התפקיד.
    6. כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
    7. לוחצים על Save.

הכנת הסביבה

במדריך הזה משתמשים ב-Cloud Shell כדי לנהל משאבים שמתארחים ב- Google Cloud. ב-Cloud Shell מותקנת מראש התוכנה שדרושה למדריך הזה, כולל kubectl,‏ terraform ו-Google Cloud CLI.

כדי להגדיר את הסביבה באמצעות Cloud Shell:

  1. במסוף Google Cloud , מפעילים סשן של Cloud Shell ולוחצים על Activate Cloud Shell.סמל ההפעלה של Cloud Shell הפעולה הזו מפעילה סשן בחלונית התחתונה של מסוף Google Cloud .
  2. מגדירים את משתני הסביבה שמוגדרים כברירת מחדל:

    gcloud config set project PROJECT_ID
    export GOOGLE_CLOUD_LOCATION=REGION
    export PROJECT_ID=PROJECT_ID
    export GOOGLE_CLOUD_PROJECT=$PROJECT_ID
    export WORKLOAD_POOL=$PROJECT_ID.svc.id.goog
    export PROJECT_NUMBER=$(gcloud projects describe --format json $PROJECT_ID | jq -r ".projectNumber")
    

    מחליפים את הערכים הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • ‫REGION: האזור Google Cloud (לדוגמה, us-central1) להקצאת אשכול GKE,‏ Artifact Registry ומשאבים אזוריים אחרים.

שיבוט פרויקט לדוגמה

  1. בטרמינל של Cloud Shell, משכפלים את מאגר המקורות של הקוד לדוגמה של המדריך:

    git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples.git
    
  2. עוברים לספריית המדריך:

    cd kubernetes-engine-samples/ai-ml/adk-vertex
    

יצירה והגדרה של משאבי Google Cloud

כדי לפרוס את הסוכן ב-GKE, צריך להקצות את משאביGoogle Cloud הנדרשים. אפשר לפרוס את הסוכן באמצעות ה-CLI של gcloud להרצה ישירה של שורת הפקודה או באמצעות Terraform לתשתית כקוד.

gcloud

בקטע הזה מפורטות פקודות של ה-CLI של gcloud להגדרה של אשכול GKE, ‏Artifact Registry ואיחוד זהויות של עומסי עבודה ל-GKE, כדי לאפשר שילוב חלק עם Vertex AI. מוודאים שהגדרתם את משתני הסביבה כמו שמתואר בקטע הכנת הסביבה.

  1. יצירת אשכול GKE: אפשר לפרוס את האפליקציה של הסוכן שמופעל באמצעות קונטיינר באשכול GKE Autopilot או באשכול רגיל. כדי ליהנות מחוויית Kubernetes מנוהלת לחלוטין, אפשר להשתמש באשכול Autopilot. כדי לבחור את מצב הפעולה של GKE שהכי מתאים לעומסי העבודה שלכם, אפשר לעיין במאמר בחירת מצב פעולה של GKE.

    טייס אוטומטי

    ב-Cloud Shell, מריצים את הפקודה הבאה:

    gcloud container clusters create-auto CLUSTER_NAME \
            --location=$GOOGLE_CLOUD_LOCATION \
            --project=$PROJECT_ID
    

    מחליפים את CLUSTER_NAME בשם של אשכול GKE Autopilot.

    רגילה

    ב-Cloud Shell, מריצים את הפקודה הבאה:

    gcloud container clusters create CLUSTER_NAME \
        --location=$GOOGLE_CLOUD_LOCATION \
        --project=$PROJECT_ID \
        --release-channel=stable \
        --num-nodes=1 \
        --machine-type=e2-medium \
        --workload-pool=$PROJECT_ID.svc.id.goog
    

    מחליפים את CLUSTER_NAME בשם של אשכול Standard.

  2. יוצרים מאגר של Artifact Registry לקונטיינר Docker של הסוכן: יוצרים מאגר של Artifact Registry כדי לאחסן ולנהל בצורה מאובטחת את קובץ האימג' של קונטיינר Docker של הסוכן. מאגר פרטי כזה עוזר לוודא שהאפליקציה שלכם זמינה לפריסה ב-GKE ומשולבת עם Cloud Build.

    gcloud artifacts repositories create adk-repo \
        --repository-format=docker \
        --location=$GOOGLE_CLOUD_LOCATION \
        --project=$PROJECT_ID
    
  3. קבלת כתובת ה-URL של המאגר: מריצים את הפקודה הזו כדי לאמת את הנתיב המלא למאגר. בשלב הבא תשתמשו בפורמט הנתיב הזה כדי לתייג את קובץ האימג' של Docker.

    gcloud artifacts repositories describe adk-repo \
        --location $GOOGLE_CLOUD_LOCATION \
        --project=$PROJECT_ID
    
  4. הענקת תפקידי IAM נדרשים לחשבון השירות שמשמש כברירת המחדל של Compute Engine: כברירת מחדל, לחשבון השירות שמשמש כברירת המחדל של Compute Engine אין הרשאות להעלאת תמונות ל-Artifact Registry, או להצגת אובייקטים ב-Cloud Storage או ביומנים. מקצים את התפקידים הנדרשים לפעולות האלה.

    ROLES_TO_ASSIGN=(
        "roles/artifactregistry.writer"
        "roles/storage.objectViewer"
        "roles/logging.viewer"
    )
    
    for ROLE in "${ROLES_TO_ASSIGN[@]}"; do
        gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
            --member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
            --role="${ROLE}"
    done
    
  5. יצירה והעברה בדחיפה של קובץ האימג' של קונטיינר הסוכן: מריצים את הפקודה הזו כדי ליצור את קובץ האימג' של Docker ולהעביר אותו בדחיפה ל-Artifact Registry. מוודאים שקובץ ה-Dockerfile וקוד האפליקציה נמצאים בספרייה /app.

    export IMAGE_URL="${GOOGLE_CLOUD_LOCATION}-docker.pkg.dev/${PROJECT_ID}/adk-repo/adk-agent:latest"
    
    gcloud builds submit \
        --tag "$IMAGE_URL" \
        --project="$PROJECT_ID" \
        app
    
  6. מוודאים שהתמונה נדחפה:

    gcloud artifacts docker images list \
        $GOOGLE_CLOUD_LOCATION-docker.pkg.dev/$PROJECT_ID/adk-repo/adk-agent \
        --project=$PROJECT_ID
    

Terraform

בקטע הזה מוסבר איך להשתמש ב-Terraform כדי להקצות את המשאבים Google Cloud. מאגר הדוגמאות ששיבטתם כולל את קובצי ההגדרות הנדרשים של Terraform.

  1. מפעילים את Terraform: עוברים לספרייה terraform ומפעילים את Terraform.

    terraform init
    
  2. בדיקת תוכנית ההרצה: הפקודה הזו מציגה את השינויים בתשתית ש-Terraform תבצע.

    terraform plan -var-file=default_env.tfvars
    
  3. החלת ההגדרות: מריצים את תוכנית Terraform כדי ליצור את המשאבים ב Google Cloud פרויקט. מאשרים את הפעולה באמצעות yes כשמוצגת בקשה לעשות זאת.

    terraform apply -var-file=default_env.tfvars
    

    אחרי שמריצים את הפקודות האלה, Terraform מקצה את אשכול GKE ואת מאגר Artifact Registry, ומגדיר את תפקידי ה-IAM וחשבונות השירות הנדרשים, כולל איחוד שירותי אימות הזהות של עומסי עבודה ב-GKE.

מידע נוסף על שימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ב-GKE.

הגדרה של kubectl לתקשורת עם האשכול

אם לא הגדרתם את kubectl לתקשורת עם האשכול, מריצים את הפקודה הבאה:

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=${GOOGLE_CLOUD_LOCATION}

מחליפים את CLUSTER_NAME בשם של אשכול GKE.

הגדרת איחוד זהויות של עומסי עבודה לגישה ל-GKE

אם אתם משתמשים ב-Terraform, אתם יכולים לדלג על השלב הזה. התהליך הזה מעניק לחשבון השירות של Kubernetes הרשאות לאינטראקציה עם Vertex AI.

  1. יוצרים Kubernetes ServiceAccount באשכול. לפני שמריצים את הפקודה הזו, חשוב לפעול לפי ההוראות במאמר הגדרת תקשורת בין kubectl לבין האשכול:

    kubectl create serviceaccount vertex-sa
    
  2. מקצים לחשבון השירות ב-Kubernetes את התפקיד Vertex AI User ‏ (roles/aiplatform.user) בפרויקט:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member="principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$PROJECT_ID.svc.id.goog/subject/ns/default/sa/vertex-sa" \
        --role="roles/aiplatform.user" \
        --condition=None
    

פריסה והגדרה של אפליקציית הסוכן

אחרי שמגדירים את המשאבים Google Cloud שלכם ב-GKE, צריך להכין את אפליקציית הסוכן לפריסה ולהגדיר את זמן הריצה שלה ב-GKE. התהליך כולל הגדרה של קוד הסוכן, יצירה של קובץ Dockerfile כדי להכניס אותו לקונטיינר וכתיבה של מניפסט Kubernetes כדי לפרוס אותו באשכול.

  1. הבנת המבנה של אפליקציית הנציג: הספרייה /app מכילה את קובצי הליבה של אפליקציית הנציג:
    • ‫main.py: נקודת הכניסה של אפליקציית FastAPI, שאחראית לחשיפת ה-API של הסוכן.
    • ‫agent.py: מכיל את הלוגיקה של סוכן ה-ADK, ומגדיר איך הוא משתמש ב-Vertex AI ומטפל בבקשות.
    • ‫__init__.py: מאתחל את חבילת Python.
    • ‫requirements.txt: רשימה של כל יחסי התלות של הסוכן ב-Python.
    • ‫Dockerfile: מגדיר איך האפליקציה נארזת בקובץ אימג' של Docker.
  2. יוצרים את מניפסט הפריסה של הסוכן: בספרייה tutorials-and-examples/adk/vertex, יוצרים את המניפסט הבא כקובץ בשם agent-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: adk-agent-deployment
      labels:
        app: adk-agent
        # Identifies the workload as an AI agent and adds it to the registry
        registry.gke.io/functional-type: "AGENT"
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: adk-agent
      template:
        metadata:
          labels:
            app: adk-agent
        spec:
          serviceAccountName: vertex-sa
          containers:
          - name: adk-agent
            image: IMAGE_URL
            ports:
            - containerPort: 8000
            env:
            - name: GOOGLE_CLOUD_PROJECT_ID
              value: PROJECT_ID
            - name: GOOGLE_CLOUD_LOCATION
              value: REGION
            - name: GOOGLE_GENAI_USE_VERTEXAI
              value: "1"
            - name: PORT
              value: "8000"
            resources:
              requests:
                memory: "512Mi"
                cpu: "500m"
              limits:
                memory: "1Gi"
                cpu: "1"
    

    מחליפים את הערכים הבאים:

    • ‫IMAGE_URL: כתובת ה-URL המלאה של קובץ אימג' של Docker שדחפתם אל Artifact Registry (לדוגמה, us-central1-docker.pkg.dev/${PROJECT_ID}/adk-repo/adk-agent:latest). אפשר לקבל את הערך הזה מהפלט של הפקודה gcloud artifacts docker images list בקטע הקודם. אפשר גם להריץ פקודה כמו הבאה: sed -i "s|image: IMAGE_URL|image: $IMAGE_URL|" agent-deployment.yaml.
    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • ‫REGION: האזור שבו מוקצה אשכול GKE. Google Cloud
  3. החלת מניפסט הפריסה:

    kubectl apply -f agent-deployment.yaml
    

    הפקודה הזו יוצרת את ה-Deployment ואת ה-Pods המשויכים לאפליקציית הסוכן באשכול GKE, ורושמת את הסוכן בAgent Registry.

  4. חשיפת הסוכן: אתם יכולים להשתמש בשיטות האלה כדי לחשוף את הסוכן לצורך גישה.

    • כדי לגשת לסוכן מחוץ לאשכול, צריך ליצור שירות Kubernetes. ב-Web API, נפוץ שירות מסוג LoadBalancer.
    • כדי לגשת לסוכן ישירות לצורך פיתוח ובדיקות מקומיים, משתמשים בפקודה kubectl port-forward.

    LoadBalancer

    1. יוצרים את המניפסט הבא כקובץ בשם agent-service.yaml:

      apiVersion: v1
      kind: Service
      metadata:
        name: adk-agent-service
      spec:
        selector:
          app: adk-agent
        type: LoadBalancer # Creates an external IP address for access
        ports:
          - protocol: TCP
            port: 80
            targetPort: 8000 # Matches the containerPort exposed in the Deployment
      
    2. החלת המניפסט:

      kubectl apply -f agent-service.yaml
      

      יכול להיות שיעברו כמה דקות עד שכתובת ה-IP החיצונית תוקצה.

    3. מוודאים שכתובת ה-IP הוקצתה:

      kubectl get service adk-agent-service
      

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

    port-forward

    אם אתם משתמשים בעיקר ב-port-forward, כדאי להשתמש בסוג השירות ClusterIP במקום ב-LoadBalancer, כי שירות ClusterIP הוא פנימי וצורכת פחות משאבים.

    POD_NAME=$(kubectl get pods -l app=adk-agent -o jsonpath='{.items[0].metadata.name}')
    kubectl port-forward $POD_NAME 8000:8000
    

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

בדיקת הסוכן הפעיל

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

בקטע הזה מוסבר איך לזהות את נקודת הקצה של הנציג ולבדוק את ה-API של הנציג.

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

    LoadBalancer

    1. אחזור של כתובת ה-IP החיצונית:

      kubectl get service adk-agent-service -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
      
    2. כדי להקל על השימוש, מאחסנים את כתובת ה-IP החיצונית במשתנה סביבה:

      export AGENT_IP=$(kubectl get service adk-agent-service -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
      

      כתובת ה-URL הבסיסית של הסוכן היא http://${AGENT_IP}.

    port-forward

    מוודאים שהפקודה kubectl port-forward פועלת בטרמינל נפרד. כתובת ה-URL הבסיסית של הסוכן היא http://localhost:8000.

  2. בדיקת ה-API של הסוכן: בודקים את ה-API של הסוכן על ידי שליחת בקשת curl לנקודת הקצה (endpoint) של /run. הסוכן מצפה למטען ייעודי (payload) בפורמט JSON עם שדה הודעה. מחליפים את AGENT_BASE_URL ב-http://${AGENT_IP} (עבור LoadBalancer) או ב-http://localhost:8000 (עבור העברת יציאות).

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

      # The user ID and session ID are arbitrary.
      # The appName must match the agent's Python package directory name (in this case, "capital_agent").
      curl -X POST AGENT_BASE_URL/apps/capital_agent/users/user-123/sessions/session-123
      

      אפשר להציג את רשימת האפליקציות הזמינות באמצעות הפקודה הבאה:

      curl -X GET AGENT_BASE_URL/list-apps
      
    2. שולחים שאילתה לסוכן באמצעות פרטי הסשן מהשלב הקודם.

      curl -X POST AGENT_BASE_URL/run \
      -H "Content-Type: application/json" \
      -d '{
        "appName": "capital_agent",
        "userId": "user-123",
        "sessionId": "session-123",
        "newMessage": {
          "role": "user",
          "parts": [{
            "text": "Hello, agent! What can you do for me?"
          }]
        }
      }'
      

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

  3. גישה לממשק המשתמש של הסוכן באינטרנט (אם רלוונטי): אם הסוכן כולל ממשק משתמש מבוסס-אינטרנט, אפשר לגשת אליו על ידי מעבר אל AGENT_BASE_URL בדפדפן אינטרנט. בדרך כלל, ה-ADK כולל ממשק משתמש בסיסי לאינטראקציה ולניפוי באגים. לדוגמה, אם חשפתם את הסוכן באמצעות LoadBalancer וכתובת ה-IP שלו EXTERNAL-IP היא 34.123.45.67, עוברים אל http://34.123.45.67 בדפדפן.

הסרת המשאבים

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

מחיקת המשאבים שנפרסו

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

gcloud

gcloud container clusters delete CLUSTER_NAME \
    --location=${GOOGLE_CLOUD_LOCATION} \
    --project=$PROJECT_ID

gcloud projects remove-iam-policy-binding $PROJECT_ID \
    --member="principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$PROJECT_ID.svc.id.goog/subject/ns/default/sa/vertex-sa" \
    --role="roles/aiplatform.user" \
    --condition=None

gcloud artifacts repositories delete adk-repo \
    --location=$GOOGLE_CLOUD_LOCATION \
    --project=$PROJECT_ID

מחליפים את CLUSTER_NAME בשם של אשכול GKE.

Terraform

  1. בטרמינל של Cloud Shell, נכנסים לספרייה tutorials-and-examples/adk/vertex/:

    cd tutorials-and-examples/adk/vertex/
    
  2. מריצים את הפקודה הזו כדי להסיר את כל המשאבים שהוגדרו בקובצי ההגדרות של Terraform.

    cd terraform
    terraform destroy
    

המאמרים הבאים

  • כך מגדירים את Horizontal Pod Autoscaler‏ (HPA) כדי להתאים באופן אוטומטי את משאבי הסוכן לפי דרישה.
  • כאן מוסבר איך להגדיר שרת proxy לאימות זהויות (IAP) לאפליקציות האינטרנט שפועלות ב-Google Cloud, כדי לספק הרשאה מרכזית לגישה לממשק המשתמש של הסוכן.
  • איך משתמשים ב-Cloud Logging וב-Cloud Monitoring כדי לקבל תובנות לגבי הביצועים והתקינות של הסוכן באשכול GKE.
  • אתם יכולים לעיין בדוגמאות ניסיוניות ב-GKE AI Labs שיעזרו לכם להשתמש ב-GKE כדי להאיץ את היוזמות שלכם בתחום ה-AI האקטיבי.