1. מבוא
בסדנת הקוד הזו תלמדו על Google Antigravity (שנקראת Antigravity בהמשך המסמך), פלטפורמת פיתוח מבוססת-סוכנים, שמשנה את סביבת הפיתוח המשולבת (IDE) לעידן שבו הסוכנים הם במקום הראשון.
בניגוד לעוזרים רגילים לקידוד שממלאים אוטומטית שורות, Antigravity מספק 'מרכז בקרה' לניהול סוכנים אוטונומיים שיכולים לתכנן, לקודד ואפילו לגלוש באינטרנט כדי לעזור לכם לבנות.
Antigravity מתוכננת כפלטפורמה שמתמקדת בסוכנים. ההנחה היא שה-AI הוא לא רק כלי לכתיבת קוד, אלא גורם אוטונומי שיכול לתכנן, לבצע, לאמת ולשפר משימות הנדסיות מורכבות עם התערבות אנושית מינימלית.
מה תלמדו
- התקנה והגדרה של Antigravity.
- הסבר על מושגי יסוד ב-Antigravity כמו Agent Manager, Editor, Browser ועוד.
- התנסות בכמה תרחישי שימוש עם Antigravity.
מה תצטרכו
כרגע, Antigravity זמין כגרסת טרום-השקה לחשבונות Gmail אישיים. הוא כולל מכסת שימוש בחינם במודלים מתקדמים.
צריך להתקין את Antigravity באופן מקומי במערכת. המוצר זמין ב-Mac, ב-Windows ובגרסאות ספציפיות של Linux. בנוסף למחשב שלכם, תצטרכו את הדברים הבאים:
- דפדפן האינטרנט Chrome
- חשבון Gmail (חשבון Gmail אישי).
ה-codelab הזה מיועד למשתמשים ולמפתחים בכל הרמות (כולל מתחילים).
בעיות בדיווח
יכול להיות שתיתקלו בבעיות במהלך העבודה עם Antigravity ובמהלך הלימוד באמצעות Codelab.
לדיווח על בעיות שקשורות ל-Codelab (שגיאות הקלדה, הוראות שגויות), לוחצים על הלחצן Report a mistake בפינה הימנית התחתונה של ה-Codelab הזה:

כדי לדווח על באגים או לשלוח בקשות להוספת תכונות שקשורות ל-Antigravity, צריך לדווח על הבעיה בתוך Antigravity. אפשר לעשות את זה ב-Agent Manager באמצעות הקישור Provide Feedback בפינה הימנית התחתונה:

אפשר גם לעבור לכלי העריכה באמצעות הקישור Report Issue שמופיע מתחת לסמל הפרופיל:

2. התקנה
נתחיל בהתקנה של Antigravity. המוצר זמין כרגע בתצוגה מקדימה, ואפשר להשתמש בחשבון Gmail אישי כדי להתחיל להשתמש בו.
עוברים לדף הורדות ולוחצים על גרסת מערכת ההפעלה המתאימה למקרה שלכם. מפעילים את קובץ ההתקנה של האפליקציה ומתקינים אותה במחשב. אחרי שמסיימים את ההתקנה, מפעילים את אפליקציית Antigravity. אמור להופיע מסך שדומה לזה:

בכל פעם צריך ללחוץ על Next. השלבים העיקריים מפורטים בהמשך:
- בחירת תהליך ההגדרה: תוצג לכם אפשרות לייבא מההגדרות הקיימות של VS Code או Cursor. נתחיל מחדש.
- בחירת סוג עיצוב של העורך: אנחנו נבחר בעיצוב הכהה, אבל הבחירה היא לגמרי שלכם.
- איך רוצים להשתמש בסוכן Antigravity?

