שיפורים בכל רמות המאמץ של Agent API
רמות המאמץ ב-Perplexity Agent API עולות עכשיו פחות, עם איכות מחקר זהה או טובה יותר ורמת ultra חדשה למחקר לעומק.

רמות המאמץ ב-Perplexity Agent API מאפשרות למפתחים לבחור את האיזון בין עלות, מהירות ועומק המחקר לכל משימה. מהיום, כל רמת מאמץ עולה פחות לכל שאילתה, ואיכות המחקר גבוהה יותר או ללא שינוי. רמת ultra חדשה זמינה למחקר המקיף והרחב ביותר. כל בקשה שבוחרת את הרמה לפי שמה, כמו effort="fast", מקבלת את התצורה המעודכנת באופן אוטומטי.
בניית סוכן מחקר פירושה בחירת האיזון הנכון בין עלות, מהירות ועומק לכל משימה. רמות המאמץ ב-Agent API מקבלות את ההחלטה הזו עבור המשתמש. כל רמה היא תצורה ארוזה שמגדירה את המודל, תקציב הצעדים, הגדרות החיפוש והכלים לסוג משימה מסוים. Perplexity מעריכה ומעדכנת כל רמה לאורך זמן כדי לספק את המחקר הטוב ביותר בעלות הנוכחית שלה או בעלות נמוכה ממנה.
השיפורים האלה נבעו משני סוגי שינויים. תקציבים, ניהול הקשר וחילוץ הורידו את העלות של כל ריצה, וכישורים, בחירת מודלים וסוכנים מקבילים העלו את איכות התשובה או שמרו עליה.
הביצועים של medium השתפרו מ-55% ל-77% ב-BrowseComp וב-DSQA, בעוד שהעלויות ירדו בכמעט 90%. BrowseComp ו-DSQA הם מבחני ביצועים ציבוריים למחקר; WANDR הוא מבחן הביצועים של Perplexity למשימות מחקר ארוכות שמערבות ישויות מרובות. xhigh מבצע עבודה סוכנית, כמו הרצת קוד בארגז חול, קיום לולאות ארוכות של שימוש בכלים ועבודה מול מקורות רבים בו-זמנית. xhigh שמר על ציון WANDR של 76.5% תוך פעולה בכ-25% מהעלות של התצורה מאוגוסט 2026.
העלות של מחקר
בקשת מחקר מעמיק יכולה להריץ עשרות חיפושים, לקרוא מאות דפים ולבדוק ראיות לפני שהיא עונה. כל אחת מהפעולות האלה מוסיפה טוקנים להקשר ודולרים לחשבון. בלי מגבלות, סוכן ממשיך לבצע פעולות שמעלות את העלות וגודשות את ההקשר בלי לשפר את התשובה. חמישה גורמים אחראים לרוב העלות הזו:
- הקצאת תקציב. לסוכנים עם תקציב קבוע עלולים להיגמר הצעדים, והם עלולים לסיים את הריצה מוקדם לפני שהשלימו את המשימה. מנגד, סוכנים ללא תקציב קבוע עלולים להמשיך לרוץ ולצבור עלויות בלי לשפר את התשובה הסופית.
- תקורת הקשר. תוצאות החיפוש והדפים שאוחזרו מכילים את הראיות, אבל ללא בקרה, חלון ההקשר עלול להתמלא במהירות במידע לא רלוונטי. חלונות הקשר גוררים עלויות מצעד לצעד, וחלונות עמוסים מדי עלולים לפגוע בביצועי הסוכן.
- בחירת תהליך עבודה. משימות שונות דורשות גישות שונות. חיפוש של עובדה בודדת, שאלה רב-שלבית וסקירה רחבה של מקורות דורשים כל אחד תהליך עבודה שונה. כשהבחירה נשארת בידי המודל, הוא בוחר פעמים רבות תהליך לא יעיל. פירוט כל אסטרטגיה זמינה בהנחיה של הסוכן לא פותר את הבעיה. ההוראות הנוספות נישאות כטוקנים בכל צעד, והמודל מציית לכל אחת מהן באופן פחות אמין לאורך זמן.
- בחירת מודל. מעבר למודל גדול יותר לא בהכרח מספק שיפור בביצועים שהולם את העלות הנוספת. מודלים חדשים מגיעים עם כותרות וציונים שפורסמו במבחני ביצועים. עם זאת, שיפורים במבחני ביצועים עשויים להיות מזוהמים או לשקף התאמת יתר של המודל. בלי הערכה במשימות אמיתיות, החלפת מודל עלולה להעלות את העלויות בלי לשפר את האיכות.
- הרחבה באמצעות ריבוי סוכנים. סוכן יחיד יכול לחפש, לקרוא ולהסיק מסקנות ממספר סופי של מקורות בכל ריצה. הרצה של כמה סוכנים במקביל משפרת את האיכות במשימות התובעניות ביותר, אבל גם מגדילה את העלויות ומוסיפה מורכבות אם היא לא מנוהלת נכון.
הפתרון של כל אחד מהאתגרים האלה הוריד את העלויות בכל רמת מאמץ בלי לפגוע בביצועים.
שליטה בתקציב המחקר
לכל רמת מאמץ יש תקציב מחקר קבוע עם שלושה רכיבים:
- מגבלות צעדים: מספר התורות שהסוכן יכול לבצע
- קריאות לכלים: מגבלה על המספר הכולל של קריאות לכלים בבקשה. צעד יחיד יכול לבצע כמה קריאות לכמה כלים בו-זמנית, ולכן מגבלת צעדים לבדה לא שולטת בכמות הפעולות שמתבצעות בתוך צעד.
- תזכורות תקציב: הודעות תקופתיות על מספר הצעדים שנותרו, כדי שהסוכן יוכל לתעדף ולהשאיר מקום לכתיבת התשובה במקום שהתקציב ייגמר לו באמצע המשימה.
התקציב הוא הפשרה המרכזית: יותר צעדים פירושם תשובות טובות יותר, וכל צעד כרוך בעלויות. עם openai/gpt-6-luna, העלאת מגבלת הצעדים מ-1 ל-15 משפרת את הדיוק ב-BrowseComp + DSQA מ-41% ל-80%, בעוד שהעלות לשאילתה עולה מ-0.0017$ ל-0.0152$, כלומר עלות גבוהה פי 9 בערך תמורת ציון גבוה פי 2 בערך.
מגבלת צעדים לבדה לא שולטת בעלות המחקר. תחת אותו תקציב של חמישה צעדים, openai/gpt-6.1-terra מבצע יותר קריאות לכלים מאשר openai/gpt-6-luna, כי מודלים בעלי יכולות גבוהות יותר נוטים לבצע כמה קריאות בצעד יחיד. רמות המאמץ מגבילות גם את הקריאות לכלים וגם את הצעדים. במודלים האלה, מגבלת הקריאות לכלים חשובה לא פחות ממגבלת הצעדים.
כל רמת מאמץ מכווננת את המגבלות האלה, אבל הסוכן צריך גם לדעת כמה צעדים ופעולות נותרו לו כדי למלא את הבקשה. בלי המידע הזה, הצעדים או הפעולות עלולים להיגמר לו, והוא ייאלץ לענות לפני שהמחקר הושלם. התקציב מוצהר בתחילת הריצה, ותזכורות מגיעות כשהסוכן מתקרב למגבלות שלו, כך שנשאר מקום לאמת את התוצאות ולמסור אותן. ברמת high, התזכורות מתייחסות גם לתקציב הצעדים וגם לתקציב הקריאות לכלים.
שני סוכנים, אחד עם תזכורת תקציב ואחד בלעדיה, נבחנו במשימת BrowseComp שבה היה עליהם לזהות סדרת טלוויזיה משנות ה-90 על סמך שלוש ביוגרפיות של שחקנים מצוות השחקנים. הסוכן שקיבל תזכורת מצא את התשובה הנכונה תוך שימוש ב-13 מתוך 40 הצעדים שבתקציב. הסוכן ללא תזכורת התקציב ניצל את כל 40 הצעדים ולא מצא את התשובה הנכונה. הלולאה של אותו סוכן הסתיימה באופן בלתי צפוי, והמודל לא היה מודע לתקציב המחקר שנותר. תזכורות שומרות על מיקוד הסוכנים ועוזרות להם לתעדף ביעילות את המשאבים שנותרו.
ניהול הקשר
דחיסה
משימות מחקר ארוכות ממלאות את חלון ההקשר של המודל בתוצאות חיפוש, בדפים שאוחזרו ובהערות ביניים. כשהחלון מתמלא, הסוכן חייב להפסיק לעבוד.
דחיסה מאפשרת לריצות ארוכות להמשיך לפעול בלי למלא את חלון ההקשר. כשההקשר חורג מסף מסוים, הסוכן מחליף את העבודה שבוצעה עד כה בסיכום קצר יותר של מה שמצא ומה שנותר, ואז ממשיך.
דחיסה תמיד משאירה בהקשר שלושה דברים: הנחיית המערכת, הבקשה המקורית וכל הכישורים שהסוכן כבר טען. אחרי כל דחיסה, הסוכן מקבל שתי הוראות קצרות. ההוראה הראשונה היא: ‘המשך לעבוד עד שהמשימה תושלם.’ כך הסוכן לא מתייחס לסיכום כנקודת עצירה. ההוראה השנייה מודיעה לסוכן כמה דחיסות כבר התרחשו, כדי שיוכל לתכנן את משימות המחקר שנותרו לו. ריצות ארוכות שומרות על המטרה והתוכנית המקוריות לנגד עיניהן, ועלות הלולאות הארוכות יורדת בלי פגיעה באיכות.
לאחזר רק את מה שחשוב
כל דף שהסוכן קורא מתווסף להקשר שלו, והסוכן נושא אותו בכל צעד שאחריו. דף אינטרנט כולל מידע שאינו קשור לשאלה, כמו רכיבי ניווט, טקסט תבניתי ותוכן אחר.
במקום להעביר לסוכן דף שלם, fetch_url מבצע תחילה סבב חילוץ. טקסט הדף נשלח למודל קטן יותר יחד עם המשימה הנוכחית של הסוכן. המודל מחזיר רק את הקטעים הרלוונטיים, מצוטטים במדויק כדי שהסוכן יוכל לצטט אותם. במהלך הערכה, דף של 5,561 טוקנים צומצם ל-293 טוקנים, מה שפינה מקום להקשר רלוונטי נוסף.
שימוש ב-fetch_url עם חילוץ ברמת המאמץ high הפחית את טוקני הקלט לכל שאילתה בכ-50%. החילוץ גם שיפר את הביצועים במבחני הביצועים, עם ציון של 88.0% בעלות של 0.073$ לשאילתה, לעומת 83.5% בעלות של 0.094$ ללא חילוץ.
חיפוש ממוקד באינטרנט
חיפוש באינטרנט הוא מרכיב מרכזי בכל בקשת מחקר של סוכן. בוצעו שלושה שינויים באופן שבו סוכנים מחפשים:
- יותר הקשר בכל חיפוש: כל חיפוש מחזיר כעת עד 4K טוקנים של תוצאות במקום 2K. הסוכן מוצא את מה שהוא צריך מהר יותר, וכתוצאה מכך מתבצעים פחות חיפושים והעלות נמוכה יותר.
- מנוע חדש לקטעי תקציר: תוצאות החיפוש מקבלות קטעי תקציר שתואמים טוב יותר את השאילתה, כך שהסוכן לא מועמס בטקסט לא רלוונטי.
- Fast Search: בעלות של 1.00$ לכל 1K בקשות, Fast Search מפחית גם את העלות וגם את זמן ההשהיה של כל קריאת חיפוש.
צוות Perplexity Search משפר באופן רציף את איכות האחזור במגוון רחב של משימות. עדכונים אחרונים הניבו שיפורים בקוד, בתיעוד למפתחים, בדפי עיון ובתוכן משפטי ורגולטורי.
בחירת תהליך העבודה הנכון
חלק מהמשימות דורשות הרצה של חיפושים רבים במקביל; אחרות דורשות קריאה מעמיקה של כמה מסמכים ארוכים.
עם זאת, טעינת כל תהליכי העבודה להנחיית המערכת של הסוכן מוסיפה תקורת הקשר ועלולה לגרום למודל לתפקד פחות טוב במשימות פשוטות. במקום זאת, הכישורים מאורגנים בעץ עם חשיפה הדרגתית. המודל טוען כישורים והוראות רלוונטיים תוך כדי עבודה, ומשאיר מידע לא קשור מחוץ להקשר שלו. כל כישור עולה רק את השם והתיאור שלו עד שהמודל מחליט שהוא מתאים למשימה וטוען אותו, ואז ההוראות המלאות מתווספות להקשר והמודל פועל לפי תהליך העבודה שנקבע.
כדי למדוד את התרומה של כל כישור, מסירים כל כישור בנפרד ומשווים את האיכות והעלות במשימות שבהן סוכן הבסיס טען את אותו כישור. ניסויי ההסרה האלה מראים אילו תהליכי עבודה עוזרים לסוכן וכיצד הם משפיעים על יעילות המחקר.
ההרצות של מבחן הביצועים WANDR שלהלן מדגימות סוכנים שבוחרים את תהליכי העבודה הנכונים למשימות ספציפיות. ההנחיות לחיפוש רחב ולפיזור (fanout) נטענו בכל משימה, מה שמשקף את הצורך לחקור ישויות מרובות. כישור חיפוש האנשים נטען רק ב-6% מהמשימות, ורק כשהשאלות עסקו באנשים.
בבדיקה של משימת WANDR אחרת, הסוכן טען את כישור חיפוש האנשים עם דפוס פיזור (fanout) כדי למצוא מהנדסי inference בלונדון. הוא הרחיב 39 מונחי תפקיד ל-117 שאילתות, ואז מיזג את תוצאות הסבב הראשון ל-43 פרופילים ייחודיים לסינון נוסף. כישור חיפוש האנשים הנחה את הסוכן לאורך ההרחבה הזו בלי להוסיף הקשר לא רלוונטי. הקטע שלהלן מעובד מהסקריפט של הסוכן; שמות פונקציות העזר הם להמחשה בלבד.
Python
# roles contains the 39 role variants selected by the agent.
queries = []
for role in roles:
queries.extend([
{"query": f"Google DeepMind {role} London"},
{"query": f"Google {role} London"},
{"query": role, "company": "Google", "location": "London"},
])
results = pplx_sdk.search.people_many(
queries, limit_per_query=50, concurrency=8
)
profiles = {}
for result in results:
if not result.ok:
continue
for profile in result.result:
if "linkedin.com/in/" not in profile.url:
continue
url = profile.url.split("?")[0].rstrip("/")
previous = profiles.get(url, {})
if url not in profiles or len(profile.summary or "") > len(
previous.get("summary") or ""
):
profiles[url] = {
"url": url,
"title": profile.title,
"summary": profile.summary,
}
שימוש בנקודות ביקורת הוא תהליך עבודה נוסף שעוזר לסוכנים במשימות ארוכות. דפוס נקודות הביקורת מגיע מתכנות אצווה. כשסקריפט מעבד רשימה ארוכה, הוא כותב כל תוצאה לדיסק ברגע שהיא זמינה, במקום להחזיק הכול בזיכרון עד הסוף. אם הסקריפט קורס או נתקל בשגיאות באמצע, שום דבר לא הולך לאיבוד: הריצה הבאה קוראת את מה שכבר נשמר וממשיכה מהנקודה שבה נעצרה, ומנסה שוב רק את הפריטים שנכשלו.
במשימת WANDR אחרת, הסוכן היה צריך לסנן פרופילים של 188 מהנדסים. הוא טען את דפוס נקודות הביקורת כדי לתעד כל תוצאה תוך כדי עבודה. הסבב הראשון חילץ 160 פרופילים אבל נכשל ב-28. כשהסוכן הריץ את הסקריפט שוב, הוא דילג על הפרופילים שכבר תועדו וניסה שוב רק את 28 הנותרים. בלי נקודת הביקורת, רשומה פגומה אחת הייתה מחייבת לאחזר את כל 188 הפרופילים מחדש.קטע Python מעובד; דפי הקלט, הוראת הסינון, הסכימה והייבואים הושמטו; שמות פונקציות העזר הם להמחשה בלבד.
Python
checkpoint = Checkpoint("research/profile-screening")
config = instruction + json.dumps(schema)
config_id = hashlib.md5(config.encode()).hexdigest()[:6]
def checkpoint_key(page):
url_id = hashlib.md5(page["url_in"].encode()).hexdigest()[:10]
return config_id + url_id
pending = [
page for page in pages if not checkpoint.has(checkpoint_key(page))
]
for offset in range(0, len(pending), 20):
batch = pending[offset : offset + 20]
inputs = [
json.dumps({
"url": page["url_in"], "content": page["content"][:30_000]
})
for page in batch
]
results = pplx_sdk.llm.extract_many(
inputs,
instruction=instruction,
output_schema=schema,
chunk_size=5,
concurrency=4,
)
for page, result in zip(batch, results):
if not result.ok or result.result.error:
continue
checkpoint.record(
checkpoint_key(page),
[{"url": page["url_in"], **result.result.result}],
)
נקודת הביקורת מתעדת תוצאות מוצלחות; היא לא מפעילה ניסיונות חוזרים. הכללת ההוראה והסכימה במפתח מבטיחה ששינוי בקריטריוני הסינון יגרום לעיבוד מחדש.
לא כל בדיקה הובילה לשיפור באיכות וביעילות. נבחנה טעינה מוקדמת של כל הכישורים לסוכן לפני שהתחיל במשימה. ב-BrowseComp וב-DSQA, הטעינה המוקדמת העלתה את העלות ב-13%. ב-WANDR, שבו מסלולי מחקר ארוכים יותר הופכים את התוכן שאוחזר לנתח גדול יותר מטוקני הקלט, הטעינה המוקדמת גם מורידה את הציונים. התוצאות האלה תמכו בהמשך השימוש בחשיפה הדרגתית.
בחירת מודל
ככל שיכולות המודלים מתקדמות, גם המודל הטוב ביותר לכל רמת מאמץ משתנה. Perplexity מפעילה לולאת מחקר אוטומטית שעוקבת אחר הכרזות על מודלים חדשים ואחר זמינותם. הערכות מופעלות ברגע שמודל הופך לנגיש.
כשמודל חדש משוחרר, סוכן אוטומטי מעביר אותו דרך ה-harness של ההערכה. הוא בוחן טווח של ערכים למאמץ ההנמקה, לתקציבי הצעדים והקריאות לכלים ולתצורות הכלים, ומדרג כל ריצה לפי איכות ועלות בהשוואה לרמות המאמץ הנוכחיות. כשריצה מציגה נסיגה, הסוכן חוקר מדוע, מתאים את ההגדרות ומריץ את ההערכה שוב. מודל מועמד מחליף את המודל הנוכחי רק כשהוא מנצח באיכות באותה עלות או בעלות נמוכה יותר.
מבחני ביצועים ציבוריים הם כלי שימושי, אבל הציונים שלהם לא תמיד משקפים ביצועים במשימות בעולם האמיתי. לדוגמה, התרשים שלהלן מציג מודל מועמד שקיבל ב-BrowseComp ציון גבוה ב-13.3 נקודות מקו הבסיס, אבל ציון נמוך משמעותית מקווי הבסיס המקבילים במשימות מחקר פנימיות בתחומים הארגוני, המשפטי והפיננסי.
הרחבה באמצעות ריבוי סוכנים
סוכן יחיד יכול לכסות רק מספר מוגבל של מקורות בלולאה אחת. במשימות מורכבות, כמה סוכנים עובדים במקביל בתיאום, וכל אחד מהם מטפל בחלק אחר של הבעיה.
הסוכן הראשי הוא המתזמר. הוא קורא ל-spawn_agent כדי ליצור סוכני משנה ומקצה לכל אחד מהם משימה ספציפית וממוקדת. כל סוכן משנה מריץ לולאת מחקר משלו עם הקשר נפרד, ומשתמש במודל, בכלים ובתקציב הצעדים שלו. סוכני המשנה מדווחים על התוצאות שלהם לסוכן האב, שיכול לשלוח לסוכן משנה משימת המשך או לבדוק את ההתקדמות שלו. המתזמר וסוכני המשנה מחליפים ביניהם הודעות כדי לשתף ראיות, לסמן חסמים ולהתאים את הצעדים הבאים. ככל שמגיע מידע חדש, המתזמר מחדד את המשימות, וכשהעבודה מסתיימת, הוא משלב את התוצאות לתשובה אחת.
ה-Agent API תומך בתפקידי סוכן מוגדרים מראש, והמתזמר יכול ליצור סוכני משנה עם הוראות מותאמות אישית.
רמת המאמץ ultra מריצה שלושה סוכנים במקביל על משימה. כל סוכן חוקר באופן עצמאי את המשימה כולה, וכך מתקבלות ראיות שונות. סוכן רביעי ממזג את הממצאים שלהם, מסיר כפילויות וכותב את התשובה הסופית.
ב-WANDR, רמת ultra משיגה ציון של 85.9% בעלות של 21.71$ למשימה. זהו הציון הגבוה ביותר מבין התצורות שנבדקו.
מה הלאה
רמות המאמץ נבדקות ומשופרות באופן רציף. הרמה שהמשתמשים בוחרים קובעת כמה מחקר משימה מקבלת וכמה היא תעלה. תקציבי צעדים וקריאות לכלים, לצד תזכורות ככל שהם מתקרבים לסיומם, שומרים על הבקשות במסגרת התקציב. דחיסה, חילוץ וקטעי תקציר משופרים שומרים על הקשר שממוקד בראיות. כישורים מתאימים את תהליך העבודה למשימה, וסוכנים מקבילים מרחיבים את מה שלולאה אחת יכולה לכסות. לולאת הערכה אוטומטית מאשרת מודל חדש רק כשהוא משפר את איכות המחקר באותה עלות.
כל רמת מאמץ תמשיך להתפתח ככל שמודלים ותצורות חדשים יוכיחו את עצמם בהערכה. קריאה לרמה לפי שמה מקבלת את השיפורים האלה באופן אוטומטי; נעילה לגרסה מסוימת שומרת על תצורה קבועה.
נסו את Agent API והשוו בין רמות המאמץ על עומסי העבודה שלכם. פרטים על רמות המאמץ זמינים בתיעוד רמות המאמץ של Agent API שלנו.