ניהול סשנים באמצעות מסוף Google Cloud או קריאות ל-API

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

במאמר ניהול סשנים באמצעות הערכה לפיתוח סוכנים מוסבר איך לנהל סשנים באמצעות סוכן ADK.

יצירת מופע של Agent Runtime

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

אם אין לכם מופע קיים של Agent Runtime, אתם יכולים ליצור אחד באמצעות הקוד הבא:

import vertexai

client = vertexai.Client(
  project="PROJECT_ID",
  location="LOCATION"
)
# If you don't have an Agent Engine instance already, create an instance.
agent_engine = client.agent_engines.create()

# Optionally, print out the Agent Engine resource name. You will need the
# resource name to interact with Sessions later on.
print(agent_engine.api_resource.name)

מחליפים את מה שכתוב בשדות הבאים:

הצגת רשימה של סשנים

הצגת רשימת הסשנים שמשויכים למופע של Agent Runtime.

המסוף

אם סוכנים נפרסו, אפשר להשתמש במסוף Google Cloud כדי להציג רשימה של סשנים שמשויכים לסוכן:

  1. נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .

    מעבר לדף Deployments

    מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.

  2. לוחצים על השם של מופע Agent Engine.

  3. לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.

Python

for session in client.agent_engines.sessions.list(
    name=agent_engine.api_resource.name,  # Required
):
    print(session)

# To list sessions for a specific user:
for session in client.agent_engines.sessions.list(
    name=agent_engine.api_resource.name,  # Required
    config={"filter": "user_id=USER_ID"},
):
    print(session)
  • USER_ID: בוחרים מזהה משתמש משלכם, עד 128 תווים. לדוגמה, user-123.

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • LOCATION: האזור שבו יצרתם את מכונת Agent Engine.
  • AGENT_ENGINE_ID: מזהה המשאב של מופע Agent Engine.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions" | Select-Object -Expand Content

תוצג רשימה של סשנים שהוחזרו.

אם רוצים לראות את רשימת הסשנים של משתמש ספציפי, אפשר להוסיף את פרמטר השאילתה ?filter=user_id=\"USER_ID\", כש-USER_ID הוא המזהה של המשתמש שרוצים לשלוח לגביו שאילתה.

יצירת סשן

יצירת סשן שמשויך למזהה משתמש.

המסוף

בסוכנים שפרסתם, אתם יכולים להשתמש במסוף Google Cloud כדי ליצור סשנים:

  1. נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .

    מעבר לדף Deployments

    מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.

  2. לוחצים על השם של מופע Agent Engine.

  3. לוחצים על הכרטיסייה סביבת ניסויים.

  4. כדי ליצור סשן חדש, לוחצים על סשן חדש.

Python

session = client.agent_engines.sessions.create(
    name=agent_engine.api_resource.name,  # Required
    user_id=USER_ID, # Required
    session_id=SESSION_ID,
)

כאשר USER_ID הוא מזהה המשתמש שהגדרתם. לדוגמה, user-123.

במקרה של SESSION_ID, כדאי להביא בחשבון את ההגבלות הבאות כדי למנוע התנגשויות עם מזהים שנוצרו על ידי המערכת:

  • אם התו הראשון הוא אות, המזהה יכול להכיל עד 63 תווים. התווים התקפים הם אותיות קטנות, מספרים ומקפים ([a-z0-9-]). התו האחרון חייב להיות אות או מספר
  • אם התו הראשון הוא מספר, המזהה יכול לכלול עד 9 תווים. התווים התקינים הם מספרים ([0-9]) ללא אפסים מובילים.

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • LOCATION: האזור שבו יצרתם את מכונת Agent Engine.
  • AGENT_ENGINE_ID: מזהה המשאב של מופע Agent Engine.
  • USER_ID: מזהה המשתמש שהגדרתם. לדוגמה, sessions-agent.
  • SESSION_ID: מזהה הסשן שהגדרתם. לדוגמה, my-custom-session.

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

    • אם התו הראשון הוא אות, המזהה יכול להכיל עד 63 תווים. התווים התקפים הם אותיות קטנות, מספרים ומקפים (`[a-z0-9-]`). התו האחרון חייב להיות אות או מספר.
    • אם התו הראשון הוא מספר, המזהה יכול לכלול עד 9 תווים. התווים התקינים הם מספרים (`[0-9]`) בלי אפסים מובילים.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions

    גוף בקשת JSON:

    {
      "userId": USER_ID
    }
    
    

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

    curl

    שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions"

    PowerShell

    שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions" | Select-Object -Expand Content

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

הגדרת אורך החיים (TTL) של סשן

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

משך החיים (TTL)

אם מגדירים את אורך החיים (TTL), השרת מחשב את זמן התפוגה כ-create_time + ttl לסשנים שנוצרו לאחרונה או כ-update_time + ttl לסשנים מעודכנים.

client.agent_engines.sessions.create(
    name=agent_engine.api_resource.name,  # Required
    user_id=USER_ID, # Required
    config={
        # Session will be deleted 10 days after creation time.
        "ttl": f"{24 * 60 * 60 * 10}s"
    }
)

שעת התפוגה

import datetime

client.agent_engines.sessions.create(
    name=agent_engine.api_resource.name,  # Required
    user_id=USER_ID, # Required
    config={
        # Session will be deleted at the provided time (10 days after current time).
        "expire_time": datetime.datetime.now(tz=datetime.timezone.utc) + datetime.timedelta(seconds=24 * 60 * 60 * 10),
    }
)

קבלת סשן

קבלת סשן ספציפי שמשויך למופע של Agent Platform.

המסוף

