יצירת SPACE: זמני ריצה מאובטחים ויעילים לסוכנים ארוכי-טווח
SPACE היא פלטפורמת ארגזי החול המאובטחת והיעילה של Perplexity המניעה תהליכי עבודה של סוכנים ארוכי-טווח והרצת קוד מהירה ומבודדת.
ככל שתהליכי העבודה (Agentic workflows) של סוכנים הופכים ארוכים ואוטונומיים יותר, סביבות הפעולה של סוכני ה-AI חשובות בדיוק כמו המודלים שמניעים אותם. סוכנים צריכים לבצע עבודה אמיתית, כגון הרצת קוד, עריכת מערכות קבצים וביצוע משימות מרובות שלבים במשך שעות או ימים. משתמשים רוצים שלסוכנים תהיה גישה לכלים ולקבצים הדרושים להם לביצוע משימות אלו, אך עליהם גם להיות בטוחים שמערכותיהם יישארו מאובטחות גם אם הסוכנים ייפרצו. ארגז חול (Sandbox) הוא מה שמאפשר את כל אלו: סביבה מבודדת שבה סוכן יכול לפעול בחופשיות בזמן שהמארח, דיירים אחרים ופרטי זיהוי רגישים נשארים מוגנים.
גישות מסורתיות לארגזי חול מבוססי קונטיינרים אינן מתוכננות למשימות מסוג זה. הן בדרך כלל מניחות קיומן של עבודות קצרות-מועד וחסרות מצב (stateless), ומסתמכות על הליבה (kernel) כנקודת כשל יחידה. לעומת זאת, הפעלות של סוכנים הן ארוכות-טווח ובעלות מצב (stateful): סוכן צובר שעות של הקשר, מערכת קבצים עובדת ותהליכים רצים שאי אפשר פשוט לזרוק ולבנות מחדש מאפס. מעבר לכך, יש להתייחס לעומס העבודה שבפנים כבלתי מהימן כברירת מחדל, מה שמחייב אמצעי אבטחה חזקים יותר. הפעלות ארוכות-טווח של סוכנים זקוקות לתשתית המסוגלת לבודד אורח עוין, לשמור על מצבו ולהמשיך לפעול בהיקף נרחב.
האתגר המרכזי בהנדסת ארגזי חול נובע מהמתח שלעתים קרובות מתפתח בין אבטחה, פונקציונליות ויעילות. לדוגמה:
- מתן גישה רחבה יותר מאפשר לסוכן להשיג יעדים רבים יותר, אך חושף חלק נרחב יותר מהמערכת לעומס עבודה שאינך בוטח בו.
- שיתוף רב יותר בין ארגזי חול מאיץ את יצירתם, אך מרחיב את משטח התקיפה.
- יצירת תמונות מצב בתדירות גבוהה יותר משפרת את יכולת השחזור ומאפשרת תכונות כמו החזרה למצב קודם, אך דורשת זמן ונפח אחסון.
ארגזי חול המיועדים לסוכנים, כמו אלו הנדרשים להרצת קוד, שימוש ב-כישורי סוכן (Agent Skills) או ביצוע צינורות עיבוד של חיפוש כקוד (Search as Code) בשאילתות Computer, דורשים את כל השלושה. עבדנו קשה בחודשים האחרונים על תכנון והנדסת הדור הבא של תשתית הסוכנים המניעה את המוצרים שלנו. כיום אנו מציגים את SPACE (פלטפורמת ארגזי חול להרצת קוד של סוכנים - Sandboxed Platform for Agentic Code Execution): פלטפורמת ארגז חול הבנויה עבור תהליכי עבודה של סוכנים שהיא מאובטחת, אמינה ויעילה בקנה מידה רחב. בחודש שעבר התחלנו לפרוס את SPACE כשכבת ארגז החול המניעה את Perplexity Computer. במהלך השבוע האחרון היא תמכה באופן מאובטח במיליונים של יצירות ארגזי חול ועשרות מיליוני חיבורים מחדש, עם זמני הפעלה מהירים פי 3-5 מהפתרון הקודם שלנו.
מאמר זה מציג את החלטות הארכיטקטורה והעיצוב שמאחורי SPACE. נכון להיום, 100% מההפעלות של Computer פועלות כעת על SPACE. אנחנו נרגשים לפרוס את הפלטפורמה הזו בממשקים נוספים כדי לספק למשתמשים ולמפתחים שלנו סביבת זמן ריצה מהשורה הראשונה לסוכנים.
ארכיטקטורה
ברמה גבוהה, המערכת מאורגנת בשלוש שכבות.
מישור בקרה (Control plane) הוא המוח של המערכת, המחליט מה צריך להתקיים והיכן. הוא מורכב מ-API gateway וממודולים לניהול מצב ברמת האשכול.
שירותים מקומיים לצומת (Node-local services) הם המנגנונים המקומיים הנדרשים לביצוע התוכנית של מישור הבקרה. הם אחראיים על מחזור החיים של ארגז החול, האחסון, הרשת והפעולות בעלות ההרשאות שמאחוריהם.
ארגז החול הוא סביבת הביצוע המבודדת עצמה. היא ממומשת כמכונה וירטואלית המשולבת עם ה-space-daemon: תהליך רקע בתוך האורח שמתווך גישה למערכת הקבצים, לתהליכים ולרשת עבור עומס העבודה.
מישור בקרה
שער ה-API הוא נקודת הכניסה. בקשות נכנסות עוברות אימות והרשאה, ולאחר מכן מתורגמות לרשומות של המצב הרצוי.
מישור הבקרה הוא חסר מצב מטבעו, כאשר כל המידע העמיד (durable) מועבר למסד נתונים משותף. הוא עוקב אחר מידע ברמת האשכול על אודות ארגזי חול – כגון הצומת שאליו הם משויכים, היכן הם רצים והאם הם גובו לאחסון עמיד. הוא משווה באופן רציף בין המצב הרצוי למצב הנצפה ומכוון את שניהם לעבר התכנסות. הפעולות הן אידמפוטנטיות (idempotent), כך שמישור הבקרה יכול להתאושש באופן אוטומטי לאחר כל קריסה, הפעלה מחדש או כשל חלקי.
שירותים מקומיים לצומת
שירותים מקומיים לצומת מבצעים את העבודה בפועל של הכנת תבניות, הפעלת ארגזי חול, חיבור רשתות והרצת שירותי זמן ריצה צד-מארח. כל צומת מריץ סט קטן של תהליכי רקע (daemons) המנהלים כל ארגז חול הממוקם עליו, והצומת משמש כמקור האמת עבור המצבים הפעילים של ארגזי חול אלו.
מנהל ארגזי החול יודע אילו ארגזי חול רצים, מושהים, מוקפאים או מופסקים, יחד עם המשאבים האמיתיים שלהם. הוא פועל ללא הרשאות מיוחדות ומאציל את כל העבודה עתירת ההרשאות למנהל הצומת, שהוא תהליך השורש היחיד המתווך את הפרימיטיבים הבסיסיים. האחסון מטופל באופן מקומי ועמיד: תמונות מצב של מצבי ארגז חול נוכחיים נשמרות בצומת, ומנהל נפחים מעביר תמונות מצב ותבניות אל ומאחסון אובייקטים לפי הצורך כדי לאפשר פעולות חוצות-צמתים. שערי אבטחה מגנים על הגישה של ארגז החול: מנהל פרטי הזיהוי (credential manager) שולט בהזרקת אישורים תחת הרשאה לכל שירות, ושער הרשת אוכף את מדיניות היציאה (egress) של כל ארגז חול.
ארגז חול
ארגז החול עצמו הוא מכונה וירטואלית (VM) עם ליבת אורח משלה, שמריצה את עומס העבודה של המשתמש מאחורי גבול בידוד חומרתי. מכיוון שלכל ארגז חול יש ליבה משלו, עומס עבודה שנפרץ אינו יכול להישען בחזרה על ליבת מארח משותפת כנקודת כשל יחידה; גם אם הוא מנצל בהצלחה את ליבת האורח שלו, הפריצה הזו נשארת כלואה בגבול ה-VM של ארגז החול ולא מתפשטת לעומסי עבודה אחרים.
תהליך רקע של space רץ בתוך כל מכונה וירטואלית, ומשמש כסוכן קל-משקל המווסת כל פעולה או שינוי שהפלטפורמה מבצעת בתוך האורח. הוא מטפל בגישה למערכת הקבצים ובניהול תהליכים. הוא גם מדווח על מוכנות האורח ועוקב אחר פעילות, כך שהפלטפורמה יודעת מתי ארגז חול הפך ללא פעיל (idle) וניתן להשהות אותו או למחזר אותו. באופן קריטי, תהליך הרקע של space אינו מדבר ישירות עם לקוחות, אלא מתקשר עם המארח על גבי ערוץ פרטי בתוך המכונה הווירטואלית. הדבר שומר על כל האינטראקציה עם האורח בנתיב מבוקר ושומר את הרשת של ארגז החול עצמו אך ורק עבור תעבורה יוצאת של עומס העבודה.
שלושה עמודי תווך: אבטחה, פונקציונליות ויעילות
לאחר מכן, אנו צוללים לתוך המאפיינים המרכזיים ש-SPACE חייבת לספק על פני שלושה עמודי תווך: אבטחה, פונקציונליות ויעילות. כפי שצוין קודם לכן, שלושת אלו מושכים לכיוונים מנוגדים. עם זאת, איננו יכולים להתפשר על אף אחד מהם אם ברצוננו לתמוך בסוכנים חזקים העומדים ביכולות המודלים של היום. אבטחה מונעת מעומס עבודה לא מהימן, ואולי עוין, לפגוע במארח, בדיירים אחרים או בסודות של המשתמש. פונקציונליות מעניקה לסוכנים את מחזור החיים העשיר שהם זקוקים לו. יעילות הופכת את כל זה לבר-השגה תחת מגבלות זיכרון, דיסק וחישוב.
אבטחה: הגנה על נתונים ומערכות
פלטפורמות ארגזי חול זקוקות לאבטחה חזקה כדי להבטיח שקוד שגוי או אף זדוני שרץ בתוך ארגזי החול לא יגרום להשפעות מזיקות במקומות אחרים. ללא אכיפה של בקרת יציאה הדוקה ושמירת סודות מחוץ לארגז החול, צעד שגוי בודד מצד סוכן עלול להדליף את מפתחות המשתמש או להבריח החוצה תוצרי עבודה.
SPACE נוקטת גישה רב-שכבתית להבטחת אבטחה עבור ארגזי חול. לבידוד ארגז החול יש שני רכיבים: בידוד מכונה וירטואלית ובידוד תהליכי מערכת הפעלה מארחת. יש לפרוץ את שניהם כדי לקבל גישה חוצת-ארגזי חול. התקשורת עם ארגז החול מבוקרת בקפידה; תהליכים יכולים לתקשר רק דרך ערוצים ייעודיים. שער הרשת מחייב את כל תעבורת היציאה לעבור דרכו. תהליך הרקע של space הוא הערוץ המורשה היחיד בין ארגז החול (הבלתי מהימן) לבין הפלטפורמה (המהימנה).
אישורים לעולם אינם חיים במקום שבו סוכן יכול לגנוב אותם. מאגר האישורים יושב מחוץ לגבול ארגז החול ואחראי על מחזור החיים של האישורים. הוא מאחסן ושולף סודות באמצעות מנגנון אחסון (backend) ניתן לחיבור, קובע אילו אישורים מתאימים לפי היררכיית ההיקפים, מנהל מטא-נתונים כגון שיטת הזרקה ותוקף, ואוכף מגבלות קצב ורישום ביקורת על כל גישה. בעת הצורך, אישורים מוזרקים בשכבת הרשת או ממולאים אוטומטית על ידי סוכן דפדפן, במקום להיכנס ישירות לארגז החול.
הנתונים מוגנים במנוחה (at rest). SPACE תומכת ב-BYOK (הבא מפתח משלך - Bring Your Own Key) כדי להגן על נתונים המאוחסנים חיצונית. מפתחות ההצפנה מגיעים משירות ניהול המפתחות של הלקוח ולעולם אינם נכנסים לארגז החול. אם הארגון מבטל את המפתח, הנתונים שלו הופכים לבלתי קריאים.
פונקציונליות: הפעלת תהליכי עבודה של סוכנים
כדי לתמוך בתהליכי עבודה של סוכנים, ארגזי חול זקוקים לתמיכה עשירה במחזור החיים. עליהם להיווצר במהירות ובקנה מידה רחב, מכיוון שסוכן עשוי להפעיל רבים מהם בבת אחת ואין עליו להמתין לאף אחד מהם שיעלה. עליהם להתמיד למשך זמן בלתי מוגבל, שכן הפעלה עשויה להימשך דקות או לרוץ במשך חודשים. עליהם להשהות בצורה נקייה, לפעמים למשך פרקי זמן ארוכים, כגון כאשר משימה חסומה וממתינה לקלט אנושי. ועליהם לתמוך בפיצול (forking), שחזור לאחור והתאוששות מקריסה, כך שהפעלה תוכל להתפצל, לבטל צעד שגוי או להתחדש לאחר תקלה במקום להתחיל מחדש.
SPACE תומכת בכל האמור לעיל. היא ממדלת את מחזור החיים המלא של ארגז החול כמכונת מצבים מפורשת, וזה מה שהופך פעולות כמו יצירה, השהייה, חידוש, הקפאה ושחזור לאפשריות.
תמונות מצב הן המנגנון שמאחורי רוב היכולות האלה. מתזמן פועל במרווחי זמן קבועים ולוכד שני סוגי תמונות מצב: תמונות מצב של הדיסק (עותקים של מערכת הקבצים בנקודת זמן מסוימת) ותמונות מצב מלאות (נקודות ביקורת של ה-VM המושהה כולו). תמונות מצב של הדיסק נלכדות בתדירות גבוהה, בעוד שנקודות ביקורת מלאות הן בתדירות נמוכה יותר. הכול נשאר על הצומת, ושימור הנתונים דועך לפי שכבה. אפשר להשתמש בתמונות מצב אלה לשחזור במהלך ההפעלה; למשל, אפשר להשתמש בתמונות מצב של הדיסק כדי להחזיר את מערכת הקבצים לאחור ולבטל פקודה הרסנית, ו-full checkpoints מאפשרים לארגז חול שקרס להמשיך מרגע ריצה עדכני במקום מהפעלה קרה מהדיסק.
כאשר ארגז חול מוקפא, המכונה הווירטואלית מושהית, תמונת מצב מלאה נלכדת, והתוצרים (artifacts) מתמונת המצב המלאה מועלים לאחסון אובייקטים. שורת מסד נתונים עוקבת אחר תמונת המצב והופכת לבת-שחזור רק ברגע שכל תוצר הגיע ליעדו, כך שלעולם לא ניתן יהיה לחדש תמונת מצב שהועלתה באופן חלקי למצב מושחת. שחזור הוא ההפך מהקפאה. מכיוון שתמונת המצב מאוחסנת באחסון אובייקטים ולא בצומת המקורי, כל צומת יכול להחזיר את ארגז החול. המתזמן בוחר צומת, צומת זה מוריד את התוצרים, מיישם מחדש את דלתא מערכת הקבצים על גבי התבנית, ומחדש את פעולת המכונה הווירטואלית ממצב שצולם.
יעילות: אופטימיזציה של זמן ומרחב
לא די ליישם את התכונות לעיל במנותק; הן צריכות להיות אפשריות גם תחת מגבלות משאבים קשיחות. הזיכרון והדיסק בצומת הם סופיים, ומשתמשים רוצים שסוכנים יפעלו מהר ככל האפשר, כך שפעולות מחזור חיים חייבות להיות זולות הן מבחינת זמן והן מבחינת מרחב. איננו יכולים להרשות לעצמנו להעתיק תמונת מכונה מלאה בכל פעם שארגז חול נוצר, מושהה או מתפצל.
בחירת עיצוב מרכזית הופכת זאת לאפשרי: מערכת הקבצים. SPACE משתמשת ב-btrfs כמערכת הקבצים המקומית לצומת עבור אחסון ארגזי חול. Btrfs (מערכת קבצים עץ-B) משלבת מערכת קבצים מסוג העתקה-בכתיבה (copy-on-write) יחד עם ניהול נפחים לוגיים משולב. לכך יש מספר יתרונות:
העתקי Reflink הם מהירים, מכיוון שאתה משתף את הטווחים הבסיסיים (extents), כך שרק את המטא-נתונים צריך להעתיק.
תמונות המצב אטומיות ומהירות, מכיוון שכל שעליך לעשות הוא ליצור שורש חדש.
נדרש אחסון מינימלי, מכיוון שאתה מאחסן רק את מה שהשתנה.
כתוצאה מכך, ניתן ליצור ולשחזר ארגזי חול במהירות. במקום ליצור ארגז חול מאפס בכל פעם, אנו שומרים מאגר חם של פודים שכבר כוללים תבניות נפוצות הממומשות בדיסק, וממלאים בקשה על ידי קישור שלה לפוד שהתבנית שלו כבר תואמת. מתן מערכת קבצים ראשית הניתנת לכתיבה לאותו ארגז חול נעשה אז באמצעות שיבוט העתקה-בכתיבה ולא העתקה מלאה. כאשר אין פוד חם מתאים, אנו מממשים את התבנית לפי דרישה; אנו ממזגים בקשות בו-זמניות עבור אותה תמונה להורדה יחידה, כך שפרץ של בקשות זהות אינו הופך לפרץ של עבודות זהות.
התוצאה היא זמן ריצה של ארגז חול שהוא בו-זמנית עוצמתי, קל-משקל ומהיר כברק. כאשר השקנו את SPACE, הרצנו אותו לצד ספק ארגזי החול הקודם שלנו על אותה תעבורת ייצור. לאורך שבוע ההשקה, SPACE יצר ארגזי חול מהירים פי שלושה עד חמישה לאורך כל ההתפלגות. באופן ספציפי, חציון השהיית היצירה ירד מ-185 מילי-שניות ל-60 מילי-שניות (שיפור של פי 3.1), והשהיית האחוזון ה-90 ירדה מ-447 מילי-שניות ל-89 מילי-שניות (שיפור של פי 5.0). צפינו בשיפורים דומים בסדר גודל דומה על פני מדדי ביצועים ושימוש במשאבים אחרים.
זה גם מקל על יצירת תמונות מצב מתגלגלות של הדיסק, שכן הן מהירות, יעילות במרחב ואינן דורשות את השהיית ארגז החול. כמו כן, אחסון דלתא יעיל מקטין את המרחב הדרוש לאחסון תמונות מצב אלו.
סיכום
בעת תכנון מערכות מורכבות, מפתה לבחור יעד יחיד לאופטימיזציה בבידוד. אך מפתחי סוכנים מתקדמים דורשים אבטחה, פונקציונליות ויעילות במידה שווה. עם SPACE, יצאנו להשיג שיפור פרטו (Pareto) על פני כל שלושת עמודי התווך.
כל בחירת עיצוב בודדת יכולה לשרת מטרות מרובות בו-זמנית, מה שהופך את האיזון העדין הזה לאפשרי. מכונות וירטואליות לכל ארגז חול מעניקות לכל עומס עבודה ליבה משלה, ומחזקות את האבטחה באמצעות בידוד חזק תוך אספקת גבול נקודת בדיקה נקי שעליו מתבססות תמונות המצב. Btrfs מאפשר יישום יעיל של יצירת תמונות מצב, פיצול ופעולות אחרות החיוניות לזמני ריצה של סוכנים. תהליך הרקע של space שומר על כל האינטראקציה עם האורח בנתיב מבוקר צד-מארח, ואוטם את גבול האורח-מארח תוך שמירה על חופש התמרון של הסוכנים. שער הרשת המרכזי מתווך תעבורת יציאה והזרקת אישורים מבלי חשיפת סודות לאורח לעולם.
התוצאה של החלטות עיצוב אלו ואחרות היא פלטפורמה המאפשרת תזמור סוכנים בעולם האמיתי בקנה מידה רחב. SPACE מספקת את התשתית שעליה סוכנים ארוכי-טווח ובעלי מצב יכולים להתמודד בצורה מאובטחת עם עבודה בכל מורכבות או משך זמן, מבלי להקריב ביצועים או אבטחה.
כיום, SPACE כבר מניעה מיליוני הפעלות של Perplexity Computer. אנו מתכוונים ש-SPACE תשמש כשכבה מאוחדת להקצאה ובקרה של ארגזי חול בכל סביבה: מיקרו-מכונות וירטואליות של לינוקס ועד אורחי Windows וכלה במכונה המקומית של המשתמש עצמו. אנו עובדים קשה על דחיפת SPACE לסביבות החדשות האלה, כך שמפתחים יוכלו לספק מוצרי בינה מלאכותית הפועלים בכל מקום שבו המשתמשים עובדים.
אם אתם משתוקקים לעצב את שכבת המחשוב המניעה את סוכני המחר המתקדמים, אנו מזמינים אתכם להצטרף לצוות שלנו.
ציטוט
@online{perplexity2026MakingSpaceSecureAndEfficientRuntimesForLongRunningAgents,
author = {{Perplexity} and Kumar Pallav and Nick Dujay and Zibi Braniecki and Dmitry Pervukhin and Gigi Sayfan and Mostafa Abdelraouf and Nikhil Birmiwal and Rohin Bhasin and Shrikant Pandhare and Nikitha Lokareddy and Phi Hoang and Claire Beamer and Jeremy Yang and Jerry Ma},
title = {{Making SPACE: Secure and efficient runtimes for long-running agents}},
date = {2026-07-15},
url = {https://www.perplexity.ai/hub/blog/making-space-secure-and-efficient-runtimes-for-long-running-agents}
}