מדריך למפתחים בנושא Gemini 4 Argon

‫Gemini 4 Argon הוא מודל פורץ דרך של Google, שמצטיין בעבודה מעמיקה במשימות מורכבות בעולם האמיתי בתחומים כמו תכנות, פיננסים, משפטים, אבטחת סייבר ומדע. זהו המודל הראשון במשפחת Gemini 4.

במאמר הזה מוסבר מה חדש ב-Argon 4, מהם כללי ה-API שהוא אוכף, איך עוברים אליו ואיך מתחילים להשתמש בו. סקירה כללית של משפחת Gemini 4 זמינה במאמר איך מתחילים להשתמש ב-Gemini 4.

מה חדש ב-Gemini 4 Argon?

  • חלון הקשר: חלון ההקשר של 1,048,576 טוקנים משותף בין טוקנים של קלט, חשיבה ופלט.
  • פענוח ארוך של עד 1,048,576 טוקנים: הרחבת היצירה מעבר למגבלת הפלט של בקשה יחידה (65,536 טוקנים לבקשות סטרימינג או 32,768 טוקנים לבקשות HTTP ישירות שאינן סטרימינג) עד 1,048,576 טוקנים ב-GenerateContent. ‫Google Gen AI SDK מטפל ב-continuation_token באופן אוטומטי בכל הבקשות, או שאתם יכולים לנהל את continuation_token בלולאת ההמשך שלכם.
  • רמות חשיבה: LOW, MEDIUM (ברירת מחדל ב-gemini-4-argon) ו-HIGH (ברירת מחדל ב-gemini-4-argon-cyber-permissive).
  • שמירה במטמון משתמעת עם שמירה במטמון עמידה: שמירה במטמון משתמעת חלה באופן אוטומטי על תחיליות של הנחיות משותפות עם 6,144 אסימונים או יותר, והשמירה במטמון העמידה מופעלת כברירת מחדל. אין תמיכה בשמירת הקשר מפורשת במטמון.
  • הבנת וידאו מבוססת-סוכנים: זמינה לכלל המשתמשים (GA) וכבויה כברירת מחדל.

מדריך למתחילים

לפני שמתחילים, צריך לבצע אימות ב-Agent Platform באמצעות Application Default Credentials ‏ (ADC) או מפתח API. מידע נוסף זמין במאמר תחילת העבודה עם Gemini Enterprise Agent Platform.

בבלוקי הקוד הבאים, מחליפים את PROJECT_ID במזהה הפרויקט.

התקנה

שדרוג לגרסה העדכנית של Google Gen AI SDK (‏google-genai >= 2.30.1 ל-Python,‏ @google/genai >= 2.29.1 ל-JavaScript,‏ >= 1.74.0 ל-Go,‏ >= 1.77.0 ל-Java,‏ >= 1.26.0 ל-‎ .NET או >= 1.6.0 ל-Kotlin):

pip install --upgrade "google-genai>=2.30.1"

בקשה בסיסית

Python ‏ (GenerateContent)

from google import genai

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
  model="gemini-4-argon",
  contents="How does AI work?",
)
print(response.text)

Python (Interactions API)

from google import genai

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

turn1 = client.interactions.create(
    model="gemini-4-argon",
    input="Design a lock-free ring buffer in Rust for multi-producer, single-consumer telemetry ingestion.",
    store=True,
)
print(turn1.output_text)

turn2 = client.interactions.create(
    model="gemini-4-argon",
    input="Add a bounded backpressure policy and unit tests for concurrent writers.",
    previous_interaction_id=turn1.id,
)
print(turn2.output_text)

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent \
-d '{
  "contents": {
    "role": "USER",
    "parts": { "text": "Why is the sky blue?" }
  }
}'

פלט מובנה

from pydantic import BaseModel, Field
from google import genai
from google.genai import types

class ArchitectureReview(BaseModel):
    component: str = Field(description="Service or module name")
    bottlenecks: list[str] = Field(description="Throughput or latency bottlenecks")
    recommended_changes: list[str] = Field(description="Concrete refactoring steps")

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
    model="gemini-4-argon",
    contents="Review a synchronous order-processing pipeline backed by a single primary database at 15,000 writes/sec.",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=ArchitectureReview,
        thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
    ),
)
print(response.text)

פענוח ארוך