בסוכנים שפרסתם, אתם יכולים להשתמש במסוף Google Cloud כדי ליצור סשנים:

  1. נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .

    מעבר לדף Deployments

    מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.

  2. לוחצים על השם של מופע Agent Engine.

  3. לוחצים על הכרטיסייה סביבת ניסויים.

  4. לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.

  5. לוחצים על הסשן שרוצים לראות פרטים נוספים לגביו.

Python

session = client.agent_engines.sessions.get(
    name='projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID',  # Required
    user_id=USER_ID, # Required
)
# session.name will correspond to
#   'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID'

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • LOCATION: האזור שבו יצרתם את מכונת Agent Engine.
  • AGENT_ENGINE_ID: מזהה המשאב של מופע Agent Engine.
  • SESSION_ID: מזהה המשאב של הסשן שרוצים לאחזר. אפשר לקבל את מזהה הסשן מהתשובה שקיבלתם כשפתחתם את הסשן.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID" | Select-Object -Expand Content

בתשובה יופיע מידע על הסשן.

מחיקת סשן

מחיקה של סשן שמשויך למופע של Agent Platform.

המסוף

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

  1. נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .

    מעבר לדף Deployments

    מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.

  2. לוחצים על השם של מופע Agent Engine.

  3. לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.

  4. לוחצים על תפריט הפעולות הנוספות () של הסשן שרוצים למחוק.

  5. לוחצים על Delete.

  6. לוחצים על מחיקת סשן.

Python

client.agent_engines.sessions.delete(name=session.name)

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • LOCATION: האזור שבו רוצים ליצור את מופע Example Store.
  • AGENT_ENGINE_ID: מזהה המשאב של מופע Agent Engine.
  • SESSION_ID: מזהה המשאב של הסשן שרוצים לאחזר.

ה-method של ה-HTTP וכתובת ה-URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID

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

curl

מריצים את הפקודה הבאה:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID" | Select-Object -Expand Content

אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.

הצגת רשימת האירועים בסשן

מציגים רשימה של אירועים בסשן שמשויכים למופע של Agent Platform.

המסוף

בסוכנים שפרסתם, אתם יכולים להשתמש במסוף Google Cloud כדי ליצור סשנים:

  1. נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .

    מעבר לדף Deployments

    מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.

  2. לוחצים על השם של מופע Agent Engine.

  3. לוחצים על הכרטיסייה סביבת ניסויים.

  4. לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.

  5. לוחצים על הסשן שרוצים לראות פרטים נוספים לגביו.

  6. לוחצים על הכרטיסייה אירועים כדי לראות את האירועים שמשויכים לסשן.

Python

for session_event in client.agent_engines.list_session_events(
    name=session.name,
):
    print(session_event)

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • LOCATION: האזור שבו יצרתם את מכונת Agent Engine.
  • AGENT_ENGINE_ID: מזהה המשאב של מופע Agent Engine.
  • SESSION_ID: מזהה המשאב של הסשן שרוצים לאחזר.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID/events

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

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID/events"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID/events" | Select-Object -Expand Content

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

צירוף אירוע לסשן

צירוף אירוע לסשן שמשויך למופע של Agent Platform.

המסוף

בסוכנים שפרסתם, אתם יכולים להשתמש במסוף Google Cloud כדי ליצור סשנים:

  1. נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .

    מעבר לדף Deployments

    מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.

  2. לוחצים על השם של מופע Agent Engine.

  3. לוחצים על הכרטיסייה סביבת ניסויים.

  4. לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.

  5. לוחצים על הסשן שרוצים לראות פרטים נוספים לגביו.

  6. לוחצים על הכרטיסייה אירועים כדי לראות את האירועים שמשויכים לסשן.

  7. כותבים הודעה ומקישים על Enter כדי להוסיף אירוע חדש לסשן.

Python

import datetime

client.agent_engines.sessions.events.append(
    name=session.name,
    author="user",                                              # Required.
    invocation_id="1",                                          # Required.
    timestamp=datetime.datetime.now(tz=datetime.timezone.utc),  # Required.
    config={
        "content": {
            "role": "user",
            "parts": [{"text": "hello"}]
        },
    },
)

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

client.agent_engines.sessions.events.append(
    name=session.name,
    author="user",                                              # Required.
    invocation_id="1",                                          # Required.
    timestamp=datetime.datetime.now(tz=datetime.timezone.utc),  # Required.
    config={
        "raw_event": {
            "content": "hello",
            "custom_field": "custom_value"
        },
    },
)

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • LOCATION: האזור שבו יצרתם את מכונת Agent Engine.
  • AGENT_ENGINE_ID: מזהה המשאב של מופע Agent Engine.
  • USER_ID: מזהה המשתמש שהגדרתם. לדוגמה, sessions-agent.
  • SESSION_ID: מזהה הסשן שהגדרתם. לדוגמה, my-custom-session.

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

    • אם התו הראשון הוא אות, המזהה יכול להכיל עד 63 תווים. התווים התקפים הם אותיות קטנות, מספרים ומקפים (`[a-z0-9-]`). התו האחרון חייב להיות אות או מספר.
    • אם התו הראשון הוא מספר, המזהה יכול לכלול עד 9 תווים. התווים התקינים הם מספרים (`[0-9]`) בלי אפסים מובילים.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions

    גוף בקשת JSON:

    {
      "userId": USER_ID
    }
    
    

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

    curl

    שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions"

    PowerShell

    שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions" | Select-Object -Expand Content

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

הסרת המשאבים

כדי לנקות את כל המשאבים שנעשה בהם שימוש בפרויקט הזה, אפשר למחוק את מופע Agent Platform יחד עם משאבי הצאצא שלו:

agent_engine.delete(force=True)