Claude
Skills
Sign in
Back

agent-platform-migrate-from-ai-studio

Included with Lifetime
$97 forever

Guides agents and users through migrating from Gemini API in Google AI Studio to Gemini Enterprise Agent Platform (formerly Vertex AI). Use this skill when moving applications to Google Cloud, to leverage Cloud credits, or to unify inferencing with other Cloud infrastructure (IAM, billing, telemetry).

Backend & APIs

What this skill does


# Migrating from Gemini API in AI Studio to Agent Platform

Use this skill when you need to transition an application from the
developer-centric Google AI Studio ecosystem
(`generativelanguage.googleapis.com`) to the enterprise-grade Google Cloud Agent
Platform (`aiplatform.googleapis.com`).

--------------------------------------------------------------------------------

## When to Invoke This Skill

*   You want to migrate an application from Google AI Studio to Agent Platform
    (formerly Vertex AI).
*   You have **Google Cloud credits** (e.g., the $300 Welcome Free Trial) that
    you want to apply toward Gemini API inferencing costs.
*   You need to unify your inferencing pipelines, IAM permissions, telemetry,
    and billing with existing Google Cloud infrastructure (Compute Engine, Cloud
    SQL, BigQuery).
*   You are deploying open-source orchestration engines (like OpenClaw or ADK
    agents) on Google Cloud VMs, and want the entire system to run under a
    unified Google Cloud billing structure.

--------------------------------------------------------------------------------

## Gemini API Comparison

Feature / Control      | Google AI Studio (Gemini Developer API)                               | Agent Platform (Enterprise Gemini API)
:--------------------- | :-------------------------------------------------------------------- | :-------------------------------------
**API Endpoint**       | `generativelanguage.googleapis.com`                                   | `aiplatform.googleapis.com`
**Target Audience**    | Developers, startups, students, researchers building production apps. | Enterprise production, MLOps engineers
**GCP Credit Support** | No (GCP credits/Free Trial **cannot** be applied)                     | Yes (Fully covered by Welcome or custom credits)
**Data Privacy**       | Data may be reviewed to improve Google products                       | Prompts/responses are **never** used for training
**Security & IAM**     | API key, OAuth                                                        | Google Cloud IAM (Service Accounts, OAuth 2.0, VPC-SC)
**Compliance & SLAs**  | None (Best-effort availability)                                       | 24/7 Enterprise Support, SLAs, HIPAA, SOC2
**Throughput Options** | Shared / Rate-limited                                                 | Pay-as-you-go OR Provisioned Throughput
**MLOps Ecosystem**    | Basic prompt management                                               | Model Registry, Model Monitoring, Pipeline Evaluation
**Inferencing Scope**  | Global endpoints only                                                 | Both Global and strict Regional endpoints

See
[Google Cloud Documentation](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/migrate/migrate-google-ai.md.txt)
to learn more about the differences between the two offerings.

--------------------------------------------------------------------------------

## Migration Guide

### Billing and Credits

Google Cloud Free Trial credits
**[do not apply to AI Studio](https://docs.cloud.google.com/free/docs/free-cloud-features.md.txt)**.
To use your credits for Gemini models, you must route calls through the Agent
Platform.

1.  Create a Google Cloud billing account. You must provide a valid payment
    method during setup to verify identity.
2.  If you are a new customer, ensure your $300 Welcome credit is active in the
    Billing Console.
3.  **Avoid Billing Surprises:** To prevent automatic fallback to your standard
    form of payment when credits are exhausted, you should establish a budget
    alert:
    *   Go to **Billing** -> **Budgets & Alerts** -> **Create Budget**.
    *   Set the threshold to map to your credit limit or maximum comfortable
        spend.

### Enable the Agent Platform API

You must explicitly enable the Agent Platform API on your target Google Cloud
Project. Run the following command via your local shell:

```bash
gcloud services enable aiplatform.googleapis.com --project="YOUR_PROJECT_ID"
```

### Authentication & Authorization (IAM)

#### User Auth

For local debugging or script execution, authenticate using
[Application Default Credentials](https://docs.cloud.google.com/docs/authentication/application-default-credentials.md.txt)
(ADC).

**Option 1 - Automated Script**:

```bash
bash <(curl -sSL https://storage.googleapis.com/cloud-samples-data/adc/setup_adc.sh)
```

**Option 2 - Manual Setup**:

```bash
gcloud auth login
gcloud auth application-default login
```

Grant your user identity the required IAM role to perform inferencing calls:

```bash
gcloud projects add-iam-policy-binding "YOUR_PROJECT_ID" \
    --member="user:[email protected]" \
    --role="roles/aiplatform.user"
```

#### Service Auth

When running your application on Google Cloud infrastructure such as a Compute
Engine VM, authenticate using the machine's attached Service Account. For
example, the
[Compute Engine Default Service Account](https://docs.cloud.google.com/compute/docs/access/service-accounts#default_service_account.md.txt).

1.  Grant the virtual machine's underlying Service Account the user role:

```bash
gcloud projects add-iam-policy-binding "YOUR_PROJECT_ID" \
    --member="serviceAccount:[email protected]" \
    --role="roles/aiplatform.user"
```

2.  **[Compute Engine Access Scopes](https://docs.cloud.google.com/compute/docs/access/service-accounts.md.txt):**
    Legacy access scopes can override IAM bindings. When provisioning or
    modifying your GCE instance, you must verify that the VM access scope is
    configured to either **Allow full access to all Cloud APIs**
    (`https://www.googleapis.com/auth/cloud-platform`) or explicitly includes
    the standard cloud-platform scope.

--------------------------------------------------------------------------------

## Use the Gemini API in Agent Platform

### SDKs (Client Libraries)

You can continue to use the unified
[Google GenAI SDK](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/sdks/overview.md.txt)
(`google-genai`). This SDK works with both AI Studio and Agent Platform. You
only need to switch the routing flags via your runtime environment variables to
target the Agent Platform backend.

Set your target environment details:

```bash
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="global"  # Or your chosen regional endpoint
export GOOGLE_GENAI_USE_ENTERPRISE=TRUE
```

Now, your standard python code shifts from using AI Studio to Agent Platform
without altering the core initialization blocks:

```python
from google import genai

# The client automatically picks up the GOOGLE_GENAI_USE_ENTERPRISE=TRUE environment flag
client = genai.Client()

response = client.models.generate_content(
    model='gemini-3-flash-preview',
    contents='Hello world!',
)
print(response.text)
```

### Agent Development Kit (ADK)

To call Gemini models in Agent Platform from an Agent Development Kit agent,
follow these steps.

1.  Authenticate to Google Cloud.

If running an ADK agent in Google Cloud (e.g. Agent Platform Runtime), use the
agent's assigned service account. Alternatively, if running ADK locally, run:

```bash
gcloud auth application-default login
```

2.  Set env variables. Ensure these are set no matter if your ADK agent is
    running in Google Cloud or locally:

```bash
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="global"
export GOOGLE_GENAI_USE_ENTERPRISE=TRUE
```

3.  Initialize the ADK agent. You can use the same model string you used with AI
    Studio (e.g. `gemini-3-flash-preview`).

```python
from google.adk.agents.llm_agent import Agent

def get_current_time(city: str) -> dict:
    """Returns the current time in a specified city."""
    return {"status": "success", "city": city, "time": "10:30 AM"}

root_agent = Agent(
    model='gemini-3-flash-preview',
    name='root_agent',
    description="Tells the cu

Related in Backend & APIs