כברירת מחדל, בקשת API אחת יוצרת עד 65,536 טוקנים של חשיבה ופלט (או 32,768 טוקנים לבקשות HTTP ישירות שאינן סטרימינג). כדי ליצור השלמות של עד 1,048,576 טוקנים ב-GenerateContent (v1beta1), צריך להגדיר את max_output_tokens כערך שגדול מ-65,536 (עד 1,048,576). ‫Google Gen AI SDK עוקב באופן אוטומטי אחרי continuation_token בבקשות כש-finish_reason מוגדר כ-CONTINUATION (כדי להשבית את ההמשך האוטומטי, מגדירים את automatic_continuation=False ב-GenerateContentConfig), או שאפשר להעביר את continuation_token בלולאה מותאמת אישית.

from google import genai
from google.genai import types

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

# Automatic continuation is enabled by default in google-genai >= 2.30.1.
# Chunks across all continuation requests are yielded as a single stream.
for chunk in client.models.generate_content_stream(
    model="gemini-4-argon",
    contents="Write a complete formal proof of the prime number theorem.",
    config=types.GenerateContentConfig(
        max_output_tokens=256000,
        thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
    ),
):
    print(chunk.text, end="")

# Set automatic_continuation=False to disable automatic continuation
# and stop at a single request.
single_request_response = client.models.generate_content(
    model="gemini-4-argon",
    contents="Write a complete formal proof of the prime number theorem.",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
        automatic_continuation=False,
    ),
)
print(single_request_response.text)

‫REST (לולאת המשך בהתאמה אישית)

# Request 1: Initial request with maxOutputTokens > 32,768
curl -s -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "Write a complete formal proof of the prime number theorem."}]
    }],
    "generationConfig": {
      "maxOutputTokens": 131072,
      "thinkingConfig": {"thinkingLevel": "HIGH"}
    }
  }'

# Request 2: Resend the original request with top-level continuationToken
# from Request 1 (candidates[0].continuationToken)
curl -s -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "Write a complete formal proof of the prime number theorem."}]
    }],
    "continuationToken": "CONTINUATION_TOKEN_FROM_REQUEST_1",
    "generationConfig": {
      "maxOutputTokens": 131072,
      "thinkingConfig": {"thinkingLevel": "HIGH"}
    }
  }'

כללי API חובה ומוסכמות התנהגותיות

