שימוש ב-Agent Mode ב-Gemini Code Assist

במאמר הזה מוסבר איך להגדיר את Gemini Code Assist ולהשתמש בו במצב סוכן כמתכנתים בזוגות בסביבת פיתוח משולבת (IDE).

במצב סוכן, אפשר לבצע את הפעולות הבאות ועוד:

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

מגבלות

יכול להיות שחלק מהתכונות של הצ'אט הרגיל של Gemini Code Assist לא יהיו זמינות במצב סוכן, או שיפעלו בצורה שונה מהצורה שבה הן פועלות בצ'אט הרגיל.

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

לפני שמתחילים

  1. מגדירים את מהדורת Gemini Code Assist שרוצים להשתמש בה בסביבת הפיתוח המשולבת (IDE):

הפעלת Agent Mode

במצב Agent, אתם יכולים לבקש מ-Gemini להשלים משימות מורכבות ומטרות ברמה גבוהה.

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

כדי לעבור למצב Agent:

VS Code

  1. כדי לפתוח את הצ'אט של Gemini Code Assist, בסרגל הפעילות של סביבת הפיתוח המשולבת, לוחצים על spark Gemini Code Assist.
  2. לוחצים על המתג נציג כדי לעבור למצב נציג. המתג מודגש כשעוברים למצב סוכן ואפור כשנמצאים בצ'אט רגיל.
  3. בצ'אט של Gemini Code Assist, מזינים את ההנחיה.

‫Gemini נותן לכם תשובה להנחיה או מבקש הרשאה להשתמש בכלי.

כדי לעצור את הסוכן, לוחצים על עצירה.

כדי להשתמש בצ'אט הרגיל של Gemini Code Assist, לוחצים על New chat כדי ליצור צ'אט חדש.

IntelliJ

  1. בסרגל הכלים של חלון הכלים, לוחצים על spark Gemini. אם מוצגת בקשה להיכנס לחשבון, מזינים את פרטי הכניסה.
  2. בוחרים בכרטיסייה סוכן.
  3. מתארים את המשימה שרוצים שהסוכן יבצע.
  4. במהלך השלבים לביצוע המשימה, תוכלו לבדוק ולאשר את השינויים.

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

הגדרת כלים למצב סוכן

כלים הם קטגוריה רחבה של שירותים שנציג יכול להשתמש בהם כדי להבין את ההקשר ולבצע פעולות בתשובה להנחיה. דוגמאות לכלים: כלים מובנים כמו grep וקריאה או כתיבה של קבצים, שרתים מקומיים או מרוחקים של Model Context Protocol ‏ (MCP) והפונקציות הניתנות להפעלה שלהם, או הטמעות של שירותים בהתאמה אישית.

שליטה בשימוש בכלי מובנה

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

VS Code

אתם יכולים להשתמש בהגדרות coreTools ו-excludeTools כדי לקבוע לאילו כלים תהיה ל-Gemini גישה במצב סוכן.

coreTools
מאפשרת לציין רשימה של כלים שרוצים שהמודל יוכל להשתמש בהם. אפשר גם לציין הגבלות ספציפיות לפקודות עבור כלים שתומכים בכך. לדוגמה, אם מוסיפים את הקוד הבא ל-JSON של הגדרות Gemini, רק הפקודה ls -l של Shell תורשה לפעול:"coreTools": ["ShellTool(ls -l)"].
excludeTools
מאפשרת לכם לציין רשימה של כלים שאתם לא רוצים שהמודל יוכל להשתמש בהם. אפשר גם לציין הגבלות ספציפיות לפקודות עבור כלים שתומכים בכך. לדוגמה, אם מוסיפים את הקוד הבא ל-JSON של הגדרות Gemini, השימוש בפקודה rm -rf ייחסם: "excludeTools": ["ShellTool(rm -rf)"].

אם כלי מופיע גם ב-excludeTools וגם ב-coreTools, הוא מוחרג.

