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 בלולאה מותאמת אישית.
Python (SDK – מומלץ)
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, מוחזרת שגיאת HTTP400. - כדי למנוע השלמות ארוכות לא מכוונות, מגבלת הפלט של בקשה יחידה שמוגדרת כברירת מחדל (חשיבה + תגובת המודל) היא 65,536 טוקנים (או 32,768 טוקנים לבקשות HTTP ישירות שלא מועברות בסטרימינג).
- חלון ההקשר של 1,048,576 טוקנים משותף בין טוקנים של קלט, חשיבה ופלט. אם מגדירים את
פענוח ארוך:
- איך פועל פענוח ארוך: פענוח ארוך מפצל יצירה של עד 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) נתמך רק ב-APIv1beta1(לא ב-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), והחיוב מתבצע בסוף הבקשה.
- ב-Python Google Gen AI SDK (
- דרישת API
- איך פועל פענוח ארוך: פענוח ארוך מפצל יצירה של עד 1,048,576 אסימונים על פני כמה הסקות של
פרמטרים של דגימה שהמערכת מתעלמת מהם (
temperature,top_k,top_p): המערכת העורפית מתעלמת מערכים מותאמים אישית. שליטה בעומק הנימוק באמצעותthinking_level, ובפורמט הפלט באמצעותresponse_schema.פרמטרים לא נתמכים (
frequency_penalty,presence_penalty,candidate_count): הפרמטרים האלה מחזירים שגיאת HTTP400. צריך להסיר אותם מהבקשות.שמירת הקשר במטמון: אין תמיכה בשמירת הקשר במטמון באופן מפורש. שמירה במטמון באופן משתמע (עם שמירה במטמון לטווח ארוך שמופעלת כברירת מחדל) חלה באופן אוטומטי על תחיליות משותפות של הנחיות עם 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מחזירה שגיאת HTTP400במקום להיות ממופה לרמת חשיבה. גם הפונקציהMINIMALמחזירה שגיאה. - אין תמיכה בשמירת הקשר באופן מפורש.
- החיוב מתבצע על כל טוקן שהמודל מעבד, כולל הוראות של מערכת כלי פנימיות והצהרות על פונקציות כשמשתמשים ב-grounding.
להשוואה בטבלה, אפשר לעיין במאמר מעבר מ-Gemini 3.1 Pro.
כדי לבצע מיגרציה מ-gemini-3.1-pro-preview, צריך לבצע את הפעולות הבאות:
- מעדכנים את מזהה המודל ל-
gemini-4-argon(או ל-gemini-4-argon-cyber-permissiveלעומסי עבודה של אבטחת סייבר שאושרו על ידי Fairwind). - שדרוג לגרסה האחרונה של 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 משלכם). - מחליפים את פרמטר התקציב של הנימוקים: מחליפים את
thinking_budgetואתMINIMALב-thinking_levelומגדירים אותו לאחד מהערכים הבאים:HIGH: מופעלת כברירת מחדל ב-gemini-4-argon-cyber-permissive. הנדסת תוכנה מרובת קבצים, הוכחות פורמליות, עיצוב ארכיטקטורה וגילוי פגיעויות.MEDIUM: מופעלת כברירת מחדל ב-gemini-4-argon. קידוד כללי, שימוש בכלי, שאלות ותשובות לגבי מסמכים והבנת סרטונים.-
LOW: סיווג, סיכום וחילוץ מטא-נתונים.
- הסרת שמירה במטמון של תוכן בוטה וטעינה מראש של תוכן סטטי בהנחיה (6,144 טוקנים ומעלה) לשמירה אוטומטית במטמון.
- הסרת פרמטרים שלא משפיעים או שלא נתמכים:
- הסרה של
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.