ב-Gemini Enterprise Agent Platform, אפשר ליצור גרסאות קבועות, או עדכונים, של סוכן. לאחר מכן, תוכלו לפצל את תנועת הגולשים בין הגרסאות הפעילות השונות. פיצול התנועה מאפשר לכם לבדוק גרסאות חדשות של אתרים ולהגדיל בהדרגה את התנועה אליהן, וגם לפצל את התנועה בין גרסאות למטרות אחרות.
היכולת ליצור גרסאות תמיד מופעלת. אין צורך להפעיל את התכונה. מידע על יצירת גרסאות זמין במאמר בנושא גרסאות ומצבים.
אם עדיין לא יצרתם גרסאות, תצטרכו ליצור גרסאות לפני שתוכלו להציג אותן ולהגדיר את התנועה ביניהן, כמו שמתואר בדף הזה.
בשלב הזה, גרסאות קודמות ופיצול תנועה זמינים דרך v1beta1 API.
בדף הזה מוסבר איך לנהל עדכונים של סוכנים ופיצול תנועה.
שינויים ומצבים
גרסה היא תמונת מצב של סוכן. כשיוצרים סוכן או מעדכנים את השדות עם הגרסאות שלו, נוצרת גרסה קבועה של הסוכן. לגרסה יכולים להיות הסטטוסים הבאים:
- פעילה: הגרסה זמינה לשאילתות. שימו לב: יכול להיות שהיא לא תקבל שאילתות, בהתאם להגדרת התנועה.
- הוצא משימוש: אי אפשר לשלוח שאילתות לגבי הגרסה.
אפשר לזהות את הגרסה באמצעות שם המשאב שלה, שאפשר למצוא על ידי הצגת רשימה של גרסאות הסוכן.
שדות עם גרסאות ושדות ללא גרסאות
בקטע הזה מפורטים השדות בהגדרה של ReasoningEngineSpec של סוכן שפרסתם, שאפשר לעדכן כדי ליצור גרסה חדשה של הסוכן.
כשמעדכנים שדות עם גרסאות, נוצרת גרסה חדשה.
כשמעדכנים שדות ללא ניהול גרסאות,או שדות בהגדרה של סוכן שאינם שדות עם ניהול גרסאות, הסוכן מתעדכן בכל הגרסאות שלו.
אלה השדות עם הגרסאות:
- PackageSpec
pickleObjectGcsUridependencyFilesGcsUrirequirementsGcsUripythonVersion
- DeploymentSpec
env[]secretEnv[]firstPartyImageOverrideagentServerModepscInterfaceConfigminInstancesmaxInstancesresourceLimitscontainerConcurrency
classMethods[]agentFramework- SourceCodeSpec
sourcelanguageSpec
identityTypeagentCard[]
הצגת רשימה של גרסאות של סוכנים
אתם יכולים לראות רשימה של כל הגרסאות של סוכן שהופעל – גם גרסאות פעילות וגם גרסאות שיצאו משימוש.
כדי למצוא את מזהה המשאב של הסוכן, אפשר להיעזר במאמר איך מקבלים את מזהה המשאב של הסוכן.
המסוף
ב-Google Agent Platform, עוברים אל Govern > Deployments (ניהול > פריסות).
לוחצים על השם של נציג התמיכה.
לוחצים על הכרטיסייה גרסאות.
בחלק העליון של הדף מוצג המידע הבא על השינויים:
- מצב פיצול: יכול להיות 'ידני' או 'האחרון'. מידע נוסף זמין במאמר בנושא ניהול התנועה לגרסאות.
- גרסאות פעילות: מספר הגרסאות הפעילות בהשוואה למספר הכולל של הגרסאות.
- הגרסה האחרונה: השם של הגרסה האחרונה ואחוז התנועה שהיא מקבלת.
- הגרסה הראשית: השם של הגרסה הראשית, שמקבלת את רוב התנועה.
ברשימה מוצגות כל הגרסאות של הסוכן, והיא כוללת את הפרטים הבאים:
- Name: השם או המספר של הגרסה.
- מצב: האם הגרסה הופעלה או הוצאה משימוש.
- תנועה: אחוז התנועה שמופנה לגרסה.
- נוצר: התאריך והשעה שבהם נוצרה הגרסה.
Agent Platform SDK
הקוד הבא מציג את היסטוריית הגרסאות של סוכן שצוין ושהופעל. כדי להציג את השינויים, צריך לזהות את מזהה המשאב הייחודי של הסוכן.
import vertexai
from google.genai import types as genai_types
http_options = genai_types.HttpOptions(
api_version="v1beta1",
)
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
http_options=http_options,
)
revisions = client.agent_engines.runtimes.revisions.list(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID"
)
for revision in revisions:
print(revision)
מחליפים את המשתנים הבאים בקוד:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס
REST
מבצעים קריאה ל-method reasoningEngineRuntimeRevisions.list.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"reasoningEngineRuntimeRevisions": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID",
"spec": {
// Revision-specific config attributes (e.g., package specs, requirements)
},
"createTime": "2026-05-01T13:26:01Z",
"state": "ACTIVE"
}...
]
}קבלת פרטים על גרסה
אפשר לאחזר את הפרטים של גרסה ספציפית.
Agent Platform SDK
הקוד הבא מאחזר את פרטי המשאב של גרסה ספציפית של סוכן שהופעלה:
import vertexai
from google.genai import types as genai_types
http_options = genai_types.HttpOptions(
api_version="v1beta1",
)
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
http_options=http_options,
)
revision = client.agent_engines.runtimes.revisions.get(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID"
)
print(revision)
מחליפים את המשתנים הבאים בקוד:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס -
REVISION_ID: המזהה הייחודי של גרסה ספציפית של זמן הריצה
REST
מבצעים קריאה ל-reasoningEngineRuntimeRevisions.get .
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס -
REVISION_ID: המזהה הייחודי של גרסה ספציפית של זמן הריצה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID",
"spec": {
// Revision-specific config attributes (e.g., package specs, requirements)
},
"createTime": "2026-05-06T13:05:24Z",
"state": "ACTIVE"
}הגדרת חלוקת התנועה בין גרסאות
אתם יכולים לקבוע איך התנועה תתחלק בין הגרסאות הפעילות. הערה: פיצול התנועה מתבצע רק בשאילתות שמכוונות למשאב הבסיסי reasoningEngine. הפניית שאילתה לנתיב ספציפי של משאב גרסה עוקפת באופן מפורש את כללי התנועה.
התנועה מחולקת באחת משתי שיטות:
- לפי אחוזים: כשמגדירים לפי אחוזים, אחוז מסוים של תנועה מועבר לכל גרסה של הסוכן. כל אחוז שצוין חייב להיות מספר שלם. סכום האחוזים חייב להיות 100%. גם אם יש רק גרסה פעילה אחת, עדיין אפשר להגדיר פיצול תנועה (שבו 100% מההפניות מועברות אליה).
לגרסה העדכנית ביותר: כל התנועה מופנית לגרסה העדכנית ביותר. כשיוצרים גרסה חדשה של סוכן, התנועה מופנית אוטומטית לגרסה החדשה.
המסוף
כדי להגדיר ניהול תנועה:
עוברים אל Govern > Deployments.
לוחצים על השם של נציג התמיכה.
עוברים לכרטיסייה גרסאות.
בדף הפרטים של הגרסה, לוחצים על ניהול התנועה.
בקטע מצב מסך מפוצל, בוחרים אחת מהאפשרויות הבאות:
- ידני: מציינים את אחוז התנועה שיופנה לכל גרסה.
- תמיד הגרסה האחרונה: במקרה הזה, 100% מהתנועה מופנים לגרסה האחרונה (הגרסה שנוצרה לאחרונה).
לוחצים על שמירה כדי לשמור את השינויים.
Agent Platform SDK
הקוד הבא מציג דוגמה להגדרת חלוקת תנועה שמבוססת על אחוזים.
import vertexai
from google.genai import types as genai_types
http_options = genai_types.HttpOptions(
api_version="v1beta1",
)
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
http_options=http_options,
)
client.agent_engines.update(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID",
config={
"traffic_config": {
"trafficSplitManual": {
"targets": [
{
"runtimeRevisionName": "projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID_1",
"percent": 50,
},
{
"runtimeRevisionName": "projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID_2",
"percent": 50,
},
]
}
}
},
)
מחליפים את המשתנים הבאים בקוד:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס -
REVISION_ID_1: מזהה הגרסה הראשונה -
REVISION_ID_2: מזהה הגרסה השנייה
REST
כדי להגדיר שהתנועה תמיד תעבור לגרסה האחרונה (ברירת מחדל), מעדכנים את משאב ReasoningEngine באמצעות השדה traffic_config ומציינים trafficSplitAlwaysLatest:
{
"trafficConfig": {
"trafficSplitAlwaysLatest": {}
}
}
כדי לפצל את התנועה בין גרסאות זמן ריצה של סוכן, מעדכנים את משאב ReasoningEngine באמצעות השדה traffic_config ומספקים רשימה של יעדי תנועה עם האחוזים המתאימים. בדוגמה הבאה מוצג איך להגדיר פיצול ידני בין שתי גרסאות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס -
REVISION_ID_1: מזהה הגרסה הראשונה -
REVISION_ID_2: מזהה הגרסה השנייה TRAFFIC_PERCENTAGE_1: אחוז התנועה שרוצים להקצות לגרסה הראשונה-
TRAFFIC_PERCENTAGE_2: אחוז תנועת הגולשים שרוצים להקצות לגרסה השנייה
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID?update_mask=traffic_config
תוכן בקשת JSON:
{
"trafficConfig": {
"trafficSplitManual": {
"targets": [
{
"runtimeRevisionName": "projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID_1",
"percent": TRAFFIC_PERCENTAGE_1
},
{
"runtimeRevisionName": "projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID_2",
"percent": TRAFFIC_PERCENTAGE_2
}
]
}
}
}כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
הבקשה הזו מפעילה פעולה ממושכת (LRO). בתחילה תקבלו תגובה רגילה של פעולה. אחרי שהשינויים בהגדרות מסתיימים, בתשובה מופיעdone וההגדרות שלכם חוזרות על עצמן.
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"done": false
}שאילתה לגבי שינוי ספציפי
אפשר לשלוח שאילתה לגבי עדכון ספציפי דרך ה-SDK או ממשקי ה-API. כדי לשלוח שאילתה לגרסה, היא צריכה להיות פעילה. שאילתות שמופנות ישירות לגרסה ספציפית עוקפות את כללי חלוקת התנועה.
Agent Platform SDK
הקוד הבא שולח שאילתה לגבי גרסה פעילה ספציפית:
import vertexai
from google.genai import types as genai_types
http_options = genai_types.HttpOptions(
api_version="v1beta1",
)
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
http_options=http_options,
)
revision = client.agent_engines.runtimes.revisions.get(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID"
)
response = revision.query(
input={"your_input_key": "your_input_value"},
config={"class_method": "your_class_method"},
)
print(response)
מחליפים את המשתנים הבאים בקוד:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס -
REVISION_ID: המזהה הייחודי של גרסה ספציפית של זמן הריצה
REST
מבצעים קריאה ל-method reasoningEngineRuntimeRevisions.query.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס -
REVISION_ID: המזהה הייחודי של גרסה ספציפית של זמן הריצה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID:query
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
מעקב אחר גרסאות קודמות
כדי לעקוב אחרי פעילות ובעיות, אפשר לעקוב אחרי מספר הגרסה כנתוני מטא ביומנים. מידע על הגדרת רישום ביומן זמין במאמר הגדרת רישום ביומן.
עדכון גרסה
כדי לעדכן סוכנים פעילים, פועלים לפי ההוראות במאמר עדכון של סוכן פעיל. אפשר לעדכן שדות עם גרסאות או שדות ללא גרסאות. אם מעדכנים שדות עם מספור גרסאות, נוצרת גרסה חדשה.
מחיקת גרסה של סוכן
כדי להסיר גרסה של סוכן, צריך למחוק אותה. אפשר למחוק רק גרסאות שאינן פעילות לניהול תנועה, כי הן הוצאו משימוש או שלא הוגדרו לקבל תנועה. הוראות להגדרה של קבלת תעבורה על ידי עדכון מפורטות במאמר הגדרת חלוקת התעבורה בין עדכונים.
המסוף
כדי למחוק גרסה של סוכן:
עוברים אל Govern > Deployments.
לוחצים על השם של נציג התמיכה.
עוברים לכרטיסייה גרסאות.
בדף הפרטים של הגרסה, לוחצים על שם הגרסה.
מאתרים את השורה של הגרסה שרוצים להסיר.
לוחצים על סמל המחיקה (אשפה).
כשמופיעה בקשה, מאשרים את המחיקה של הגרסה.
Agent Platform SDK
הקוד הבא מוחק גרסה מסוימת של סוכן:
import vertexai
from google.genai import types as genai_types
http_options = genai_types.HttpOptions(
api_version="v1beta1",
)
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
http_options=http_options,
)
client.agent_engines.runtimes.revisions.delete(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID"
)
מחליפים את המשתנים הבאים בקוד:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס -
REVISION_ID: המזהה הייחודי של גרסה ספציפית של זמן הריצה
REST
מבצעים קריאה ל-method reasoningEngineRuntimeRevisions.delete.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: אזור נתמך -
RESOURCE_ID: מזהה המשאב של הסוכן שנפרס -
REVISION_ID: המזהה הייחודי של גרסה ספציפית של זמן הריצה
ה-method של ה-HTTP וכתובת ה-URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID/runtimeRevisions/REVISION_ID
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
מגבלות
- אין תמיכה ב-Agent Gateway לסוכנים של Agent Runtime שמשתמשים בגרסאות. לא תוכלו להשתמש בתכונות שקשורות לניהול גרסאות, כמו הגדרת חלוקת התנועה ושליחת שאילתות לפי גרסה, אם Agent Gateway מצורף להגדרות של סוכן.