Antigravity Multi-turn (Interactions)

Continue an Antigravity interaction across turns. Each response carries an interaction_id; the next turn references it via previous_interaction_id so only the new user message is sent on the wire. The server keeps the sandbox state (files written, packages installed, browser history) attached to the interaction chain. Subsequent turns build on what the agent already did.

Persisting the interaction ID requires a database. The assistant message stores it under provider_data, and the next turn reads it back.

Note

When continuing a chain, the existing sandbox is already attached server-side. Re-sending environment="remote" is safe; the API treats it as a hint that's reconciled against the running env. To be explicit, swap to the returned env_<id> after the first turn.

Code

1from kern.agent import Agent
2from kern.db.sqlite import SqliteDb
3from kern.models.google import GeminiInteractions
4
5agent = Agent(
6 model=GeminiInteractions(
7 agent="antigravity-preview-05-2026",
8 environment="remote",
9 ),
10 add_history_to_context=True,
11 db=SqliteDb(db_file="tmp/data.db"),
12 markdown=True,
13)
14
15if __name__ == "__main__":
16 agent.print_response(
17 "Plot the growth of global solar energy generation over the last "
18 "decade and save the plot as solar.png in the sandbox."
19 )
20
21 agent.print_response(
22 "Take solar.png and produce a 3-slide HTML deck that embeds it, "
23 "with a title slide and a short takeaway per slide."
24 )
25
26 agent.print_response(
27 "Review the deck for clarity and tighten the takeaways. Save the "
28 "revised version as deck_v2.html."
29 )

Usage

Set up your virtual environment

1uv venv --python 3.12
2source .venv/bin/activate
1uv venv --python 3.12
2.venv\Scripts\activate

Set your API key

1export GOOGLE_API_KEY=xxx

Install dependencies

1uv pip install -U "google-genai>=2.0" kern-ai

Run Agent

1python cookbook/90_models/google/gemini_interactions/antigravity_multi_turn.py