‫Gemini 4 Argon אוכף את המוסכמות הבאות:

  • מגבלות על חלון ההקשר ועל הפלט של בקשה אחת:
    • חלון ההקשר של 1,048,576 טוקנים משותף בין טוקנים של קלט, חשיבה ופלט. אם מגדירים את max_output_tokens לערך שגדול מ-1,048,576, מוחזרת שגיאת HTTP‏ 400.
    • כדי למנוע השלמות ארוכות לא מכוונות, מגבלת הפלט של בקשה יחידה שמוגדרת כברירת מחדל (חשיבה + תגובת המודל) היא 65,536 טוקנים (או 32,768 טוקנים לבקשות HTTP ישירות שלא מועברות בסטרימינג).
  • פענוח ארוך:

    • איך פועל פענוח ארוך: פענוח ארוך מפצל יצירה של עד 1,048,576 אסימונים על פני כמה הסקות של GenerateContent. אם בקשה מגיעה למגבלת הפלט לכל בקשה לפני שהיא מסתיימת, ה-API מחזיר את הערך finish_reason=CONTINUATION ואת הערך continuation_token המוצפן שמכיל גיבוב של ההנחיה המקורית ואת מצב היצירה עד לנקודה הזו. צריך לכלול את continuation_token בבקשות הבאות עם ההנחיה המקורית עד ש-continuation_token לא יופיע יותר ו-finish_reason=STOP. (ב-Agent Studio, אם מגדירים את מגבלת הטוקנים בפלט לערך שגדול מ-65,536 ועד 1,048,576, המערכת מטפלת בטוקנים להמשך באופן אוטומטי).
    • מתי כדאי להשתמש בפענוח ארוך: רוב הבקשות מסתיימות במסגרת המגבלה לכל בקשה (65,536 טוקנים, או 32,768 טוקנים לקריאות REST שאינן סטרימינג). פענוח ארוך נותן למודל יותר מקום להסקת מסקנות, אבל הוא לא מאריך את התשובות (אפשר להשתמש ב-thinking_level כדי לשלוט בעומק הסקת המסקנות).
    עומס עבודה להשתמש בפענוח ארוך? למה לבחור ב-
    מתמטיקה, מדע, מחקר והוכחות פורמליות ברמה גבוהה כן המודל יכול להשתמש ביותר מ-65,536 טוקנים כדי לבדוק את תהליך החשיבה שלו.
    המשימות הכי קשות של תכנות ונציגים כן יש משימות שדורשות יותר מ-65,536 טוקנים של חשיבה וקוד בתשובה אחת. רוב המשימות שקשורות לתכנות ולנציגים מסתיימות עם פחות מ-65,536 טוקנים.
    כלי הערכה שעוצרים במגבלת הפלט כן פענוח ארוך מונע תשובות חלקיות כשהמודל משקיע את כל הבקשה של 65,536 או 32,768 טוקנים בחשיבה.
    צ'אט, שאלות ותשובות, סיכום, סיווג וחילוץ לא המשימות האלה מסתיימות הרבה לפני שמגיעים ל-32,768 טוקנים.
    בקשות לאורך קבוע, כמו "תכתוב ספר באורך 700,000 מילים" לא המודל לא עומד ביעדי האורך.
    סוכנים שמפעילים כלים בהרבה פניות קצרות לא כל תור קצר. תפוקות גדולות בכל תור ממלאות במהירות את חלון הקלט והפלט המשותף של 1,048,576 טוקנים.
    הנחיות שמתקרבות למגבלת הקלט של 1,048,576 טוקנים לא הפלט יכול להשתמש רק ב-1,048,576 טוקנים פחות הקלט שלכם.
    בקשות שרגישות לזמן האחזור לא פענוח ארוך יכול להימשך כמה דקות.
    • בחירת אפשרות להמשך: כל האפשרויות מגיעות לאותה מגבלה של 1,048,576 טוקנים ב-gemini-4-argon וב-gemini-4-argon-cyber-permissive.
    מאפיין אפשרות 1: Google Gen AI SDK (מומלץ) אפשרות 2: לולאת סטרימינג משלכם (streamGenerateContent) אפשרות 2: לופ משלכם שלא מועבר בסטרימינג (generateContent)
    מי מתחיל כל פלח ה-SDK (automatic_continuation=True כברירת מחדל). אם הפלט מכיל יותר מ-65,536 טוקנים, צריך להגדיר את max_output_tokens כערך שגדול מ-65,536 (עד 1,048,576). הקוד שלכם, בכל נקודת ביקורת או אחרי שידור שהופסק הקוד שלכם, כל 32,768 טוקנים
    טוקנים לכל בקשה עד 65,536 לכל פלח 65,536 לכל שידור ‫32,768 לכל בקשה
    מגבלת זמן לכל בקשה 20 דקות 20 דקות 20 דקות
    אחסון ו-ZDR אין אחסון בשרת (תאימות ל-ZDR) אין אחסון בשרת (תאימות ל-ZDR) אין אחסון בשרת (תאימות ל-ZDR)
    מתאים במיוחד בשביל רוב האפליקציות מתקשרים של REST ורכיבי עזר מותאמים אישית שמשדרים מסגרות פשוטות להערכה
    • כללים ומגבלות להטמעה:
      • דרישת API‏ v1beta1 (בעיה מוכרת): פענוח ארוך (continuation_token) ב-GenerateContent (generateContent ו-streamGenerateContent) נתמך רק ב-API‏ v1beta1 (לא ב-v1). ב-Google Gen AI SDK נעשה שימוש ב-v1beta1 כברירת מחדל, אלא אם מציינים את api_version='v1' ב-http_options. לקריאות ישירות ל-REST, משתמשים בנתיב של נקודת הקצה v1beta1. אין תמיכה בפענוח ארוך ב-Interactions API.
      • גרסאות SDK ותאימות ל-OpenAI: שדרגו לגרסה העדכנית של Google Gen AI SDK (גרסה google-genai >= 2.30.1 ל-Python, גרסה @google/genai >= 2.29.1 ל-JavaScript, גרסה >= 1.74.0 ל-Go, גרסה >= 1.77.0 ל-Java, גרסה >= 1.26.0 ל-‎ .NET או גרסה >= 1.6.0 ל-Kotlin). גרסאות ישנות יותר של SDK ושכבת התאימות ל-OpenAI לא יכולות לאחזר השלמות ארוכות באמצעות טוקנים של המשך. להטמעות של לקוחות בהתאמה אישית, עיינו בהטמעת העזר של Google Gen AI SDK.
      • שליחה מחדש של הבקשה המקורית עם continuation_token: בלולאה מותאמת אישית, מגדירים את max_output_tokens כערך שגדול מ-65,536 (סטרימינג) או מ-32,768 (אונארי) ועד 1,048,576, ושולחים מחדש את contents,‏ system_instruction ו-tools המקוריים בכל בקשת המשך יחד עם continuation_token העדכני (שדה ברמה העליונה ב-GenerateContentRequest ב-REST, או ב-GenerateContentConfig ב-Google Gen AI SDK). אל תוסיפו פלט חלקי של המודל ל-contents ואל תשלחו הנחיית המשך שבה תבקשו מהמודל להמשיך.
      • המשך טיפול בבקשות שכוללות רק חשיבה: המשך הפעולה כל עוד finish_reason הוא CONTINUATION ו-continuation_token קיים, גם אם בקשה מסוימת ניצלה את כל 32,768 או 65,536 הטוקנים לחשיבה (parts: [{"text": ""}]). אם finish_reason הוא MAX_TOKENS כש-continuation_token קיים, המשמעות היא שהיצירה הגיעה למגבלת max_output_tokens שצוינה בבקשה – צריך להגדיל את max_output_tokens בבקשה. שילוב של חלקים שנצברו לmodelתור יחיד להיסטוריית שיחה מרובת-תורות רק אחרי STOP.
      • ספירת טוקנים, דחיסה והנחה של 95% על מטמון מרומז:
        • ב-Python Google Gen AI SDK (generate_content ו-generate_content_stream), התשובה הסופית או ה-usage_metadata של החלק צוברים את סך כל האסימונים שחויבו בבקשות ההמשך. בגלל שבכל בקשת המשך, ההשלמות החלקיות הקודמות ממולאות מראש כאסימוני קלט, הערך של prompt_token_count גדל באופן מצטבר בין בקשות ההמשך. אל תשתמשו ב-prompt_token_count כדי להפעיל דחיסת הקשר במעטפות אג'נטיות. במקום זאת, קוראים את initial_prompt_token_count (ב-GenerateContentResponse או ב-usage_metadata), ומחכים עד ש-GenerateContent מסתיים (אין continuation_token) לפני שמבצעים דחיסה.
        • בלולאות REST בהתאמה אישית, usage_metadata הוא מצטבר בכל בקשה. צריך לסכם את הערכים הסופיים של prompt_token_count,‏ cached_content_token_count,‏ candidates_token_count ו-thoughts_token_count בכל הבקשות.
        • כל בקשת המשך ממלאת מראש את ההנחיה ואת האסימונים הקודמים שפוענחו, ומקבלת באופן אוטומטי את ההנחה המשתמעת של 95% על שמירת ההקשר במטמון (מינימום 6,144 אסימונים) כשהבקשות פועלות ברצף במסגרת זמן החיים (TTL) של המטמון, שנמשך 15-20 דקות.
        • ‫streamGenerateContent ו-generateContent מחזירים את הערכים continuation_token ו-usage_metadata בסוף כל בקשה (65,536 סטרימינג / 32,768 unary), והחיוב מתבצע בסוף הבקשה.
  • פרמטרים של דגימה שהמערכת מתעלמת מהם (temperature, top_k, top_p): המערכת העורפית מתעלמת מערכים מותאמים אישית. שליטה בעומק הנימוק באמצעות thinking_level, ובפורמט הפלט באמצעות response_schema.

  • פרמטרים לא נתמכים (frequency_penalty, presence_penalty,‏ candidate_count): הפרמטרים האלה מחזירים שגיאת HTTP 400. צריך להסיר אותם מהבקשות.

  • שמירת הקשר במטמון: אין תמיכה בשמירת הקשר במטמון באופן מפורש. שמירה במטמון באופן משתמע (עם שמירה במטמון לטווח ארוך שמופעלת כברירת מחדל) חלה באופן אוטומטי על תחיליות משותפות של הנחיות עם 6,144 טוקנים או יותר, לכן כדאי להציב תוכן סטטי בתחילת ההנחיה.

  • סרטון עם סוכן: סרטונים שהועלו כברירת מחדל ל-media_processing="static". מגדירים את media_processing="agentic" לערך true כדי להפעיל עיבוד וידאו באמצעות AI.

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

  • בקשה להפעלת פונקציה:

    • סימטריה סיבובית: כל FunctionResponse צריך להתאים ל-id, ל-name ולסדר של FunctionCall הקודם.
    • ביצוע רציף: עדיף להשתמש בהרצה רציפה של כלי בלולאות של כלי מרובה שלבים.
    • עיצוב לפני הכלי: מפרידים בין ההוראות בשורה באמצעות \n\n ונמנעים מטקסט לא מובנה לפני הקריאות לכלי.
  • אימות רצף הצ'אט:

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

