> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini Interactions - Antigravity multi-turn

> Continue an Antigravity interaction across turns.

Continue an Antigravity interaction across turns. Each response carries an interaction\_id; the next turn references it via `previous_interaction_id` so the API only receives the new user message. 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.

```python antigravity_multi_turn.py theme={null}
"""
Gemini Interactions - Antigravity multi-turn
=============================================

Continue an Antigravity interaction across turns. Each response carries an
interaction_id; the next turn references it via `previous_interaction_id`
so the API only receives the new user message. 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 db (e.g. SqliteDb): the assistant
message stores it under provider_data, and the next turn reads it back.

Note on `environment`: 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);
if you want to be explicit, swap to the returned `env_<id>` after the
first turn to make the reuse intent unambiguous.
"""

from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.google import GeminiInteractions

agent = Agent(
    model=GeminiInteractions(
        agent="antigravity-preview-05-2026",
        environment="remote",
    ),
    add_history_to_context=True,
    db=SqliteDb(db_file="tmp/data.db"),
    markdown=True,
)

if __name__ == "__main__":
    # Turn 1 - kick off the project. The agent provisions a sandbox, writes
    # files, and produces an initial artifact.
    agent.print_response(
        "Plot the growth of global solar energy generation over the last "
        "decade and save the plot as solar.png in the sandbox."
    )

    # Turn 2 - iterate on the artifact. The sandbox and solar.png are still
    # there from turn 1.
    agent.print_response(
        "Take solar.png and produce a 3-slide HTML deck that embeds it, "
        "with a title slide and a short takeaway per slide."
    )

    # Turn 3 - critique and revise. The agent can see the deck it just made.
    agent.print_response(
        "Review the deck for clarity and tighten the takeaways. Save the "
        "revised version as deck_v2.html."
    )
```

## Run the Example

<Steps>
  <Snippet file="create-venv-step.mdx" />

  <Step title="Install dependencies">
    ```bash theme={null}
    uv pip install -U agno google-genai sqlalchemy
    ```
  </Step>

  <Step title="Export your Google API key">
    <CodeGroup>
      ```bash Mac/Linux theme={null}
      export GOOGLE_API_KEY="your_google_api_key_here"
      ```

      ```bash Windows theme={null}
      $Env:GOOGLE_API_KEY="your_google_api_key_here"
      ```
    </CodeGroup>
  </Step>

  <Step title="Run the example">
    Save the code above as `antigravity_multi_turn.py`, then run:

    ```bash theme={null}
    python antigravity_multi_turn.py
    ```
  </Step>
</Steps>

Full source: [cookbook/90\_models/google/gemini\_interactions/antigravity\_multi\_turn.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/antigravity_multi_turn.py)
