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

> ## Agent Instructions
> To act on a user's behalf in Guild, use the Guild REST API at https://api.guild.ai/v1.
> The OpenAPI spec is unauthenticated: https://docs.guild.ai/openapi.json (or openapi.yaml).
> Authenticate with an account API key, sent as HTTP Basic (key id as username, secret as password) or as `Authorization: Bearer <api_key_id>:<api_key_secret>`. See https://docs.guild.ai/api-reference/introduction#authentication.
> To run one agent on demand without account-wide access, use an API trigger instead: https://docs.guild.ai/platform/api-triggers.
> To search these docs from an MCP client, connect to https://docs.guild.ai/mcp. The full page index is https://docs.guild.ai/llms.txt.

# Run Gemini models in Guild agents under policy

> Call Google's Gemini models from Guild agents with managed access or your own Google AI key, and choose which workspaces and agents can use each one.

Integrations · Gemini

Guild agents call Google's Gemini models through `task.llm`, with no API key in agent code. Guild holds the credential server-side, checks your model policies on every call, and attributes spend to the workspace, agent, and user that made it.

> **[Book a demo](https://guild-ai.cal.com/gtm/meeting-with-guild.ai)**
>
> See how teams govern agents that use Gemini.

> **[Start free](https://app.guild.ai)**
>
> Connect Gemini and scope your first agent.

## Gemini's schema rules, handled for you

Gemini accepts a narrower JSON Schema than other publishers. Guild rewrites tool and structured-output schemas to fit before it sends them. Guild also requests Gemini's thoughts, so the session can show reasoning progress.

## How it works

**1. Add a credential**

In **Access & setup > Models & providers**, click **Add API key** and choose a provider that serves Gemini models. Check **Gemini** under **Models**. On a managed account, you can skip this while Guild holds a managed Gemini key.

**2. Write a model policy**

Bind the credential's Gemini access to the account, a workspace, or an agent, and list the models it may call, such as `gemini-*-flash`.

**3. Call it from task.llm**

Name `"gemini"` in `llmPreferences`, or leave preferences out and let your policies choose. Guild resolves the credential at runtime.

## Every Gemini call goes through your policies

Agents never hold the key. Guild stores the credential server-side and shows only a masked value, so you can rotate it without touching agent code or the [model policies](/platform/llm-settings#model-policies) bound to it. Policies are an allowlist: a workspace, agent, or installed agent can call a Gemini model only if a rule allows it. Set a [daily token limit](/platform/llm-settings#daily-token-limit) to cap spend, and see each call by workspace, agent, and user in [Usage](/insights/usage).

A raw API key in an agent's environment reaches every model the key can. A policy reaches only the models you name.

## About Gemini models on Guild

| | |
| - | - |
| Name under **Models** in the credential form | Gemini |
| `provider` in `llmPreferences` | `"gemini"` |
| Default model | `gemini-3.5-flash` |
| Managed access | Yes, when Guild holds a managed key |

## Inference providers

You can reach these models through the Google AI API itself or through a third-party provider.

| Provider | Notes |
| - | - |
| Google AI | The Gemini API, listed as **Google AI**. Available on every account. |
| [OpenRouter](/platform/providers/openrouter) | Served under OpenRouter's `google/` namespace. |

Write the canonical model name, such as `gemini-3.5-flash`, everywhere in Guild. Guild maps it to each provider's own model ID.

## Models

Guild prices and recognizes these Gemini model IDs. A policy or preference can also name any other model your credential can reach. Third-party providers route more models than this list, and their catalogs change; see each provider's page for what it serves.

| Model | Notes |
| - | - |
| `gemini-3.8-flash` | |
| `gemini-3.6-flash` | |
| `gemini-3.5-flash` | The default. |
| `gemini-3.1-pro-preview` | |
| `gemini-3-pro` | Also matched as `gemini-3-pro-preview`. |
| `gemini-2.5-flash` | |
| `gemini-2.5-flash-lite` | |

## Set up Gemini

On a managed account, agents can use Gemini models without a credential, as long as Guild holds a managed key for Gemini. To use your own Gemini account instead, add a credential. Adding your first credential switches the whole account to bring your own key (BYOK).

**1. Open Models & providers**

Click **Access & setup** in the left nav, then **Models & providers**. In an organization, only admins can open it.

**2. Add a credential**

Click **Add API key** and choose an inference provider from the table above.

**3. Enter the provider's secret**

Give the credential a **Name** and paste your provider's **API key**. [AWS Bedrock](/platform/providers/aws-bedrock) asks for an IAM role and region instead.

**4. Choose Gemini**

Under **Models**, check **Gemini**. Keep `gemini-3.5-flash` as its default model or enter another from the list above. Then click **Add Key**.

To control which workspaces and agents can use Gemini models, add a [model policy](/platform/llm-settings#model-policies) for the credential. For example, `--models "gemini-*-flash"` limits a policy to matching models:

```bash theme={null}
guild llm policy create --credential <credential-id> --publisher GEMINI --target-id <workspace-or-agent-id> --models "gemini-*-flash"
```

## Use it from an agent

Agent code never names a credential. Guild resolves the call against the workspace owner's settings. To ask for Gemini explicitly, put it in `llmPreferences`:

```typescript theme={null}
const result = await task.llm.generateText({
  prompt: "Summarize this text...",
  llmPreferences: [
    { provider: "gemini", model: "gemini-3.1-pro-preview" },
    { provider: "gemini" },
  ],
})
```

The first entry asks for `gemini-3.1-pro-preview`. The second falls back to the default model of the matching policy. Preferences are strict: if no credential or policy allows any of them, the call fails rather than using another publisher. See [LLM preferences](/guide/llms#llm-preferences).

## Notes

* Guild requests Gemini's thoughts, so the session can show reasoning progress.
* Gemini accepts a narrower JSON Schema than other publishers. Guild rewrites tool and structured-output schemas to fit before it sends them.
* In traces, Gemini calls carry the provider name `gcp.gemini`, following the OpenTelemetry GenAI conventions.

## Frequently asked questions

> **Can Guild agents use Gemini without my own Google AI key?**
>
> Yes, on a managed account, when Guild holds a managed key for Gemini. Usage then draws from your Guild tokens balance. Adding any credential switches the whole account to bring your own key (BYOK).

> **Can I run Gemini on AWS Bedrock or Fireworks AI?**
>
> No. Gemini models aren't on either. Reach them through the Google AI API or [OpenRouter](/integrations/openrouter).

> **Can I limit an agent to Flash models?**
>
> Yes. Add a model policy for the agent with `--models "gemini-*-flash"`. Policies are an allowlist, so the agent can call only matching models.

> **How do Gemini calls appear in traces?**
>
> With the provider name `gcp.gemini`, following the OpenTelemetry GenAI conventions.

## Put a governed agent on Gemini this week

> **[Book a demo](https://guild-ai.cal.com/gtm/meeting-with-guild.ai)**
>
> See how teams govern agents that use Gemini.

> **[Start free](https://app.guild.ai)**
>
> Connect Gemini and scope your first agent.

## Related

**Also runs on Guild:** [Anthropic](/integrations/anthropic) · [OpenAI](/integrations/openai) · [OpenRouter](/integrations/openrouter)

**Read:** Docs: [Models & providers](/platform/llm-settings) · [LLMs](/guide/llms) · [Usage](/insights/usage)