מעבר מ-‎3.1 Pro ל-4 Argon

ההתנהגות הבאה שונה מ-gemini-3.1-pro-preview:

  • חלון ההקשר הוא חלון של 1,048,576 טוקנים שמשותף לקלט, לחשיבה ולפלט, במקום מגבלות נפרדות לקלט ולפלט. הפלט של בקשה אחת מוגבל ל-65,536 טוקנים (או 32,768 טוקנים לבקשות HTTP ישירות ללא סטרימינג), ואפשר להרחיב אותו עד ל-1,048,576 טוקנים באמצעות פענוחים ארוכים ב-GenerateContent (המערכת מטפלת בזה באופן אוטומטי ב-Google Gen AI SDK, או באמצעות continuation_token בלולאות בהתאמה אישית).
  • ‫thinking_budget מחזירה שגיאת HTTP 400 במקום להיות ממופה לרמת חשיבה. גם הפונקציה MINIMAL מחזירה שגיאה.
  • אין תמיכה בשמירת הקשר באופן מפורש.
  • החיוב מתבצע על כל טוקן שהמודל מעבד, כולל הוראות של מערכת כלי פנימיות והצהרות על פונקציות כשמשתמשים ב-grounding.

להשוואה בטבלה, אפשר לעיין במאמר מעבר מ-Gemini 3.1 Pro.