כדי להגדיר את הכלים המובנים שזמינים במצב סוכן:

  1. פותחים את קובץ ה-JSON של הגדרות Gemini שנמצא במיקום ~/.gemini/settings.json, כאשר ~ הוא ספריית הבית.
  2. כדי להגביל את השימוש בכלי הסוכן לרשימה של כלים מאושרים, מוסיפים את השורה הבאה ל-JSON של הגדרות Gemini:

    "coreTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    מחליפים את TOOL_NAME_1 ואת TOOL_NAME_2 בשמות של הכלים המובנים שרוצים שהסוכן יוכל לגשת אליהם.

    אפשר לפרט כמה כלים מובנים שרוצים. כברירת מחדל, כל הכלים המובנים זמינים לסוכן.

  3. כדי להגביל את השימוש בכלי סוכן לפקודות כלי ספציפיות, מוסיפים את השורה הבאה ל-JSON של הגדרות Gemini:

    "coreTools": ["TOOL_NAME(COMMAND)"]
    

    מחליפים את מה שכתוב בשדות הבאים:

    • TOOL_NAME: השם של הכלי המובנה
    • COMMAND: השם של הפקודה של הכלי המובנה שרוצים שהסוכן יוכל להשתמש בו.
  4. כדי להחריג כלי משימוש על ידי הסוכן, מוסיפים את השורה הבאה ל-JSON של הגדרות Gemini:

    "excludeTools": ["TOOL_NAME_1,TOOL_NAME_2"]
    

    מחליפים את TOOL_NAME_1 ואת TOOL_NAME_2 בשמות של הכלים המובנים שרוצים להחריג משימוש על ידי הסוכן.

  5. כדי להחריג פקודה של כלי מהשימוש בסוכן, מוסיפים את השורה הבאה לקובץ ה-JSON של הגדרות Gemini:

    "excludeTools": ["TOOL_NAME(COMMAND)"]
    

    מחליפים את מה שכתוב בשדות הבאים:

    • TOOL_NAME: השם של הכלי המובנה
    • COMMAND: השם של הפקודה המובנית של הכלי שרוצים להחריג משימוש על ידי הסוכן.

מידע נוסף על הגדרות התצורה coreTools ו-excludeTools זמין במסמכי התיעוד של Gemini CLI.

IntelliJ

התכונה הזו לא נתמכת ב-Gemini Code Assist ל-IntelliJ או בסביבות פיתוח משולבות (IDE) אחרות של JetBrains.

הגדרת שרתי MCP

בהוראות הבאות מוסבר איך להפוך שרתי MCP לזמינים לשימוש במצב סוכן בסביבת הפיתוח המשולבת (IDE). אחרי שמעמידים שרת MCP לרשות Gemini Code Assist, הוא מחליט באופן אוטומטי מתי ואיך להשתמש בכלים של השרת שכלולים בשרת ה-MCP.

VS Code

כדי להפוך שרתי MCP לזמינים לשימוש במצב סוכן, מוסיפים את ההגדרה לכל שרת בקובץ ה-JSON של הגדרות Gemini, בהתאם לתיעוד של כל שרת.

  1. מתקינים את כל הרכיבים התלויים שנדרשים על ידי שרתי ה-MCP שמוסיפים.
  2. פותחים את קובץ ה-JSON של הגדרות Gemini, שנמצא במיקום ~/.gemini/settings.json, כאשר ~ היא ספריית הבית.
  3. מגדירים כל שרת MCP מקומי או מרוחק בקובץ ה-JSON של הגדרות Gemini, בהתאם להוראות של כל שרת.

    בדוגמה הבאה של קובץ JSON להגדרות Gemini, מוגדרים שני שרתי MCP מרוחקים של Cloudflare, שרת MCP מרוחק של GitLab ושרת MCP מקומי של GitHub לשימוש עם Gemini Code Assist ב-VS Code.

    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": ["mcp-remote", "https://your-gitlab-instance.com/api/v4/mcp"]
        },
        "cloudflare-observability": {
          "command": "npx",
          "args": ["mcp-remote", "https://observability.mcp.cloudflare.com/sse"]
        },
        "cloudflare-bindings": {
          "command": "npx",
          "args": ["mcp-remote", "https://bindings.mcp.cloudflare.com/sse"]
        }
      }
    }
    

  4. פותחים את לוח הפקודות ובוחרים באפשרות Developer: Reload Window (מפתח: טעינה מחדש של החלון).

שרתי ה-MCP שהגדרתם זמינים לסוכן לשימוש במצב סוכן.

IntelliJ

