בקטע הזה מוסבר איך להשתמש בסשנים של 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)
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט.
- LOCATION: האזור שלכם. אזורים נתמכים לשיחות.
הצגת רשימה של סשנים
הצגת רשימת הסשנים שמשויכים למופע של Agent Runtime.
המסוף
אם סוכנים נפרסו, אפשר להשתמש במסוף Google Cloud כדי להציג רשימה של סשנים שמשויכים לסוכן:
- נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .
מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.
לוחצים על השם של מופע Agent Engine.
לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.
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 כדי ליצור סשנים:
- נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .
מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.
לוחצים על השם של מופע Agent Engine.
לוחצים על הכרטיסייה סביבת ניסויים.
כדי ליצור סשן חדש, לוחצים על סשן חדש.
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 כדי ליצור סשנים:
- נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .
מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.
לוחצים על השם של מופע Agent Engine.
לוחצים על הכרטיסייה סביבת ניסויים.
לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.
לוחצים על הסשן שרוצים לראות פרטים נוספים לגביו.
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
- נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .
מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.
לוחצים על השם של מופע Agent Engine.
לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.
לוחצים על תפריט הפעולות הנוספות () של הסשן שרוצים למחוק.
לוחצים על Delete.
לוחצים על מחיקת סשן.
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 כדי ליצור סשנים:
- נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .
מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.
לוחצים על השם של מופע Agent Engine.
לוחצים על הכרטיסייה סביבת ניסויים.
לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.
לוחצים על הסשן שרוצים לראות פרטים נוספים לגביו.
לוחצים על הכרטיסייה אירועים כדי לראות את האירועים שמשויכים לסשן.
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 כדי ליצור סשנים:
- נכנסים לדף Deployments של Agent Platform במסוף Google Cloud .
מופעים של Agent Engine ששייכים לפרויקט שנבחר מופיעים ברשימה. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שצוינה.
לוחצים על השם של מופע Agent Engine.
לוחצים על הכרטיסייה סביבת ניסויים.
לוחצים על הכרטיסייה סשנים. רשימה של ביקורים מוצגת לפי מזהה.
לוחצים על הסשן שרוצים לראות פרטים נוספים לגביו.
לוחצים על הכרטיסייה אירועים כדי לראות את האירועים שמשויכים לסשן.
כותבים הודעה ומקישים על 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)