כדי לבצע מיגרציה מ-gemini-3.1-pro-preview, צריך לבצע את הפעולות הבאות:

  1. מעדכנים את מזהה המודל ל-gemini-4-argon (או ל-gemini-4-argon-cyber-permissive לעומסי עבודה של אבטחת סייבר שאושרו על ידי Fairwind).
  2. שדרוג לגרסה האחרונה של Google Gen AI SDK והתחשבות בחלון ההקשר המשותף: שדרוג לגרסה google-genai >= 2.30.1 (Python) או לגרסה האחרונה המקבילה של Google Gen AI SDK. טוקנים של קלט, חשיבה ופלט חולקים את חלון ההקשר של 1,048,576 טוקנים. כדי לקבל פלט של יותר מ-65,536 טוקנים (עד 1,048,576 טוקנים) ב-GenerateContent, צריך להגדיר את max_output_tokens כערך גדול מ-65,536 כדי ש-Google Gen AI SDK ימשיך אוטומטית את הבקשות (או לטפל ב-continuation_token בלולאת REST משלכם).
  3. מחליפים את פרמטר התקציב של הנימוקים: מחליפים את thinking_budget ואת MINIMAL ב-thinking_level ומגדירים אותו לאחד מהערכים הבאים:
    • HIGH: מופעלת כברירת מחדל ב-gemini-4-argon-cyber-permissive. הנדסת תוכנה מרובת קבצים, הוכחות פורמליות, עיצוב ארכיטקטורה וגילוי פגיעויות.
    • MEDIUM: מופעלת כברירת מחדל ב-gemini-4-argon. קידוד כללי, שימוש בכלי, שאלות ותשובות לגבי מסמכים והבנת סרטונים.
    • ‫LOW: סיווג, סיכום וחילוץ מטא-נתונים.
  4. הסרת שמירה במטמון של תוכן בוטה וטעינה מראש של תוכן סטטי בהנחיה (6,144 טוקנים ומעלה) לשמירה אוטומטית במטמון.
  5. הסרת פרמטרים שלא משפיעים או שלא נתמכים:
    • הסרה של temperature,‏ top_p ו-top_k, שהמערכת מתעלמת מהם.
    • הסרה של candidate_count, frequency_penalty ו-presence_penalty.
    • להסיר מהיסטוריית השיחות את כל תשובות המודל המאכלסות מראש.

רשימת משימות מסכמת למפתחים

בעיות מוכרות

  • פענוח ארוך ב-GenerateContent דורש v1beta1: פענוח ארוך (continuation_token) ב-API של GenerateContent (generateContent ו-streamGenerateContent) נתמך רק ב-API של v1beta1 (לא ב-v1). כברירת מחדל, Google Gen AI SDK משתמש ב-v1beta1, אלא אם api_version='v1' מוגדר ב-http_options. לקריאות ישירות ל-REST, משתמשים בנתיב של נקודת הקצה v1beta1.

מקורות מידע נוספים