From f9d18686fab559fb230e8843b363fbbde072a52b Mon Sep 17 00:00:00 2001 From: Alejandro Baez Date: Fri, 13 Feb 2026 20:02:45 -0600 Subject: [PATCH 1/5] fix: gemini use of vertexai environment variables The following patch does an update on the order options available for setting vertexai. Specifically, it allows to also check if the environment variable for identifying when to use vertex or not with GOOGLE_GENAI_USE_VERTEXAI variable. Providing the variable then sets vertexai backend to use the google default credentials. --- pkg/config/auto.go | 6 +++++- pkg/model/provider/gemini/client.go | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/config/auto.go b/pkg/config/auto.go index 73ff67062..ef395e419 100644 --- a/pkg/config/auto.go +++ b/pkg/config/auto.go @@ -22,7 +22,11 @@ type providerConfig struct { var cloudProviders = []providerConfig{ {"anthropic", []string{"ANTHROPIC_API_KEY"}, "ANTHROPIC_API_KEY"}, {"openai", []string{"OPENAI_API_KEY"}, "OPENAI_API_KEY"}, - {"google", []string{"GOOGLE_API_KEY"}, "GOOGLE_API_KEY"}, + {"google", []string{ + "GOOGLE_API_KEY", + "GEMINI_API_KEY", + "GOOGLE_GENAI_USE_VERTEXAI", + }, "GOOGLE_API_KEY (or GEMINI_API_KEY, GOOGLE_GENAI_USE_VERTEXAI)"}, {"mistral", []string{"MISTRAL_API_KEY"}, "MISTRAL_API_KEY"}, {"amazon-bedrock", []string{ "AWS_BEARER_TOKEN_BEDROCK", diff --git a/pkg/model/provider/gemini/client.go b/pkg/model/provider/gemini/client.go index 02e6b0d55..5ea6cffc0 100644 --- a/pkg/model/provider/gemini/client.go +++ b/pkg/model/provider/gemini/client.go @@ -76,12 +76,20 @@ func NewClient(ctx context.Context, cfg *latest.ModelConfig, env environment.Pro return nil, errors.New("location must be set") } + backend = genai.BackendVertexAI + httpClient = nil // Use default client + } else if _, exist := env.Get(ctx, "GOOGLE_GENAI_USE_VERTEXAI"); exist { backend = genai.BackendVertexAI httpClient = nil // Use default client } else { - apiKey, _ = env.Get(ctx, "GOOGLE_API_KEY") + if value, exist := env.Get(ctx, "GEMINI_API_KEY"); exist { + apiKey = value + } + if value, exist := env.Get(ctx, "GOOGLE_API_KEY"); exist { + apiKey = value + } if apiKey == "" { - return nil, errors.New("GOOGLE_API_KEY environment variable is required") + return nil, errors.New("GOOGLE_API_KEY or GEMINI_API_KEY environment variable is required") } backend = genai.BackendGeminiAPI From da1b0be6d866312670796b93281f53930f2adc92 Mon Sep 17 00:00:00 2001 From: Alejandro Baez Date: Fri, 13 Feb 2026 22:13:05 -0600 Subject: [PATCH 2/5] fix: set required if vertexai enabled --- pkg/config/gather.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/config/gather.go b/pkg/config/gather.go index 60d990db5..654ee5481 100644 --- a/pkg/config/gather.go +++ b/pkg/config/gather.go @@ -111,7 +111,12 @@ func addEnvVarsForModelConfig(model *latest.ModelConfig, customProviders map[str requiredEnv["ANTHROPIC_API_KEY"] = true case "google": if model.ProviderOpts["project"] == nil && model.ProviderOpts["location"] == nil { - requiredEnv["GOOGLE_API_KEY"] = true + if os.Getenv("GOOGLE_GENAI_USE_VERTEXAI") != "" { + requiredEnv["GOOGLE_CLOUD_PROJECT"] = true + requiredEnv["GOOGLE_CLOUD_LOCATION"] = true + } else { + requiredEnv["GOOGLE_API_KEY"] = true + } } case "mistral": requiredEnv["MISTRAL_API_KEY"] = true From 14339117585fd9cbb4c04554882dbd6c2e9798f9 Mon Sep 17 00:00:00 2001 From: Alejandro Baez Date: Fri, 13 Feb 2026 22:19:23 -0600 Subject: [PATCH 3/5] fix: check if gemini key exists --- pkg/config/gather.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/config/gather.go b/pkg/config/gather.go index 654ee5481..435a9348f 100644 --- a/pkg/config/gather.go +++ b/pkg/config/gather.go @@ -114,7 +114,7 @@ func addEnvVarsForModelConfig(model *latest.ModelConfig, customProviders map[str if os.Getenv("GOOGLE_GENAI_USE_VERTEXAI") != "" { requiredEnv["GOOGLE_CLOUD_PROJECT"] = true requiredEnv["GOOGLE_CLOUD_LOCATION"] = true - } else { + } else if _, exist := os.LookupEnv("GEMINI_API_KEY"); !exist { requiredEnv["GOOGLE_API_KEY"] = true } } From 0401a849a5ec922155c6858622f9209a3b0b4925 Mon Sep 17 00:00:00 2001 From: Alejandro Baez Date: Fri, 13 Feb 2026 22:23:46 -0600 Subject: [PATCH 4/5] fix: set google cloud vars --- pkg/model/provider/gemini/client.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/model/provider/gemini/client.go b/pkg/model/provider/gemini/client.go index 5ea6cffc0..fac8b9f3a 100644 --- a/pkg/model/provider/gemini/client.go +++ b/pkg/model/provider/gemini/client.go @@ -79,6 +79,8 @@ func NewClient(ctx context.Context, cfg *latest.ModelConfig, env environment.Pro backend = genai.BackendVertexAI httpClient = nil // Use default client } else if _, exist := env.Get(ctx, "GOOGLE_GENAI_USE_VERTEXAI"); exist { + project, _ = env.Get(ctx, "GOOGLE_CLOUD_PROJECT") + location, _ = env.Get(ctx, "GOOGLE_CLOUD_LOCATION") backend = genai.BackendVertexAI httpClient = nil // Use default client } else { From 57ceeb8e331f9a362a308a0016a97a2dbd63b7f5 Mon Sep 17 00:00:00 2001 From: Alejandro Baez Date: Fri, 13 Feb 2026 23:02:47 -0600 Subject: [PATCH 5/5] test: missing var for vertexai disable --- Taskfile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Taskfile.yml b/Taskfile.yml index 77c6906d9..13fa084a1 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -63,7 +63,7 @@ tasks: test: aliases: [t] desc: Run tests - cmd: CAGENT_MODELS_GATEWAY= OPENAI_API_KEY= ANTHROPIC_API_KEY= GOOGLE_API_KEY= MISTRAL_API_KEY= GITHUB_TOKEN= go test {{.CLI_ARGS}} ./... + cmd: CAGENT_MODELS_GATEWAY= OPENAI_API_KEY= ANTHROPIC_API_KEY= GOOGLE_API_KEY= GOOGLE_GENAI_USE_VERTEXAI= MISTRAL_API_KEY= GITHUB_TOKEN= go test {{.CLI_ARGS}} ./... build-local: desc: Build binaries for local host platform