כדי להפוך את שרתי ה-MCP לזמינים לשימוש במצב סוכן, מוסיפים את ההגדרה של כל שרת בקובץ mcp.json וממקמים את קובץ ה-mcp.json בספריית ההגדרות של סביבת הפיתוח המשולבת.

  1. מתקינים את כל הרכיבים התלויים שנדרשים על ידי שרתי ה-MCP שמוסיפים.
  2. יוצרים קובץ בשם mcp.json בתיקיית ההגדרות של סביבת הפיתוח המשולבת.
  3. מגדירים כל שרת MCP מקומי או מרוחק בקובץ mcp.json, לפי ההוראות של כל שרת.

    בדוגמה הבאה, קובץ mcp.json מגדיר שני שרתי MCP מרוחקים של Cloudflare, שרת MCP מרוחק של GitLab ושרת MCP מקומי של GitHub לשימוש עם Gemini Code Assist ב-IntelliJ.

    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_example_personal_access_token12345"
          }
        },
        "gitlab": {
          "command": "npx",
          "args": ["mcp-remote", "https://your-gitlab-instance.com/api/v4/mcp"]
        },
        "cloudflare-observability": {
          "command": "npx",
          "args": ["mcp-remote", "https://observability.mcp.cloudflare.com/sse"]
        },
        "cloudflare-bindings": {
          "command": "npx",
          "args": ["mcp-remote", "https://bindings.mcp.cloudflare.com/sse"]
        }
      }
    }
    

שרתי ה-MCP שהגדרתם זמינים לסוכן לשימוש במצב סוכן.

אימות שרת ה-MCP

חלק משרתי ה-MCP דורשים אימות. פועלים לפי התיעוד של השרת כדי ליצור את אסימוני המשתמש הנדרשים, ואז מציינים אותם בצורה המתאימה. בדרך כלל, מציינים אסימוני אימות לשרתים מקומיים באמצעות משתנה הסביבה המתאים לשרת, ומציינים אסימוני אימות לשרתים מרוחקים באמצעות כותרת HTTP Authorization.

VS Code

אם יש לכם שרתי MCP שדורשים אימות, אתם יכולים להוסיף אותם לקובץ ה-JSON של הגדרות Gemini.

בדוגמה הבאה מוצג טוקן גישה אישי לשרתים מקומיים ומרוחקים של GitHub MCP:

{
  "mcpServers": {
    "github-remote": {
      "httpUrl": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ACCESS_TOKEN"
      }
    },
    "github-local": {
      "command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
      "args": ["stdio"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
      }
    }
  }
}

כאשר ACCESS_TOKEN הוא טוקן הגישה של המשתמש.

IntelliJ

בשרתי MCP שדורשים אימות, אפשר להוסיף אותם לקובץ mcp.json.

בדוגמה הבאה מוסיפים אסימון גישה אישי לשרת המקומי של GitHub:

{
  "mcpServers": {
    "github-local": {
      "command": "/Users/username/code/github-mcp-server/cmd/github-mcp-server/github-mcp-server",
      "args": ["stdio"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ACCESS_TOKEN"
      }
    }
  }
}

כאשר ACCESS_TOKEN הוא טוקן הגישה של המשתמש.

יצירת קובץ הקשר

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

VS Code

  1. יוצרים קובץ בשם GEMINI.md במיקום שתואם להיקף שרוצים שההקשר יחול עליו. בטבלה הבאה מפורטים המיקומים של קובצי ההקשר להיקפים שונים:

    היקף מיקום
    כל הפרויקטים שלכם ~/.gemini/GEMINI.md
    פרויקט ספציפי ספריית העבודה או כל ספריית אב עד שורש הפרויקט (מזוהה על ידי תיקייה .git) או ספריית הבית.
    רכיב, מודול או חלק משני של פרויקט ספריות משנה של ספריית העבודה.

    מערכת הזיכרון של הסוכן נוצרת על ידי טעינת קובצי הקשר מכמה מיקומים. הקשר מקבצים ספציפיים יותר, כמו קבצים של רכיבים או מודולים ספציפיים, מבטל או משלים תוכן מקבצים של הקשר כללי יותר, כמו קובץ ההקשר הגלובלי ב-~/.gemini/GEMINI.md.

  2. כותבים את הכללים, את המידע על סגנון הכתיבה או את ההקשר שרוצים שהסוכן ישתמש בהם בפורמט Markdown ושומרים את הקובץ. מידע נוסף אפשר למצוא בקובץ ההקשר לדוגמה ב-GitHub.

הסוכן כולל את המידע בקובץ ההקשר יחד עם ההנחיות שאתם שולחים לו.

IntelliJ

  1. יוצרים קובץ בשם GEMINI.md או AGENT.md בשורש של הפרויקט.

  2. כותבים את הכללים, את המידע על סגנון הכתיבה או את ההקשר שרוצים שהסוכן ישתמש בהם בפורמט Markdown ושומרים את הקובץ.

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

שימוש בפקודות

