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

# Gemini Interactions - Antigravity environment configuration

> Reuse an existing Antigravity sandbox by ID, or pass a full EnvironmentConfig to set sources and network rules for a new one.

Reuse an existing Antigravity sandbox by ID, or create a new one from repository sources and documented network rules.

<Warning>
  This example uses an obsolete Antigravity `EnvironmentConfig`: repository sources no longer accept `type="git"` and `url`, and `network.allow_internet_access` is not part of the current schema. Apply the migration below before running the custom-environment agent. See [Google's environment schema](https://ai.google.dev/gemini-api/docs/agent-environment).
</Warning>

```python antigravity_environment_config.py theme={null}
"""
Gemini Interactions - Antigravity environment configuration
============================================================

Two non-default ways to control the Antigravity sandbox:

  1. Reuse an existing environment by id (faster startup, persists state
     across runs).
  2. Pass a full EnvironmentConfig dict to declare sources, network rules,
     or other sandbox knobs.

Use a reused environment when the agent needs to build on prior work in the
same sandbox (e.g. an iterative project). Use a custom EnvironmentConfig
when you need a specific source repo, package set, or network policy.
"""

from agno.agent import Agent
from agno.models.google import GeminiInteractions

# ---------------------------------------------------------------------------
# Option 1: Reuse an existing environment by id
# ---------------------------------------------------------------------------
# Replace "env_xxxxxxxx" with the id of a sandbox the API has already
# provisioned for you (e.g. returned from a prior interaction).

agent_reuse = Agent(
    model=GeminiInteractions(
        agent="antigravity-preview-05-2026",
        environment="env_xxxxxxxx",
    ),
    markdown=True,
)

# ---------------------------------------------------------------------------
# Option 2: Full EnvironmentConfig (custom sources / network rules)
# ---------------------------------------------------------------------------
# The dict shape mirrors the API's EnvironmentConfig. Only the keys you set
# are sent; the API applies sensible defaults for the rest.

agent_custom = Agent(
    model=GeminiInteractions(
        agent="antigravity-preview-05-2026",
        environment={
            "type": "remote",
            "sources": [
                {"type": "git", "url": "https://github.com/agno-agi/agno"},
            ],
            "network": {"allow_internet_access": True},
        },
    ),
    markdown=True,
)

if __name__ == "__main__":
    agent_reuse.print_response(
        "Continue the project we started last time and ship the next "
        "iteration of the report."
    )

    agent_custom.print_response(
        "Skim the repo we cloned, summarize the module layout, and save "
        "the summary to STRUCTURE.md inside the sandbox."
    )
```

## Run the Example

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

  <Step title="Install dependencies">
    ```bash theme={null}
    uv pip install -U agno google-genai
    ```
  </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="Configure or skip environment reuse">
    Before running, replace `env_xxxxxxxx` in `agent_reuse` with the ID of an existing environment. To run only the custom path, comment out the `agent_reuse.print_response(...)` block instead.
  </Step>

  <Step title="Update the environment configuration">
    Replace the `environment` dictionary in `agent_custom` with `{'type': 'remote', 'sources': [{'type': 'repository', 'source': 'https://github.com/agno-agi/agno', 'target': '/workspace/agno'}]}`. Unrestricted outbound network access is the default.
  </Step>

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

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

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