כדאי להבין את זה קצת יותר לעומק. חשוב לזכור שאפשר לשנות את ההגדרות בכל שלב דרך 'הגדרות משתמש של Antigravity' (Cmd + ,).
לפני שנפרט על האפשרויות, נציג כמה נכסים ספציפיים (שמופיעים בצד שמאל של תיבת הדו-שיח).
מדיניות ההפעלה של מסוף
הכוונה היא לתת לסוכן את היכולת להריץ פקודות (אפליקציות או כלים) בטרמינל:
- המשך תמיד: פקודות טרמינל תמיד יופעלו אוטומטית (למעט פקודות שנמצאות ברשימת דחייה שאפשר להגדיר).
- בקשת בדיקה: בקשת בדיקה ואישור של המשתמש לפני הפעלת פקודות בטרמינל.
מדיניות בנושא כתיבת ביקורות
במהלך ביצוע המשימה, ה-Agent יוצר פריטי מידע שונים (תוכנית למשימה, תוכנית הטמעה וכו'). מדיניות הבדיקה מוגדרת כך שאתם יכולים לקבוע מי יחליט אם צריך לבדוק את המודעה. האם תמיד תרצו לבדוק את ההצעה, או שתאפשרו לנציג להחליט על כך. לכן, גם כאן יש שלוש אפשרויות.
- המשך תמיד: הסוכן אף פעם לא מבקש בדיקה.
- הסוכן מחליט: הסוכן יחליט מתי לבקש בדיקה.
- בקשת בדיקה: הסוכן תמיד מבקש בדיקה.
מדיניות הרצת JavaScript
כשהאפשרות הזו מופעלת, הסוכן יכול להשתמש בכלי דפדפן כדי לפתוח כתובות URL, לקרוא דפי אינטרנט ולבצע פעולות בתוכן הדפדפן. המדיניות הזו קובעת איך JavaScript מופעל בדפדפן.
- המשך תמיד: הסוכן לא יפסיק כדי לבקש הרשאה להפעיל JavaScript בדפדפן. כך הסוכן מקבל אוטונומיה מקסימלית לביצוע פעולות מורכבות ואימות בדפדפן, אבל גם חשוף יותר לניצול לרעה של פרצות אבטחה.
- בקשת בדיקה: הסוכן תמיד יפסיק כדי לבקש הרשאה להפעיל קוד JavaScript בדפדפן.
- מושבת: הסוכן אף פעם לא יריץ קוד JavaScript בדפדפן.
אחרי שהבנו את כללי המדיניות השונים, אפשר לראות ש-4 האפשרויות שמופיעות בצד ימין הן הגדרות ספציפיות של כללי המדיניות לגבי הפעלת הטרמינל, הבדיקה והפעלת JavaScript, וקיימת אפשרות רביעית שמאפשרת לנו שליטה מותאמת אישית לחלוטין. האפשרויות האלה זמינות כדי שנוכל לבחור כמה אוטונומיה אתם רוצים לתת לסוכן כדי לבצע פקודות במסוף ולבדוק ארטיפקטים לפני שתמשיכו במשימה.
4 האפשרויות הן:
- מצב מאובטח: המצב המאובטח מספק אמצעי בקרה משופרים לאבטחה של הסוכן, ומאפשר להגביל את הגישה שלו למשאבים חיצוניים ולפעולות רגישות. כשמפעילים את המצב המאובטח, מופעלים כמה אמצעי אבטחה כדי להגן על הסביבה.
- פיתוח מבוסס-בדיקה (מומלץ): הסוכן יבקש לעיתים קרובות לבדוק את הפעולות שלו.
- פיתוח מבוסס-סוכן: הסוכן אף פעם לא יבקש בדיקה.
- הגדרה בהתאמה אישית
האפשרות פיתוח מבוסס-בדיקה היא אפשרות מאוזנת ומומלצת, כי היא מאפשרת לסוכן לקבל החלטה ולחזור למשתמש כדי לקבל אישור.
הדף הבא הוא Configure your Editor (הגדרת העורך), שבו אפשר לבחור את ההעדפות שלכם לגבי ההגדרות הבאות:
- קישורי מקשים: הגדרת קישורי מקשים.
- תוספים: התקנה של תוספים פופולריים לשפה ותוספים מומלצים אחרים.
- שורת פקודה: מתקינים את כלי שורת הפקודה כדי לפתוח את Antigravity באמצעות
agy.
עכשיו אפשר להיכנס לחשבון Google. כמו שצוין קודם, Antigravity זמין במצב תצוגה מקדימה בחינם אם יש לכם חשבון Gmail אישי. נכנסים לחשבון. הדפדפן ייפתח ותוכלו להיכנס לחשבון. אם האימות יצליח, תופיע הודעה דומה לזו שבהמשך, והיא תפנה אתכם בחזרה לאפליקציית Antigravity. פשוט זורמים עם זה.
ולסיום, תנאים והגבלות. אתם יכולים להחליט אם להצטרף או לא, ואז ללחוץ על Next.
הפעולה הזו תוביל אתכם לרגע האמת, שבו Antigravity יחכה לכם כדי לשתף איתכם פעולה.
3. Agent Manager
אנחנו מוכנים להתחיל!
Antigravity מסתמך על הקוד הפתוח של Visual Studio Code (VS Code), אבל משנה באופן קיצוני את חוויית המשתמש כדי לתת עדיפות לניהול סוכנים על פני עריכת טקסט. הממשק מחולק לשני חלונות ראשיים נפרדים: Editor ו-Agent Manager. ההפרדה הזו בין התחומים משקפת את ההבדל בין תרומה אישית לבין ניהול הנדסי.
Agent Manager: Mission Control
כשמפעילים את Antigravity, בדרך כלל לא מוצג למשתמש עץ קבצים, אלא מנהל הסוכנים, כמו שמוצג בהמשך:

הממשק הזה משמש כלוח בקרה Mission Control. הוא מיועד לתיאום ברמה גבוהה, ומאפשר למפתחים ליצור סוכנים, לעקוב אחריהם ולקיים איתם אינטראקציה. הסוכנים פועלים באופן אסינכרוני בסביבות עבודה או במשימות שונות.
בתצוגה הזו, המפתח פועל כאדריכל. הם מגדירים יעדים ברמה גבוהה, למשל:
- שינוי מבנה של מודול האימות
- עדכון עץ התלות
- יצירת חבילת בדיקות ל-Billing API
כפי שמצוין בתרשים שלמעלה, כל אחת מהבקשות האלה יוצרת מופע ייעודי של סוכן. בממשק המשתמש מוצגת המחשה חזותית של זרימות העבודה המקבילות האלה, עם הסטטוס של כל סוכן, הארטיפקטים שהוא יצר (תוכניות, תוצאות, הבדלים) וכל בקשה בהמתנה לאישור אנושי.
הארכיטקטורה הזו נותנת מענה למגבלה מרכזית של סביבות פיתוח משולבות קודמות, שהיו יותר כמו צ'אטבוטים, והיו לינאריות וסינכרוניות. בממשק צ'אט רגיל, המפתח צריך לחכות עד שה-AI יסיים ליצור את הקוד לפני שהוא שואל את השאלה הבאה. בתצוגת הניהול של Antigravity, מפתח יכול להקצות חמישה סוכנים שונים לעבודה על חמישה באגים שונים בו-זמנית, ובכך להגדיל את התפוקה שלו.
אם לוחצים על Next למעלה, אפשר לפתוח סביבת עבודה.

תחשבו על סביבת העבודה כמו שהכרתם מ-VS Code וזהו. כדי לפתוח תיקייה מקומית, לוחצים על הלחצן ואז בוחרים תיקייה להתחיל איתה. במקרה שלי, הייתה לי תיקייה בתיקיית הבית בשם my-agy-projects ובחרתי אותה. אפשר להשתמש בתיקייה אחרת לגמרי. הערה: אפשר לדלג על השלב הזה לגמרי, ותמיד אפשר לפתוח מרחב עבודה מאוחר יותר.
אחרי שתשלימו את השלב הזה, תועברו לחלון Agent Manager (ניהול סוכנים), שמוצג בהמשך:

תראו שהאפליקציה מוכנה להתחיל שיחה חדשה בתיקייה של סביבת העבודה (my-agy-projects) שנבחרה. אתם יכולים להשתמש בידע הקיים שלכם לגבי עבודה עם אפליקציות AI אחרות (Cursor, Gemini CLI) ולהשתמש ב-@ ובדרכים אחרות כדי לכלול הקשר נוסף בהנחיות.
כדאי לבדוק את התפריטים הנפתחים Planning וModel Selection. בתפריט הנפתח Model Selection (בחירת מודל) אפשר לבחור מבין המודלים שזמינים כרגע לשימוש על ידי הסוכן. הרשימה מוצגת בהמשך:

באופן דומה, אנחנו רואים שהנציג יהיה במצב ברירת מחדל Planning. אבל אפשר גם לבחור במצב Fast.

אבדוק מה כתוב על זה במאמרי העזרה:
-
Planning: סוכן יכול לתכנן לפני שהוא מבצע משימות. מתאים למחקר מעמיק, למשימות מורכבות או לעבודה משותפת. במצב הזה, הסוכן מארגן את העבודה שלו בקבוצות משימות, יוצר ארטיפקטים ונוקט צעדים אחרים כדי לחקור ביסודיות, לחשוב ולתכנן את העבודה שלו כדי להשיג איכות אופטימלית. יוצגו כאן הרבה יותר נתונים. -
Fast: Agent יבצע משימות באופן ישיר. השימוש ב-Gemini מתאים למשימות פשוטות שאפשר להשלים מהר יותר, כמו שינוי שם של משתנים, הפעלה של כמה פקודות bash או משימות קטנות ומקומיות אחרות. האפשרות הזו שימושית כשמהירות היא גורם חשוב, והמשימה פשוטה מספיק כך שאין חשש לאיכות נמוכה יותר.
אם אתם מכירים את המושג 'תקציב חשיבה' ומונחים דומים בסוכנים, אפשר לחשוב על זה כעל היכולת לשלוט בחשיבה של הסוכן, וכך להשפיע ישירות על תקציב החשיבה. נשתמש כרגע בהגדרות ברירת המחדל, אבל חשוב לזכור שבזמן ההשקה, הזמינות של מודל Gemini 3 Pro מוגבלת לכולם, לכן צפויים להופיע הודעות מתאימות אם מיציתם את המכסות החינמיות לשימוש ב-Gemini 3.
עכשיו נתעכב קצת על Agent Manager (חלון) כדי להבין כמה דברים, כך שיהיה ברור מהם אבני הבניין הבסיסיות, איך לנווט ב-Antigravity ועוד. חלון ניהול הסוכנים מוצג למטה:

אפשר להיעזר בתרשים שלמעלה עם המספרים:
Inbox: כאן אפשר לעקוב אחרי כל השיחות ממקום אחד. כשאתם שולחים סוכנים לבצע משימות, הן מופיעות בתיבת הדואר הנכנס, ואתם יכולים ללחוץ על תיבת הדואר הנכנס כדי לראות רשימה של כל השיחות הנוכחיות. אם תקישו על אחת מהשיחות, תוכלו לראות את כל ההודעות שהועברו, את הסטטוס של המשימות, את מה שהסוכן יצר ואפילו אם הוא מחכה לאישור שלכם לגבי המשימות. זו דרך מצוינת לחזור מאוחר יותר למשימה קודמת שעבדתם עליה. תכונה שימושית מאוד.Start Conversation: לוחצים על הסמל הזה כדי להתחיל שיחה חדשה. הפעולה הזו תוביל אתכם ישירות לשדה הקלט שבו מופיעAsk anything.-
Workspaces: הזכרנו את סביבות העבודה ואמרנו שאפשר לעבוד בכל סביבת עבודה שרוצים. תמיד אפשר להוסיף עוד סביבות עבודה, ואפשר לבחור כל סביבת עבודה כשמתחילים את השיחה. -
Playground: זו דרך מצוינת להתחיל שיחה עם הסוכן, ואז להמיר אותה למרחב אם רוצים שליטה מחמירה יותר על הקבצים וכו'. אפשר לחשוב על זה כעל אזור טיוטה. -
Editor View: עד עכשיו אנחנו בתצוגה של מרכז ניהול הסוכנים. אם רוצים, אפשר לעבור לתצוגת העריכה בכל שלב. כך תוכלו לראות את תיקיית סביבת העבודה ואת הקבצים שנוצרו. אתם יכולים לערוך את הקבצים ישירות או לספק הנחיות מוטמעות, פקודות בכלי העריכה, כדי שהסוכן יוכל לבצע פעולה או לשנות משהו בהתאם להמלצות או להוראות ששיניתם. נעסוק בתצוגת העורך בהרחבה בקטע אחר. -
Browser: לבסוף, נגיע לאחד מהמאפיינים הייחודיים שהופכים את Antigravity לכלי עוצמתי מאוד – השילוב ההדוק שלו עם דפדפן Chrome. בקטע הבא נסביר איך להגדיר את הדפדפן.
4. Antigravity Browser
כפי שמצוין במסמכי התיעוד, כשהסוכן רוצה ליצור אינטראקציה עם הדפדפן, הוא מפעיל סוכן משנה של הדפדפן כדי לטפל במשימה. סוכן המשנה של הדפדפן מפעיל מודל שמתמחה בפעולה בדפים שפתוחים בדפדפן שמנוהל על ידי Antigravity, והוא שונה מהמודל שבחרתם לסוכן הראשי.
לסוכן המשנה הזה יש גישה למגוון כלים שדרושים לשליטה בדפדפן, כולל קליקים, גלילה, הקלדה, קריאת יומני מסוף ועוד. הוא יכול גם לקרוא את הדפים הפתוחים באמצעות צילום DOM, צילומי מסך או ניתוח של markdown, וגם לצלם סרטונים.
כלומר, צריך להפעיל ולהתקין את תוסף הדפדפן Antigravity. כדי לעשות את זה, נתחיל שיחה ב-Playground ונעבור על השלבים.
בוחרים באפשרות Playground ומקצים לסוכן את המשימה הבאה go to antigravity.google, כמו שמוצג בהמשך:

שולחים את המשימה. תוכלו לראות את הסוכן מנתח את המשימה ולבדוק את תהליך החשיבה שלו. בשלב מסוים, התהליך ימשיך בצורה תקינה ותופיע הודעה שלפיה צריך להגדיר את סוכן הדפדפן, כמו שמוצג בהמשך. לוחצים על Setup.

הדפדפן ייפתח ותוצג הודעה להתקנת התוסף, כמו שמוצג בהמשך:

תועברו לתוסף Chrome שתוכלו להתקין.

אחרי שתתקינו את התוסף בהצלחה, Antigravity Agent יתחיל לפעול ויציין שהוא מצפה שתאשרו לו לבצע את המשימה. אמורה להופיע פעילות בחלון הדפדפן שנפתח:

חוזרים לתצוגה של Agent Manager ורואים את הנתונים הבאים:

זה בדיוק מה שציפינו שיקרה, כי ביקשנו ממצב Agent להיכנס לאתר antigravity.google. נותנים לו את ההרשאה ורואים שהאתר נפתח בצורה בטוחה, כמו שמוצג בהמשך:

5. תוצרי הפגישה
Antigravity יוצר ארטיפקטים כשהוא מתכנן ומבצע את העבודה שלו, כדי לתקשר את העבודה ולקבל משוב מהמשתמש האנושי. אלה קובצי Markdown עשירים, תרשימי ארכיטקטורה, תמונות, הקלטות של דפדפנים, השוואות בין גרסאות קוד וכו'.
הארטיפקטים פותרים את בעיית האמון. כשסוכן טוען "תיקנתי את הבאג", המפתח היה צריך לקרוא את הקוד כדי לאמת את הטענה. ב-Antigravity, הסוכן יוצר ארטיפקט כדי להוכיח את זה.
אלה הארטיפקטים העיקריים שנוצרים על ידי Antigravity:
-
Task Lists: לפני כתיבת הקוד, הסוכן יוצר תוכנית מובנית. בדרך כלל לא צריך לערוך את התוכנית הזו, אבל אפשר לבדוק אותה ובמקרים מסוימים להוסיף תגובה כדי לשנות אותה, אם צריך. Implementation Plan: משתמשים בזה כדי לתכנן שינויים בבסיס הקוד כדי לבצע משימה. התוכניות האלה מכילות פרטים טכניים על השינויים שצריך לבצע, והן מיועדות לבדיקה על ידי המשתמש, אלא אם מדיניות בדיקת הארטיפקטים מוגדרת ל'המשך תמיד'.-
Walkthrough: נוצר אחרי שהסוכן משלים את הטמעת המשימה, כסיכום של השינויים והסבר על אופן הבדיקה שלהם. -
Code diffs: למרות שזה לא ארטיפקט, Antigravity גם יוצר השוואות בין קודים שאפשר לבדוק ולהוסיף להן הערות. -
Screenshots: הסוכן מתעד את מצב ממשק המשתמש לפני ואחרי השינוי. -
Browser Recordings: לאינטראקציות דינמיות (למשל, "לוחצים על כפתור הכניסה, מחכים שהסמל יסתובב, מוודאים שמרכז הבקרה נטען"), הסוכן מצלם סרטון של הסשן. המפתח יכול לצפות בסרטון הזה כדי לוודא שהדרישה הפונקציונלית מתקיימת בלי להפעיל את האפליקציה בעצמו.
החפצים נוצרים ומופיעים בתצוגות של מנהל הסוכנים ועורך הסוכנים.
בתצוגת העורך, בפינה השמאלית התחתונה, אפשר ללחוץ על Artifacts:

בתצוגה של מרכז ניהול הסוכנים, בפינה השמאלית העליונה, ליד הסמל Review changes, אמור להופיע לחצן להחלפת מצב התצוגה של הארטיפקטים. אם מצב התצוגה של הארטיפקטים מופעל, תוכלו לראות את רשימת הארטיפקטים שנוצרו:

אתם אמורים לראות את התצוגה 'פריטי מידע' כמו שמוצג בהמשך. בדוגמה הזו, נתנו לסוכן הוראה להיכנס לדף antigravity.google, ולכן הוא צילם מסך ויצר סרטון של אותו דף:

אפשר לראות את ההבדלים בקוד בReview Changes בתצוגת העריכה:

מפתחים יכולים ליצור אינטראקציה עם הארטיפקטים וההשוואות בין גרסאות הקוד באמצעות 'תגובות בסגנון Google Docs'. אתם יכולים לבחור פעולה או משימה ספציפית, לתת פקודה לגבי האופן שבו אתם רוצים שהיא תתבצע ואז לשלוח אותה לסוכן. הנציג יקרא את המשוב ויפעל בהתאם. אפשר להשתמש ב-Google Docs אינטראקטיבי, שבו אתם מספקים משוב למחבר והוא חוזר על כך.
6. חזרה לתיבת הדואר הנכנס
אם התחלתם כמה שיחות עם הסוכנים, כדאי לעיין עכשיו בInbox בחלון Agent Manager. כל השיחות יוצגו. אפשר ללחוץ על כל אחת מהשיחות כדי לראות את ההיסטוריה שלה, את הפריטים שנוצרו ממנה ועוד. בדוגמה שלנו, אחרי שהפעלנו את השיחה הראשונה, היא מופיעה בתיבת הדואר הנכנס, כמו שמוצג כאן:

לחיצה על השיחה תציג את הפרטים:

אפשר להמשיך את השיחה גם מכאן.
7. עריכה
העורך שומר על המראה המוכר של VS Code, כדי לאפשר למפתחים מנוסים להשתמש בו בקלות. הוא כולל את סייר הקבצים הרגיל, הדגשת תחביר ומערכת אקולוגית של תוספים.
כדי לעבור לכלי העריכה, אפשר ללחוץ על הלחצן Open Editor בפינה השמאלית העליונה של המרכז לניהול נציגים.
הגדרה ותוספים
בדרך כלל, בהגדרה טיפוסית, אפשר לראות את העורך, את הטרמינל ואת הסוכן:

אם זה לא המצב, אפשר להחליף בין חלוניות המסוף והסוכן באופן הבא:
- כדי להחליף את מצב חלונית הטרמינל, משתמשים במקש הקיצור
Ctrl + `. - כדי להחליף את מצב חלונית הסוכן, משתמשים במקש הקיצור
Cmd + L.
בנוסף, Antigravity יכול להתקין חלק מהתוספים במהלך ההגדרה, אבל בהתאם לשפת התכנות שבה אתם משתמשים, כנראה שתצטרכו להתקין עוד תוספים. לדוגמה, אם אתם מפתחים בשפת Python, יכול להיות שתבחרו להתקין את התוספים הבאים:

עריכה
השלמה אוטומטית
כשמקלידים קוד בכלי לעריכת סקריפטים, מופעלת השלמה אוטומטית חכמה שאפשר להשתמש בה באמצעות מקש Tab:

שימוש במקש Tab לייבוא
מוצגת ההצעה tab to import (הקשה על Tab לייבוא) להוספת תלות חסרה:

שימוש במקש Tab כדי לקפוץ
מוצגות הצעות לשימוש ב-Tab כדי לדלג ולהעביר את הסמן למקום ההגיוני הבא בקוד:

פקודות
אתם יכולים להפעיל פקודות באמצעות Cmd + I בעורך או במסוף כדי לקבל השלמות מוטבעות באמצעות שפה טבעית.
בכלי העריכה, אפשר לבקש שיטה לחישוב מספרי פיבונאצ'י ואז לאשר או לדחות אותה:

בטרמינל, אפשר לקבל הצעות לפקודות בטרמינל:

החלונית הצדדית של הנציג
יש כמה דרכים להפעיל או להשבית את חלונית הצד של הסוכן בכלי העריכה.
פתיחה ידנית
אפשר להשתמש בקיצור הדרך Cmd + L כדי להפעיל או להשבית את חלונית הסוכן בצד שמאל.
אתם יכולים להתחיל לשאול שאלות, להשתמש ב-@ כדי לכלול עוד הקשר כמו קבצים, ספריות, שרתי MCP או להשתמש ב-/ כדי להתייחס לתהליך עבודה (הנחיה שנשמרה):

אתם יכולים גם לבחור בין שני מצבי שיחה: Fast או Planning :

מומלץ להשתמש ב-Fast למשימות מהירות, וב-Planning למשימות מורכבות יותר שבהן הסוכן יוצר תוכנית שאתם יכולים לאשר.
אפשר גם לבחור מודלים שונים לשיחה:

הסבר ותיקון
דרך נוספת להפעלת הסוכן היא להעביר את העכבר מעל בעיה ולבחור באפשרות Explain and fix:

שליחת בעיות לנציג
אפשר גם לעבור לקטע Problems ולבחור באפשרות Send all to Agent כדי שהנציג ינסה לפתור את הבעיות האלה:

שליחת פלט הטרמינל לסוכן
אפשר אפילו לבחור חלק מהפלט של הטרמינל ולשלוח אותו לסוכן באמצעות Cmd + L:

מעבר בין עורך לבין ניהול נציגים
בכל שלב, אפשר לעבור בין מצב העריכה לבין מצב ניהול הסוכנים המלא באמצעות הלחצן Open Agent Manager בפינה השמאלית העליונה כשנמצאים במצב העריכה, ולחזור באמצעות לחיצה על הלחצן Open Editor בפינה השמאלית העליונה כשנמצאים במצב ניהול הסוכנים.
אפשר גם להשתמש במקש הקיצור Cmd + E כדי לעבור בין שני המצבים.
8. ספק משוב
היתרון המרכזי של Antigravity הוא היכולת שלו לאסוף בקלות את המשוב שלכם בכל שלב בחוויה. במהלך העבודה על משימה, הסוכן יוצר פריטים שונים:
- תוכנית הטמעה ורשימת משימות (לפני כתיבת הקוד)
- השוואות בין קודים (בזמן יצירת הקוד)
- הסבר מפורט לאימות התוצאות (אחרי הקידוד)
הארטיפקטים האלה הם דרך שבה Antigravity מעדכנת על התוכניות שלה ועל ההתקדמות שלה. חשוב מכך, הם גם מאפשרים לכם לספק משוב לסוכן בתגובות בסגנון Google Docs. האפשרות הזו שימושית מאוד כדי להכווין את הסוכן בצורה יעילה לכיוון הרצוי.
ננסה ליצור אפליקציה פשוטה של רשימת מטלות ונראה איך אפשר לספק משוב ל-Antigravity תוך כדי.
מצב תכנון
קודם כול, צריך לוודא ש-Antigravity במצב Planning (ולא במצב Fast).אפשר לבחור את המצב הזה בצ'אט בחלונית הצדדית של הסוכן. כך מוודאים ש-Antigravity יוצר תוכנית הטמעה ורשימת משימות לפני שהוא מתחיל לכתוב קוד. אחר כך, מנסים להזין הנחיה, למשל: Create a todo list web app using Python. הפעולה הזו תגרום לסוכן להתחיל לתכנן וליצור תוכנית הטמעה.
תוכנית הטמעה
תוכנית ההטמעה היא סקירה כללית של הפעולות ש-Antigravity מתכוונת לבצע, של חבילת הטכנולוגיות שבה היא תשתמש ושל תיאור ברמה גבוהה של השינויים המוצעים.
Implementation Plan - Python Todo App
Goal
Create a simple, functional, and aesthetically pleasing Todo List web application using Python (Flask).
Tech Stack
Backend: Python with Flask
Frontend: HTML5, CSS3 (Vanilla), Jinja2 templates
...
זה גם המקום הראשון שבו אפשר לשלוח משוב. במקרה שלנו, הסוכן רוצה להשתמש ב-Flask כמסגרת האינטרנט של Python. אנחנו יכולים להוסיף הערה לתוכנית ההטמעה כדי להשתמש ב-FastAPI במקום זאת. אחרי שמוסיפים את התגובה, שולחים אותה או מבקשים מ-Antigravity Proceed עם תוכנית ההטמעה המעודכנת.
רשימת משימות
אחרי שמעדכנים את תוכנית ההטמעה, Antigravity יוצר רשימת משימות. זו רשימה קונקרטית של השלבים שחברת Antigravity תבצע כדי ליצור את האפליקציה ולאמת אותה.
Task Plan
Create requirements.txt
Create directory structure (static/css, templates)
Create static/css/style.css
Create templates/index.html
Create main.py with FastAPI setup and Database logic
Verify application
זו הדרך השנייה שבה אפשר לשלוח משוב.
לדוגמה, בתרחיש השימוש שלנו, אפשר להוסיף הוראות אימות מפורטות יותר על ידי הוספת ההערה הבאה: Verify application by adding, editing, and deleting a todo item and taking a screenshot.
שינויים בקוד
בשלב הזה, Antigravity ייצור קוד בקבצים חדשים. אתם יכולים Accept all או Reject all את השינויים האלה בחלונית הצד של הצ'אט עם הנציג בלי לבדוק את הפרטים.
אפשר גם ללחוץ על Review changes כדי לראות את פרטי השינויים ולהוסיף הערות מפורטות על הקוד. לדוגמה, אפשר להוסיף את ההערה הבאה ב-main.py: Add basic comments to all methods
זו דרך מצוינת לחזור על קוד עם Antigravity.
הדרכה מפורטת
אחרי ש-Antigravity מסיים את הקידוד, הוא מפעיל את השרת ופותח דפדפן כדי לאמת את האפליקציה. הוא יבצע בדיקות ידניות כמו הוספה של משימות, עדכון של משימות וכו'. כל זה בזכות תוסף הדפדפן של Antigravity. בסופו של דבר, הוא יוצר קובץ הדרכה שמסכם את הפעולות שבוצעו כדי לאמת את האפליקציה. הקובץ כולל צילום מסך או תהליך אימות עם הקלטה של הדפדפן.
אפשר גם להוסיף תגובה לצילום המסך או להקלטה של הדפדפן במדריך. לדוגמה, אפשר להוסיף תגובה Change the blue theme to orange theme ולשלוח. אחרי שליחת התגובה, Antigravity מבצע את השינויים, מאמת את התוצאות ומעדכן את ההסבר המפורט.
ביטול השינויים
בנוסף, אחרי כל שלב, אם אתם לא מרוצים מהשינוי, אתם יכולים לבטל אותו מתוך הצ'אט. פשוט לוחצים על ↩️ Undo changes up to this point בצ'אט.
9. כללים ו-Workflows
ל-Antigravity יש כמה אפשרויות להתאמה אישית: כללים ותהליכי עבודה.
לוחצים על ... בפינה השמאלית העליונה ובוחרים באפשרות Customizations. יופיעו האפשרויות Rules ו-Workflows:

כללים עוזרים להנחות את התנהגות הנציג. אלה הנחיות שאפשר לספק כדי לוודא שהסוכן פועל לפיהן כשהוא יוצר קוד ומבצע בדיקות. לדוגמה, יכול להיות שתרצו שהסוכן יפעל לפי סגנון קוד מסוים, או שתמיד יתעד שיטות. אפשר להוסיף אותם ככללים והסוכן יתחשב בהם.
תהליכי עבודה הם הנחיות שמורות שאפשר להפעיל לפי דרישה באמצעות /, במהלך האינטראקציה עם הסוכן. הם גם מכוונים את התנהגות הסוכן, אבל המשתמש מפעיל אותם לפי דרישה.
אנלוגיה טובה היא שכללים דומים יותר להוראות מערכת, בעוד שתהליכי עבודה דומים יותר להנחיות שמורות שאפשר לבחור לפי דרישה.
אפשר להחיל את הכללים ואת תהליכי העבודה באופן גלובלי או לכל סביבת עבודה, ולשמור אותם במיקומים הבאים:
- כלל גלובלי:
~/.gemini/GEMINI.md - תהליך עבודה גלובלי:
~/.gemini/antigravity/global_workflows/global-workflow.md - כללים של Workspace:
your-workspace/.agent/rules/ - תהליכי עבודה ב-Workspace:
your-workspace/.agent/workflows/
בואו נוסיף כמה כללים ותהליכי עבודה בסביבת העבודה.
הוסף כלל
קודם נוסיף כלל של סגנון קוד. עוברים אל Rules ולוחצים על הלחצן +Workspace. נותנים לו שם כמו code-style-guide עם כללי סגנון הקוד הבאים:
* Make sure all the code is styled with PEP 8 style guide
* Make sure all the code is properly commented
בשלב השני, נוסיף עוד כלל כדי לוודא שהקוד נוצר בצורה מודולרית עם דוגמאות בcode-generation-guide כלל:
* The main method in main.py is the entry point to showcase functionality.
* Do not generate code in the main method. Instead generate distinct functionality in a new file (eg. feature_x.py)
* Then, generate example code to show the new functionality in a new method in main.py (eg. example_feature_x) and simply call that method from the main method.
שני הכללים נשמרים ומוכנים:

הוספת תהליך עבודה
בנוסף, נגדיר תהליך עבודה ליצירת בדיקות יחידה. כך נוכל להפעיל בדיקות יחידה כשנסיים לכתוב את הקוד (במקום שהסוכן ייצור בדיקות יחידה כל הזמן).
עוברים אל Workflows ולוחצים על הלחצן +Workspace. נותנים לו שם כמו generate-unit-tests עם הפרטים הבאים:
* Generate unit tests for each file and each method
* Make sure the unit tests are named similar to files but with test_ prefix
תהליך העבודה מוכן עכשיו גם כן:

רוצה לנסות?
עכשיו נראה כללים ותהליכי עבודה בפעולה. יוצרים קובץ שלד main.py בסביבת העבודה:
def main():
pass
if __name__ == "__main__":
main()
עכשיו, עוברים לחלון הצ'אט עם הנציג ושואלים אותו: Implement binary search and bubble sort.
אחרי דקה או שתיים, אמורים להופיע במרחב העבודה שלושה קבצים: main.py, bubble_sort.py, binary_search.py. תשימו לב גם שכל הכללים מיושמים: הקובץ הראשי לא עמוס ויש בו את קוד הדוגמה, כל תכונה מיושמת בקובץ משלה, כל הקוד מתועד ובסגנון טוב:
from binary_search import binary_search, binary_search_recursive
from bubble_sort import bubble_sort, bubble_sort_descending
def example_binary_search():
"""
Demonstrate binary search algorithm with various test cases.
"""
...
def example_bubble_sort():
"""
Demonstrate bubble sort algorithm with various test cases.
"""
...
def main():
"""
Main entry point to showcase functionality.
"""
example_binary_search()
example_bubble_sort()
print("\n" + "=" * 60)
if __name__ == "__main__":
main()
עכשיו, אחרי שסיימנו לכתוב את הקוד, ננסה להפעיל את תהליך העבודה של יצירת בדיקת יחידה.
עוברים לצ'אט ומתחילים להקליד /generate. Antigravity כבר יודע מה תהליך העבודה שלנו:

בוחרים באפשרות generate-unit-tests ומזינים את הנתונים. אחרי כמה שניות, תקבלו קבצים חדשים בסביבת העבודה: test_binary_search.py, test_bubble_sort.py עם מספר בדיקות שכבר הוטמעו!

איזה יופי!
10. אבטחת הסוכן
מתן גישה לסוכן AI לטרמינל ולדפדפן הוא חרב פיפיות. היא מאפשרת ניפוי באגים ופריסה אוטונומיים, אבל גם פותחת וקטורים להחדרת הנחיות ולגניבת נתונים.
פלטפורמת Antigravity פותרת את הבעיה הזו באמצעות מערכת הרשאות מפורטת שמבוססת על מדיניות של הפעלה אוטומטית של פקודות בטרמינל, רשימות הרשאות ורשימות סירוב.
כשמגדירים את Antigravity בפעם הראשונה, או דרך תפריט ההגדרות, צריך לבחור מדיניות Terminal Command Auto Execution. ההגדרה הזו קובעת את האוטונומיה של הסוכן בנוגע לפקודות מעטפת.
כדי לראות את ההגדרות הנוכחיות, אפשר לעבור אל Antigravity — Settings ואז אל Advanced Settings. יוצג הקטע Terminal בהגדרות של הסוכן. כדאי לזכור את הטבלה הזו אם רוצים לשנות את ההגדרה הזו למשהו אחר:
מצב מדיניות | תיאור |
מושבת | הסוכן אף פעם לא מריץ אוטומטית פקודות בטרמינל, אלא אם הוא מקבל אישור מפורש לכך. |
אוטו' | הסוכן מחליט אם לבצע פעולה על סמך מודלים פנימיים של בטיחות. היא מבקשת הרשאה לפקודות מסוכנות. |
טורבו | הסוכן תמיד מריץ פקודות באופן אוטומטי, אלא אם נדחות באופן מפורש. |
הגדרת רשימת ההיתרים
משתמשים ברשימת ההיתרים בעיקר עם המדיניות מושבת. זהו מודל אבטחה חיובי, כלומר כל דבר אסור אלא אם הוא מותר במפורש. זו ההגדרה המאובטחת ביותר.
הגדרה מפורטת
- מגדירים את ההגדרה Terminal Command Auto Execution (הפעלה אוטומטית של פקודות בטרמינל) למצב Off (מושבת).
- מוסיפים את הפקודה הבאה ברשימת ההיתרים של פקודות הטרמינל על ידי לחיצה על הלחצן הוספה שלידה :
ls -al. אם רוצים, אפשר להוסיף עוד פקודות לטרמינל.
בדיקת רשימת ההיתרים
- לשאול את הסוכן:
List the files in this directory. - הסוכן מופעל
lsבאופן אוטומטי. - לשאול את הנציג:
Delete the <some file> - הסוכן ינסה לבצע את הפעולה
rm <filepath>, אבל Antigravity יחסום אותה וידרוש בדיקה על ידי משתמש כיrmלא נמצא ברשימת ההיתרים. לפני הפעלת הפקודה, תופיע בקשה מ-Antigravity להענקת הרשאה.
הגדרת רשימת הדחייה
רשימת הדחייה היא אמצעי ההגנה של מדיניות טורבו (ולפעמים של מדיניות אוטומטית). זהו מודל אבטחה שלילי, כלומר הכול מותר אלא אם נאסר במפורש. השיטה הזו מסתמכת על כך שהמפתח יצפה כל סכנה אפשרית, וזה סיכון, אבל היא מאפשרת מהירות מקסימלית.
הגדרה מפורטת
- מגדירים את ההגדרה הפעלה אוטומטית של פקודות בטרמינל לטורבו.
- מוסיפים את הפקודות הבאות בDeny List Terminal Commands (פקודות טרמינל של רשימת הדחייה) בלחיצה על הלחצן Add (הוספה) שלידן.
- rm
- rmdir
- sudo
- curl
- wget
בדיקה של רשימת הדחייה
- לשאול את הסוכן:
Check the version of python. - הסוכן מופעל
python --versionבאופן אוטומטי. - שואלים את הנציג:
Downloadwww.google.comhome page. - הנציג מנסה
curl. התכונה Antigravity מזהה אתcurlברשימת ההכחשה וחוסמת את ההפעלה, ומבקשת אישור ידני.
אבטחת הדפדפן
היכולת של Antigravity לגלוש באינטרנט היא יתרון גדול, אבל גם נקודת חולשה. סוכן שנכנס לאתר תיעוד שנפרץ עלול להיתקל במתקפת החדרת הנחיות.
כדי למנוע את הבעיה הזו, אפשר להטמיע רשימת היתרים של כתובות URL בדפדפן עבור סוכן הדפדפן.
כדי לראות את ההגדרות הנוכחיות, עוברים אל Antigravity — Settings ואז אל Advanced Settings. בקטע Browser settings (הגדרות הדפדפן) אמור להופיע הקטע Browser URL Allowlist (רשימת כתובות URL מותרות בדפדפן), כמו שמוצג בהמשך:

לוחצים על Open Allowlist File (פתיחת קובץ רשימת ההיתרים) והקובץ ייפתח בתיקייה HOME/.gemini/antigravity/browserAllowlist.txt. כאן אפשר לוודא שרק דומיינים מהימנים מוזנים.
11. תרחישים לדוגמה
עכשיו, אחרי שקיבלנו הבנה בסיסית של המוצר, נתעמק בכמה תרחישים לדוגמה כדי לראות אותו בפעולה. חשוב לזכור ש-Antigravity היא פלטפורמה שמתמקדת בנציגים. כלומר, ברוב המקרים אנחנו פשוט נותנים הוראה לסוכן, והסוכן יוצא לדרך לבד, מבצע את המשימה, מבקש הרשאות אם צריך, יוצר את הארטיפקטים ומודיע לנו אם המשימה הסתיימה. כתוצאה מכך, אנחנו לא יכולים להפיק כל פלט של שיחה עם הסוכן בכל אחד ממקרי השימוש הבאים. נשתף את ההוראות וכמה צילומי מסך נדרשים של התוצאות הצפויות, אבל יכול להיות שהתוצאות שלכם יהיו שונות מעט.
התרחישים לדוגמה שנסקור כוללים אוטומציה של כמה משימות באתרים חיצוניים, יצירה ואימות של מקרים לבדיקת יחידות בפרויקט ופיתוח מלא של אתר. קדימה.
המיטב מהחדשות
זהו תרחיש שימוש פשוט, אבל הוא יכול לשמש כבסיס לשימוש בדפדפן אינטרנט כדי לבקר באתרים, לחלץ מידע, לבצע פעולות מסוימות ואז להחזיר נתונים למשתמש.
במקרה הזה, נבקר באתר של חדשות Google ונחלץ ממנו מידע. אבל אתם יכולים להתנסות בקלות באתר שתבחרו ולראות איך זה עובד.
מוודאים שאתם נמצאים ב-Agent Manager ושהאפשרות Playground נבחרה, כמו שמוצג בהמשך:

ואז נותנים את ההוראה הבאה:

הפעולה הזו תתחיל את התהליך של הסוכן, והוא יקבע שהוא צריך להפעיל את הדפדפן וכו'. חשוב לשים לב לתהליך החשיבה ולראות איך הסוכן מבצע את העבודה. אם הכול ילך כשורה, דפדפן Antigravity ייפתח והאתר יוצג כמו בתמונה שלמטה. המסגרת הכחולה מסביב לאתר מראה שהסוכן שולט עכשיו בדפדפן ומנווט באתר כדי לקבל את המידע.

בסיום העבודה, אמורים להופיע גם הארטיפקטים שנוצרו, כמו שמוצג בהמשך:

דוגמה להרצה על ידי הסוכן:

שימו לב שבצד ימין מופיע תהליך החשיבה. אפשר גם לגלול בין הנקודות ולצפות בהפעלה ובנתונים אחרים.
דברים שכדאי לנסות
- אחרי שמבינים את זה, בוחרים אתר שזמין ושרוצים שהסוכן ילך אליו ויביא ממנו נתונים או יסכם אותם. תחשבו על אתר שיש בו לוחות בקרה ותרשימים, ותבקשו ממנו לבחור כמה ערכים.
- אפשר לנסות את ההנחיה הבאה:
Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.
יצירת אתר דינמי באמצעות Python + Flask
עכשיו נמשיך ליצירת אפליקציית אינטרנט מלאה. אפליקציית האינטרנט שאנחנו הולכים ליצור היא אתר שמספק מידע על אירוע טכני שנמשך יום אחד, וכולל הרצאות של כמה דוברים במהלך היום.
שוב, מוודאים שאתם נמצאים ב-Agent Manager וסימנתם את Playground.
מזינים את ההנחיה הבאה:
I would like to generate a website that is a 1-day technical conference informational site.
The website should have the following functionality:
1. A home page that shows the current date, location, schedule and time table.
2. The 1-day event is a list of 8 talks in total.
3. Each talk has 1 or 2 max. speakers.
4. A talk has an ID, Title, Speakers, Category (1 or 2), Description and time of the talk.
5. Each speaker has a First Name, Last Name and LinkedIn url.
6. Allow for users to search by category, speaker, title.
7. Give a lunch break of 60 minutes.
8. Use dummy data for events and speakers, come up with a schedule, the event is about Google Cloud Technologies.
9. Tech Stack: Python and Flask framework on server side. Front-end is basic HTML, CSS and JavaScript.
10. Test out the site on your own for all functionality and provide a detailed README on how to setup, run and make any further changes.
11. Launch the web application for me to review.
אפשר להתחיל את השיחה עם ההנחיה שלמעלה:
במהלך ביצוע המשימה, הסוכן ימשיך ליצור את הארטיפקטים:
- תוצר פיתוח של משימה
- פריט הטמעה
- פריט הדרכה מפורטת
הארטיפקט של המשימה שמופיע בהמשך הוא רצף המשימות הראשוני שהסוכן פענח שהוא צריך לבצע על סמך המשימה שניתנה לו. למטה מוצג צילום מסך לדוגמה מההרצה:

אחר כך לוחצים על ארטיפקט תוכנית ההטמעה. למטה מוצגת דוגמה לצילום מסך:

ולבסוף, יש את ארטיפקט ההדרכה המפורטת. הוא מכיל את כל הפעולות שהסוכן ביצע, כפי שמוצג בהמשך:

אפשר לראות שהשרת הופעל וקיבלתי את כתובת ה-URL. אני לוחץ עליה ורואה את האפליקציה. בהמשך מוצגת דוגמה לצילום מסך:

אם עוברים אל Editor, אפשר לראות במסך שהוא מכיל את התיקייה שבה נוצרת אפליקציית Python Flask. תראו גם שהסמל Agent mode מתויג בצד שמאל, ואפשר להמשיך את השיחה גם שם.

נניח שאנחנו רוצים להוסיף עוד הרצאות לאירוע. אנחנו יכולים להישאר בכלי העריכה ובחלונית הסוכן, ולתת הוראה כמו Add two more talks to the schedule.
הפעולה הזו תגרום לסוכן לנתח את הדרישה, לעדכן את המשימה ואת תוכנית ההטמעה, ואז לאמת גם את הפונקציונליות המעודכנת. דוגמה לשיחה:

אם רוצים, אפשר לחזור אל Agent Manager. התהליך הזה יעזור לכם להבין את התהליך של מעבר מניהול סוכנים לעריכה, ביצוע שינויים בהתאם וכן הלאה.
דברים שכדאי לנסות
- להוסיף פונקציונליות נוספת שרוצים באפליקציה. מספקים את הפרטים לסוכן ורואים איך הוא מבצע את המשימה: קודם הוא משנה את רשימת המשימות, אחר כך את תוכנית ההטמעה וכן הלאה.
- מבקשים מ-Agent ליצור קובץ README או תיעוד נוסף לאפליקציה.
יצירת אפליקציה פשוטה לפרודוקטיביות
עכשיו ניצור אפליקציית אינטרנט פשוטה של טיימר פומודורו.
מוודאים שאתם נמצאים ב-Agent Manager ובחרתם ב-Playground. מזינים את ההנחיה הבאה:
Create a productivity app that features a Pomodoro timer. Give a calm and aesthetic look to the application.
שימו לב איך הוא יוצר את רשימת המשימות, את תוכנית ההטמעה ואז מבצע אותה. חשוב להמשיך לעקוב אחרי התהליך, כי יכול להיות שיהיו מצבים שבהם תתבקשו לבדוק את התוצאות. בהמשך מוצגת דוגמה להרצה.

במקרה כזה, הוא אמור גם להפעיל את הדפדפן Antigravity, לבצע בדיקות משלו ואז לאשר שהבדיקות הצליחו. אחד הדברים שהיא יצרה היה פריט מידע על מדיה שמכיל את הסרטון של האימות. כך תוכלו לראות מה נבדק. הצעתי גם כמה שינויים בסגנון, כי הם לא נכנסו לתוקף, והוא הצליח לבצע אותם.
האפליקציה הסופית נראתה כמו האפליקציה שמוצגת למטה, והיא נראית די טוב.

אפשר להוסיף לאפליקציה תמונה יפה של טיימר. כל מה שצריך לעשות הוא להנפיק הוראה למעקב, כמו שמופיע בהמשך:
Add an image to the application that displays a timer.
כתוצאה מכך, הנציג הוסיף משימה חדשה לארטיפקט Task:

לאחר מכן, הוא יצר תמונה תוך כדי ביצוע המשימה:

לבסוף, האפליקציה הציגה את התמונה שביקשנו:

דברים שכדאי לנסות
- שימו לב שהרקע של סמל שעון החול באפליקציה לא שקוף. אפשר לנסות לבקש מהסוכן להפוך את זה לשקוף.
- אפשר לנסות כמה וריאציות של כל אפליקציה שרוצים ליצור. אפשר להתנסות עם הסגנונות, התמונות, לבקש שינויים וכו'.
יצירת בדיקות יחידה, בדיקות דמה ואימות בדיקות
מקרה השימוש האחרון שננסה כאן הוא יצירת בדיקות יחידה לקובץ קוד ספציפי שיש לנו, וגם הפעלת הבדיקות ואימות שלהן על ידי הסוכן.
לשם כך, נשתמש בסביבת עבודה עם קובץ Python יחיד, כמו שמוצג בהמשך:
from typing import Dict
# --- Custom Exceptions ---
class InventoryShortageError(Exception):
"""Raised when there is not enough item stock."""
pass
class PaymentFailedError(Exception):
"""Raised when the payment gateway rejects the transaction."""
pass
class InvalidOrderError(Exception):
"""Raised when the order violates business rules."""
pass
# --- External Service Interfaces (To be Mocked) ---
class InventoryService:
def get_stock(self, product_id: str) -> int:
"""Connects to DB to check stock."""
raise NotImplementedError("Real connection required")
def decrement_stock(self, product_id: str, quantity: int):
"""Connects to DB to reduce stock."""
raise NotImplementedError("Real connection required")
class PaymentGateway:
def charge(self, amount: float, currency: str) -> bool:
"""Connects to Stripe/PayPal."""
raise NotImplementedError("Real connection required")
# --- Main Business Logic ---
class Order:
def __init__(self,
inventory_service: InventoryService,
payment_gateway: PaymentGateway,
customer_email: str,
is_vip: bool = False):
self.inventory = inventory_service
self.payment = payment_gateway
self.customer_email = customer_email
self.is_vip = is_vip
self.items: Dict[str, Dict] = {} # {product_id: {'price': float, 'qty': int}}
self.is_paid = False
self.status = "DRAFT"
def add_item(self, product_id: str, price: float, quantity: int = 1):
"""Adds items to the cart. Rejects invalid prices or quantities."""
if price < 0:
raise ValueError("Price cannot be negative")
if quantity <= 0:
raise ValueError("Quantity must be greater than zero")
if product_id in self.items:
self.items[product_id]['qty'] += quantity
else:
self.items[product_id] = {'price': price, 'qty': quantity}
def remove_item(self, product_id: str):
"""Removes an item entirely from the cart."""
if product_id in self.items:
del self.items[product_id]
@property
def total_price(self) -> float:
"""Calculates raw total before discounts."""
return sum(item['price'] * item['qty'] for item in self.items.values())
def apply_discount(self) -> float:
"""
Applies business logic:
1. VIPs get flat 20% off.
2. Regulars get 10% off if total > 100.
3. No discount otherwise.
"""
total = self.total_price
if self.is_vip:
return round(total * 0.8, 2)
elif total > 100:
return round(total * 0.9, 2)
return round(total, 2)
def checkout(self):
"""
Orchestrates the checkout process:
1. Validates cart is not empty.
2. Checks stock for all items.
3. Calculates final price.
4. Charges payment.
5. Updates inventory.
"""
if not self.items:
raise InvalidOrderError("Cannot checkout an empty cart")
# 1. Check Inventory Logic
for product_id, data in self.items.items():
available_stock = self.inventory.get_stock(product_id)
if available_stock < data['qty']:
raise InventoryShortageError(f"Not enough stock for {product_id}")
# 2. Calculate Final Price
final_amount = self.apply_discount()
# 3. Process Payment
try:
success = self.payment.charge(final_amount, "USD")
if not success:
raise PaymentFailedError("Transaction declined by gateway")
except Exception as e:
# Catching generic network errors from the gateway
raise PaymentFailedError(f"Payment gateway error: {str(e)}")
# 4. Decrement Stock (Only occurs if payment succeeded)
for product_id, data in self.items.items():
self.inventory.decrement_stock(product_id, data['qty'])
self.is_paid = True
self.status = "COMPLETED"
return {"status": "success", "charged_amount": final_amount}
מוודאים שקובץ ה-Python שלמעלה נמצא בתיקייה במחשב וטוענים אותו כסביבת עבודה ב-Antigravity.
זהו שירות הזמנות פשוט עם הפונקציונליות העיקרית הבאה בפונקציית checkout:
- האימות מוודא שהעגלה לא ריקה.
- בודקים את המלאי של כל הפריטים.
- חישוב המחיר הסופי.
- תשלום חיובים.
- מעדכן את המלאי.
אנחנו הולכים להקצות לסוכן את המשימה של יצירת מקרי בדיקה של יחידות, לספק יישומי Mock ולהריץ את הבדיקות כדי לוודא שהן מצליחות.
נפתח את תיקיית סביבת העבודה הספציפית שלנו ותוכלו לראות שעכשיו אפשר להשתמש גם בסמל @ כדי להפנות לקובץ. לדוגמה, אנחנו יכולים:

יופיע הסבר על הקובץ:

אפשר לבקש ממנו ליצור תרשים טוב יותר באמצעות ההנחיה:
Can you visually show this class for better understanding

השלב הבא הוא ליצור את בדיקות היחידה ולבקש מהסוכן לבצע אותן. ההנחיה שנתתי:
generate unit tests for this module and test it out with mock implementations.
הוא יצר את תוצר הפיתוח (Artifact) הבא של המשימה והמשיך במשימה שלו.

אפשר גם לראות את פרטי הבדיקות שהכלי הריץ:

אחד מהקבצים שנוצרו היה גם קובץ הבדיקה. צילום מסך של ההודעה מוצג בהמשך:

דברים שכדאי לנסות
אתם יכולים לקחת קוד משלכם ולראות מה אפשר לבקש מהסוכן לעשות, החל מהוספת פונקציונליות ועד לשינוי מבנה של חלקים בקוד.
12. מזל טוב
מזל טוב, התקנת בהצלחה את Antigravity, פלטפורמת הפיתוח שמתמקדת בנציגים, והבנת איך להשתמש בה. התרחישים השונים לשימוש שניסינו אמורים לעזור לכם להבין את הדרישות שלכם ולראות איך Antigravity יכול לעזור לכם להשלים אותן.
מאמרי עזרה
- האתר הרשמי : https://antigravity.google/
- מסמכי התיעוד: https://antigravity.google/docs
- תרחישי שימוש : https://antigravity.google/use-cases
- הורדה : https://antigravity.google/download
- ערוץ YouTube של Google Antigravity : https://www.youtube.com/@googleantigravity