פקודות עם לוכסן / מאפשרות להריץ במהירות פקודות שדומות לפקודות בחלון מסוף.

VS Code

אפשר להשתמש בפקודות המובנות הבאות של Gemini CLI במצב סוכן:

  • /tools: הצגת רשימה של הכלים שזמינים בסשן שלכם במצב סוכן.
  • /mcp: רשימה של שרתי Model Context Protocol‏ (MCP) שהוגדרו, סטטוס החיבור שלהם, פרטי השרת והכלים הזמינים.

מידע נוסף על הפקודות ב-Gemini CLI זמין במאמרים הפקודות ב-Gemini CLI ופקודות בהתאמה אישית ב-Gemini. חשוב לזכור שלא כל הפקודות של Gemini CLI זמינות במצב סוכן.

IntelliJ

התכונה הזו לא נתמכת ב-Gemini Code Assist ל-IntelliJ או בסביבות פיתוח משולבות (IDE) אחרות של JetBrains.

תמיד לאפשר פעולות של סוכנים

אתם יכולים לאפשר אוטומטית את כל הפעולות של הסוכן.

כדי לאפשר באופן אוטומטי את כל הפעולות של הסוכן:

VS Code

אפשר להשתמש במצב yolo כדי לאשר אוטומטית את כל הפעולות של הסוכן. אפשר להשתמש במצב YOLO רק בסביבת עבודה מהימנה.

כדי להגדיר את מצב YOLO:

  1. פותחים את קובץ ה-JSON של הגדרות המשתמש ב-VS Code:

    1. פותחים את לוח הפקודות (ctrl/command + Shift + P).
    2. בוחרים באפשרות העדפות: פתיחת הגדרות משתמש (JSON).
  2. מוסיפים את השורות הבאות לקובץ ה-JSON של הגדרות המשתמש ב-VS Code:

    //other settings...
    
    "geminicodeassist.agentYoloMode": true,
    //other settings...
    
  3. פותחים את לוח הפקודות ובוחרים באפשרות Developer: Reload Window (מפתח: טעינה מחדש של החלון).

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

IntelliJ

כדי לאשר שינויים באופן אוטומטי, בכרטיסייה של סוכן Gemini Chat, בוחרים באפשרות הגדרות אפשרויות הסוכן ואז מסמנים את התיבה לצד אישור אוטומטי של שינויים.

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

הנחיות נוספות

אפשר לנסות את ההנחיות הבאות עם המידע שלכם:

  • "מה המאגר הזה עושה? תסביר לי את הארכיטקטורה".
  • ‫"What does this [class/function] do?‎" (מה [הסוג/הפונקציה] הזה עושה?)
  • "תוסיף תכונה לבסיס הקוד הזה – [קישור או נתיב לבסיס הקוד]".
  • ‫"Refactor function [A] and [B] to use the common method [C]."
  • ‫"Fix the GitHub issue [link-to-github-issue]" (פתור את הבעיה ב-GitHub [קישור לבעיה ב-GitHub]).
  • תבנה אפליקציה שתעשה [מטרה] עם ממשק משתמש שיאפשר למשתמש לעשות [משימה] ב[סביבה].
  • ‫"Migrate library versions in this repository from [X] to [Y]." ‏(העברת גרסאות של ספריות במאגר הזה מ-X ל-Y).
  • "תבצע אופטימיזציה של הביצועים של קוד Go הזה כדי שהוא יפעל מהר יותר".
  • ‫"Use [name-of-API] to build out this feature." ‏(תשתמש ב-API‏ [name-of-API] כדי לפתח את התכונה הזו).
  • ‫"Implement an algorithm to do [x], [Y], and [Z]."

אופציונלי: שימוש במפתח API

‫Gemini Code Assist כולל מכסות יומיות שונות לתכונות מבוססות-סוכן, בהתאם לרמה שבה אתם נמצאים.

אם הגעתם למכסה היומית של Gemini Code Assist במצב סוכן, תוכלו להמשיך להשתמש בשירות באמצעות מפתח API. אפשר להשתמש במפתח Gemini API או במפתח Vertex AI API.

כדי להוסיף את מפתח ה-API:

  1. עוברים להגדרות של סביבת הפיתוח המשולבת.

  2. פותחים את הקובץ settings.json.

  3. מוסיפים את השורה הבאה, ומחליפים את YOUR_KEY במפתח ה-API שלכם:

    "geminicodeassist.geminiApiKey": "YOUR_KEY"

המאמרים הבאים