Interactions API הוא הדרך הטובה ביותר לפתח עם מודלים וסוכנים של Gemini. החל מיוני 2026, היא זמינה לכלל המשתמשים ומומלצת לכל הפרויקטים החדשים. למרות שהוא נחשב עכשיו לגרסה קודמת, ה-API המקורי generateContent עדיין נתמך באופן מלא.
למה כדאי להשתמש ב-Interactions API?
- ממשק אוניברסלי לכל האפליקציות: הממשק הזה תוכנן כממשק הסטנדרטי לכל תרחיש לדוגמה, כולל יצירת טקסט בפנייה אחת, הבנה מולטי-מודאלית, פלט מובנה, תזמור כלים ותהליכי עבודה מבוססי-סוכנים.
- ממשק API יחיד למודלים ולסוכנים: נקודת קצה (Endpoint) ותבנית מאוחדות לקריאה למודלים רגילים של Gemini וגם לסוכנים מיוחדים ישירות (כמו Deep Research וסוכנים מנוהלים בהתאמה אישית).
- יכולות חדשות מובנות: תכונות כמו מצב שיחה אופציונלי בצד השרת באמצעות
previous_interaction_id, שלבי ביצוע שניתנים לצפייה לצורך ניפוי באגים ורינדור של ממשק המשתמש, וביצוע ברקע של משימות ארוכות באמצעותbackground=true. - עלות נמוכה יותר עם שיעורי מציאה במטמון גבוהים יותר: כשמשתמשים בשיחות עם כמה שלבים, ניהול מצב אופציונלי בצד השרת מאפשר שמירת הקשר במטמון בצורה יעילה יותר בין השלבים, וכך מפחית את עלויות הטוקנים.
- איפה משיקים תכונות חדשות: מעכשיו, כל המודלים, היכולות המולטימודליות, הכלים והתכונות של הסוכנים יושקו ב-Interactions API.
כברירת מחדל, Interactions API שומר בקשות כדי שתוכלו להשתמש בתכונות של ניהול מצב בצד השרת באמצעות previous_interaction_id. כדי להפעיל התנהגות בלי שמירת מצב, מגדירים את store=false. פרטים נוספים זמינים בקטע שמירת נתונים.
שנתחיל?
- הגדרת סוכן התכנות: מתחברים ל-Gemini Docs MCP ומתקינים את מיומנות
gemini-api-devכדי לתת לעוזר הדיגיטלי גישה ישירה למסמכי העזרה העדכניים למפתחים ולשיטות המומלצות. שלבים מפורטים מופיעים במאמר בנושא הגדרת סוכן תכנות. - מעבר מ-
generateContent: אם יש לכם שילוב קיים, אתם יכולים לפעול לפי המדריך להעברת נתונים (מיגרציה) כדי לעבור ל-Interactions API. - מתחילים לעבוד: פועלים לפי השלבים במדריך לתחילת העבודה עם Interactions API.
מדריכים לתכונות
במדריכים האלה מוסבר על היכולות הספציפיות של Interactions API. אפשר להשתמש במתג בדפים האלה כדי לעבור בין generateContent לבין Interactions API:
- יצירת טקסט
- יצירת תמונות
- הבנת תמונות
- הבנת אודיו
- הבנת סרטונים
- עיבוד מסמכים
- בקשה להפעלת פונקציה
- פלט מובנה
- סוכן Deep Research
- היקש ברמת Flex
- היקש בעדיפות גבוהה
איך Interactions API פועל
Interactions API מתמקד במשאב ליבה: Interaction. Interaction מייצג תור שלם בשיחה או במשימה. הוא משמש כתיעוד של סשן, ומכיל את ההיסטוריה המלאה של אינטראקציה כרצף כרונולוגי של שלבי ביצוע. השלבים האלה כוללים את המחשבות של המודל, קריאות לכלים בצד השרת או בצד הלקוח והתוצאות שלהן (כמו function_call ו-function_result), ואת ה-model_output הסופי. המשאב המאוחסן (שאוחזר באמצעות interactions.get) כולל גם user_input שלבים להקשר מלא, אבל התשובה interactions.create מחזירה רק שלבים שנוצרו על ידי המודל.
כששולחים קריאה ל-interactions.create, יוצרים משאב Interaction חדש:
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.8-flash",
input="Tell me a short story about a time-traveling lighthouse."
)
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI();
const interaction = await client.interactions.create({
model: "gemini-3.8-flash",
input: "Tell me a short story about a time-traveling lighthouse.",
});
console.log(interaction.output_text);
Java
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
Client client = new Client();
CreateModelInteraction params =
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(InteractionsInput.of("Tell me a short story about a time-traveling lighthouse."))
.build();
Interaction interaction =
client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();
System.out.println(interaction.outputText().orElse(""));
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
"google.golang.org/genai/interactions/models/interactions"
"google.golang.org/genai/interactions/models/operations"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
Model: interactions.Model("gemini-3.8-flash"),
Input: interactions.NewInteractionsInput("Tell me a short story about a time-traveling lighthouse."),
}),
})
if err != nil {
log.Fatal(err)
}
if res.Interaction.OutputText != nil {
fmt.Println(*res.Interaction.OutputText)
}
}
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"input": "Tell me a short story about a time-traveling lighthouse."
}'
ניהול המצב בצד השרת
אפשר להשתמש ב-id של אינטראקציה שהסתיימה בקריאה הבאה באמצעות הפרמטר previous_interaction_id כדי להמשיך את השיחה. השרת משתמש במזהה הזה כדי לאחזר את היסטוריית השיחות, וכך לא צריך לשלוח מחדש את כל היסטוריית הצ'אט:
Python
from google import genai
client = genai.Client()
# 1. First turn
turn1 = client.interactions.create(
model="gemini-3.8-flash",
input="Hi, my name is Phil."
)
# 2. Second turn (chained using previous_interaction_id)
turn2 = client.interactions.create(
model="gemini-3.8-flash",
input="What is my name?",
previous_interaction_id=turn1.id
)
print(turn2.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI();
// 1. First turn
const turn1 = await client.interactions.create({
model: "gemini-3.8-flash",
input: "Hi, my name is Phil.",
});
// 2. Second turn (chained using previous_interaction_id)
const turn2 = await client.interactions.create({
model: "gemini-3.8-flash",
input: "What is my name?",
previous_interaction_id: turn1.id,
});
console.log(turn2.output_text);
Java
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
Client client = new Client();
// 1. First turn
Interaction turn1 =
client
.interactions
.create(
CreateInteractionRequestBody.of(
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(InteractionsInput.of("Hi, my name is Phil."))
.build()))
.interaction()
.get();
// 2. Second turn (chained using previousInteractionId)
Interaction turn2 =
client
.interactions
.create(
CreateInteractionRequestBody.of(
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(InteractionsInput.of("What is my name?"))
.previousInteractionId(turn1.id().get())
.build()))
.interaction()
.get();
System.out.println(turn2.outputText().orElse(""));
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
"google.golang.org/genai/interactions/models/interactions"
"google.golang.org/genai/interactions/models/operations"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
// 1. First turn
turn1, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
Model: interactions.Model("gemini-3.8-flash"),
Input: interactions.NewInteractionsInput("Hi, my name is Phil."),
}),
})
if err != nil {
log.Fatal(err)
}
// 2. Second turn (chained using PreviousInteractionID)
turn2, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
Model: interactions.Model("gemini-3.8-flash"),
Input: interactions.NewInteractionsInput("What is my name?"),
PreviousInteractionID: turn1.Interaction.ID,
}),
})
if err != nil {
log.Fatal(err)
}
if turn2.Interaction.OutputText != nil {
fmt.Println(*turn2.Interaction.OutputText)
}
}
REST
# Replace PREVIOUS_INTERACTION_ID with the id returned from the first turn
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"input": "What is my name?",
"previous_interaction_id": "PREVIOUS_INTERACTION_ID"
}'
הפרמטר previous_interaction_id שומר רק את היסטוריית השיחות (קלט ופלט) באמצעות previous_interaction_id. הפרמטרים האחרים הם ברמת האינטראקציה, והם חלים רק על האינטראקציה הספציפית שאתם יוצרים כרגע:
toolssystem_instruction-
generation_config(כוללthinking_level,temperatureוכו')
כלומר, צריך לציין מחדש את הפרמטרים האלה בכל אינטראקציה חדשה אם רוצים שהם יחולו. ניהול המצב בצד השרת הוא אופציונלי. אפשר גם לפעול בלי הקשר קודם על ידי שליחת היסטוריית השיחות המלאה בכל בקשה.
אחסון נתונים ושמירתם
כברירת מחדל, ה-API שומר את כל אובייקטי האינטראקציה (store=true) כדי לפשט את השימוש בתכונות של ניהול מצב בצד השרת (עם previous_interaction_id), הפעלה ברקע (באמצעות background=true) ולמטרות ניטור.
- מהדורות בתשלום: המערכת שומרת את האינטראקציות למשך 55 ימים.
- תוכנית בחינם: המערכת שומרת את האינטראקציות למשך יום אחד.
אם אתם לא רוצים שזה יקרה, אתם יכולים להגדיר את store=false בבקשה. הפקד הזה נפרד מניהול המצב, ואפשר להשבית את האחסון בכל אינטראקציה. עם זאת, חשוב לזכור ש-store=false לא תואם להרצה ברקע ומונע שימוש ב-previous_interaction_id בסבבים הבאים.
בפרויקטים במינוי בתשלום, אפשר להגדיר את חלון השמירה ב-AI Studio כדי לסמן באופן אוטומטי יומנים למחיקה מאחסון הפרויקט אחרי 7, 14, 28 או 55 ימים. תקופת שמירה קצרה יותר עלולה להשפיע על היכולת לאחזר שיחות קודמות.
אתם יכולים למחוק אינטראקציות ששמורות בכל שלב באמצעות השיטה delete באופן פרוגרמטי, שדורשת את מזהה האינטראקציה. אתם יכולים גם לראות ולנהל את יומני האינטראקציות ששמורים, כולל מחיקה מהאחסון של הפרויקט, ב-AI Studio.
אחרי שתקופת השמירה תסתיים, הנתונים יימחקו באופן אוטומטי.
אובייקטים של אינטראקציות מעובדים בהתאם לתנאים.
צפייה באינטראקציות ב-AI Studio
ממשק ה-API שומר בקשות API של Interactions API שמופעלות באמצעות store=true עבור פרויקטים ברמה בתשלום. אפשר לראות אותם ישירות בדף היומנים ב-Google AI Studio. מידע נוסף זמין במדריך בנושא יומנים.
שיטות מומלצות
- שיעור המציאה במטמון (cache hit rate): שמירה במטמון משתמעת נתמכת גם במצב עם הקשר קודם וגם במצב בלי הקשר קודם (ראו המדריך למתחילים). השימוש ב-
previous_interaction_id(עם שמירת מצב) כדי להמשיך שיחות מאפשר למערכת להשתמש בקלות רבה יותר במטמון מרומז להיסטוריית השיחות, וכך לשפר את הביצועים ולהפחית את העלויות. - שילוב אינטראקציות: אתם יכולים לשלב בין אינטראקציות עם נציגים ועם מודלים בתוך שיחה. לדוגמה, אתם יכולים להשתמש בסוכן ייעודי, כמו Deep Research, כדי לאסוף נתונים ראשוניים, ואז להשתמש במודל Gemini רגיל למשימות המשך כמו סיכום או שינוי פורמט, ולקשר את השלבים האלה באמצעות
previous_interaction_id.
מודלים וסוכנים נתמכים
| שם דגם | סוג | מזהה דגם |
|---|---|---|
| Gemini 4 Argon | דגם | gemini-4-argon |
| Gemini 3.8 Flash | דגם | gemini-3.8-flash |
| Gemini 3.6 Flash | דגם | gemini-3.6-flash |
| Gemini 3.1 Pro Preview | דגם | gemini-3.1-pro-preview |
| Gemini 3.5 Flash-Lite | דגם | gemini-3.5-flash-lite |
| Gemini 3.1 Flash-Lite | דגם | gemini-3.1-flash-lite |
| Gemini 3 Flash Preview | דגם | gemini-3-flash-preview |
| Gemini 2.5 Pro | דגם | gemini-2.5-pro |
| Gemini 2.5 Flash | דגם | gemini-2.5-flash |
| Gemini 2.5 Flash-lite | דגם | gemini-2.5-flash-lite |
| Gemini 3 Pro Image | דגם | gemini-3-pro-image |
| תמונה של Gemini 3.1 Flash | דגם | gemini-3.1-flash-image |
| Gemini 3.1 Flash TTS (גרסת טרום-השקה) | דגם | gemini-3.1-flash-tts-preview |
| Gemma 4 31B IT | דגם | gemma-4-31b-it |
| Gemma 4 26B MoE IT | דגם | gemma-4-26b-a4b-it |
| Lyria 3.5 | דגם | lyria-3.5 |
| תצוגה מקדימה של קטע ב-Lyria 3 | דגם | lyria-3-clip-preview |
| Lyria 3 Pro בגרסת טרום-השקה (Preview) | דגם | lyria-3-pro-preview |
| גרסת טרום-השקה (Preview) של Deep Research | סוכן | deep-research-preview-04-2026 |
| גרסת טרום-השקה (Preview) של Deep Research | סוכן | deep-research-max-preview-04-2026 |
| תצוגה מקדימה של Antigravity | סוכן | antigravity-preview-09-2026 |
ערכות SDK
אתם יכולים להשתמש בגרסה העדכנית של Google GenAI SDK כדי לגשת אל Interactions API.
- ב-Python, זו החבילה
google-genaiמגרסה2.3.0ואילך. - ב-JavaScript, זו החבילה
@google/genaiמגרסה2.3.0ואילך. - ב-Go, זו חבילת
google.golang.org/genai. - ב-Java, זו החבילה
com.google.genai:google-genai.
בדף Libraries מוסבר איך מתקינים את ערכות ה-SDK.
מגבלות
- MCP מרוחק: Gemini 3 לא תומך ב-MCP מרוחק, אבל התמיכה הזו תגיע בקרוב.
- תאימות למודלים רב-שלביים: כשמשלבים מודלים שונים בשיחה (עם או בלי שמירת מצב), המודלים הבאים חייבים לתמוך במודליות הפלט של המודלים הקודמים כקלט. לדוגמה, אם יוצרים תמונה באמצעות
gemini-3.1-flash-image, אי אפשר להמשיך את השיחה עם מודל שלא מקבל קלט של תמונות (כמו מודל שמבוסס על טקסט בלבד או מודל ליצירת מוזיקה כמו Lyria).
התכונות הבאות נתמכות ב-API של generateContent אבל עדיין לא זמינות ב-Interactions API:
- Batch API
- קריאה אוטומטית לפונקציות (Python)
- שמירה במטמון באופן מפורש: שימו לב ששמירה במטמון באופן מרומז בצד השרת זמינה ב-Interactions API באמצעות
previous_interaction_id.
משוב
המשוב שלכם חשוב לנו מאוד לפיתוח של Interactions API. אתם יכולים לשתף את המחשבות שלכם, לדווח על באגים או לבקש תכונות בפורום קהילת המפתחים של Google AI.