LLM Adapter
The LLM adapter configures which language model your agent uses. It lives at adapters/llm.yaml and is referenced by the manifest’s spec.runtime.llm.adapter field.
Configuration
# adapters/llm.yaml
provider: gemini
model: gemini-2.0-flash
auth:
env_var: GOOGLE_API_KEY
parameters:
temperature: 0.7
max_tokens: 4096Fields
| Field | Type | Required | Description |
|---|---|---|---|
provider | string | Yes | LLM provider identifier |
model | string | Yes | Model name/ID |
auth.env_var | string | Yes | Environment variable containing the API key |
parameters.temperature | float | No | Sampling temperature (0.0–2.0). Default: 0.7 |
parameters.max_tokens | integer | No | Maximum tokens per response. Default: 4096 |
Supported providers
Gemini (AI Studio)
provider: gemini
model: gemini-2.0-flash
auth:
env_var: GOOGLE_API_KEYGet your API key at aistudio.google.com/apikey .
Available models: gemini-2.0-flash, gemini-2.5-pro, gemini-2.5-flash
Anthropic
provider: anthropic
model: claude-sonnet-4-20250514
auth:
env_var: ANTHROPIC_API_KEYAvailable models: claude-sonnet-4-20250514, claude-haiku-4-20250414, claude-opus-4-20250514
OpenAI
provider: openai
model: gpt-4o
auth:
env_var: OPENAI_API_KEYAvailable models: gpt-4o, gpt-4o-mini, gpt-4-turbo
Vertex AI (Google Cloud)
provider: vertex-ai
model: gemini-2.0-flash
auth:
env_var: GOOGLE_APPLICATION_CREDENTIALS
# Required for Vertex AI
project_env_var: GOOGLE_CLOUD_PROJECT
location_env_var: GOOGLE_CLOUD_LOCATIONVertex AI requires a GCP service account JSON file and project configuration. Set these in your .env:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
GOOGLE_CLOUD_PROJECT=your-project-id
GOOGLE_CLOUD_LOCATION=us-central1Available models: gemini-2.0-flash, gemini-2.5-pro
Embedding adapter
The embedding adapter follows the same pattern at adapters/embed.yaml:
# adapters/embed.yaml
provider: openai
model: text-embedding-3-small
auth:
env_var: OPENAI_API_KEYVertex AI embeddings
provider: vertex-ai
model: text-embedding-005
auth:
env_var: GOOGLE_APPLICATION_CREDENTIALSRuntime reference
The manifest references adapters via relative paths:
# manifest.yaml (excerpt)
spec:
runtime:
llm:
adapter: ./adapters/llm.yaml
embedding:
adapter: ./adapters/embed.yamlzil validate checks that these files exist and are valid YAML.
How the SDK uses adapters
When you call zil.create_agent(), the SDK reads adapters/llm.yaml and maps it to an ADK-compatible model string:
| Provider | Model | ADK model string |
|---|---|---|
gemini | gemini-2.0-flash | gemini-2.0-flash |
anthropic | claude-sonnet-4-20250514 | anthropic/claude-sonnet-4-20250514 |
openai | gpt-4o | openai/gpt-4o |
vertex-ai | gemini-2.0-flash | gemini-2.0-flash |
Gemini and Vertex AI models are native to ADK and used directly. Anthropic and OpenAI models use the LiteLLM prefix convention.
You can override the model at runtime:
import zil
# Use a different model without changing llm.yaml
agent = zil.create_agent(model="openai/gpt-4o-mini")See SDK Reference for all options.