לפני שמתחילים
כדי לדמות את התנהגות הנציג ולהעריך אותה, צריך לוודא שביצעתם את הפעולות הבאות:
- יצירת גרסת סוכן: כדי להפעיל סימולציה, צריך ליצור תמונת מצב בלתי משתנה של הגדרות הסוכן, כולל הוראות מערכת, כלים ומודל וכו'. חשוב לוודא שיצרתם לפחות גרסה אחת של הסוכן במאגר הסוכנים.
- מאתחלים את ה-SDK: אם אתם מתכננים להריץ סימולציה באופן פרוגרמטי, אתם צריכים להתקין את Agent Platform SDK ולאתחל את הלקוח כמו שמתואר במאמר הערכת הסוכנים.
סימולציה מאפשרת לכם ליצור חבילת הערכה מקיפה מאפס, גם אם אין לכם נתוני ייצור קיימים. בתהליך הזה נעשה שימוש במודלים גדולים של שפה (LLM) כדי ליצור באופן אוטומטי תרחישי בדיקה, ולאחר מכן המודלים מתנהגים כמו משתמשים כדי לבדוק את הלוגיקה של השיחה עם הסוכן בכמה תורות.
תהליך העבודה של הסימולציה בשני שלבים
בדרך כלל, בדיקה של סוכן חדש מתבצעת בתהליך דו-שלבי:
יצירת תרחישים: יצירת מערך נתונים של "מפרטי בדיקה" על סמך ההוראות והגדרות הכלים של הסוכן.
הדמיית סשנים: כדי להפיק עקבות של התנהגות, צריך להריץ את המפרטים האלה באמצעות משתמש מדומה שמבצע אינטראקציה עם הסוכן. trace הוא רשומה עובדתית שלא ניתן לשנות של התנהגות הסוכן, כולל קלט של המודל, תגובות וקריאות לכלים.
בשלב הראשון, המערכת יוצרת מקרים להערכה. מקרה הערכה הוא מפרט שמגדיר את המשימה של הסוכן. כל מקרה מורכב משני רכיבים:
- הנחיה ראשונית: ההודעה הראשונה שהמשתמש שולח לנציג.
- תוכנית שיחה: 'הוראה' מוסתרת למשתמש המדומה, שמתארת את המטרות שלו ואיך הוא צריך להגיב אם הסוכן ישאל שאלות מסוימות.
בשלב השני, המערכת יוצרת רשימה של התנהגויות סוכנים בפורמט נתונים קנוני של סוכנים.
יצירת תרחישים במסוף
במסוף Google Cloud , עוברים לדף Agent Platform > Agents > Evaluation.
לוחצים על New evaluation (הערכה חדשה) ובוחרים באפשרות Simulate sessions (סימולציה של סשנים).
מזינים הוראה ליצירה כדי להנחות את התרחישים (לדוגמה, "יצירת תרחישים שבהם המשתמש מנסה להזמין טיסה אבל משנה את דעתו").
בודקים את הטבלה שנוצרה. אתם יכולים לערוך את ההנחיות או להוסיף באופן ידני תרחישי בדיקה משלכם.
הרצת סימולציה של משתמשים
אחרי שהתרחישים נוצרים, סימולטור המשתמש פועל בתור המשתמש כדי לקדם את השיחה.
הגדרות של סימולציה של משתמשים
כשמריצים את הסימולציה, אפשר להגדיר את המאפיינים הבאים:
- Max Turn: מספר ההפעלות המקסימלי שמותר לסוכן רב-שלבי להריץ. המאפיין הזה מאפשר לנו להפסיק שיחה שיוצאת משליטה, שבה הסוכן וסימולטור המשתמש נכנסים ללולאה אינסופית. (ערך ברירת המחדל הוא 5).
- שם המודל: שם המודל לסימול של ההודעה הבאה של המשתמש להרצת סוכן רב-שלבי.
- הגדרת המודל: הגדרת המודל לסימולציה של הודעת משתמש.
דוגמה ל-SDK: סימולציה תוכנתית
אפשר גם להפעיל את חבילת הבדיקות באמצעות Agent Platform SDK:
# 1. Define agent
travel_agent = Agent(
model="gemini-3-flash-preview",
name='travel_agent',
instruction='You are a travel expert, help users to find flights, book flights with flight ID',
tools=[find_flights, book_flight],
)
# 2. Generate scenarios from agent info
travel_agent_info = types.evals.AgentInfo.load_from_agent(agent=travel_agent)
eval_dataset = client.evals.generate_conversation_scenarios(
agent_info=travel_agent_info,
config={
"count": 5,
"generation_instruction": "Generate scenarios where the user tries to book a flight.",
"environment_context": "Today is Monday. I am located in San Francisco. Flights to Paris, New York, Tokyo, Chicago, Sydney, etc are available.",
},
)
# 3. Simulate multi-turn interactions
eval_dataset_with_traces = client.evals.run_inference(
agent=travel_agent,
src=eval_dataset,
config={
"user_simulator_config": {
"max_turn": 5
}
}
)