From 127ecf6ddd90ba187b4d3bd733703566cd5162af Mon Sep 17 00:00:00 2001 From: Daniel <57051444+daniel-lxs@users.noreply.github.com> Date: Fri, 28 Nov 2025 13:48:55 -0500 Subject: [PATCH] feat: enable native tool calls for Vertex Gemini models (#9678) Add supportsNativeTools: true to all Gemini-based models in the Vertex provider. The VertexHandler extends GeminiHandler which already has full native tool handling logic implemented. Models updated: - gemini-3-pro-preview - gemini-2.5-flash-preview-05-20:thinking - gemini-2.5-flash-preview-05-20 - gemini-2.5-flash - gemini-2.5-flash-preview-04-17:thinking - gemini-2.5-flash-preview-04-17 - gemini-2.5-pro-preview-03-25 - gemini-2.5-pro-preview-05-06 - gemini-2.5-pro-preview-06-05 - gemini-2.5-pro - gemini-2.5-pro-exp-03-25 - gemini-2.0-pro-exp-02-05 - gemini-2.0-flash-001 - gemini-2.0-flash-lite-001 - gemini-2.0-flash-thinking-exp-01-21 - gemini-1.5-flash-002 - gemini-1.5-pro-002 - gemini-2.5-flash-lite-preview-06-17 --- packages/types/src/providers/vertex.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/types/src/providers/vertex.ts b/packages/types/src/providers/vertex.ts index 6805f17d89..53b67418cf 100644 --- a/packages/types/src/providers/vertex.ts +++ b/packages/types/src/providers/vertex.ts @@ -10,6 +10,7 @@ export const vertexModels = { maxTokens: 65_536, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, supportsReasoningEffort: ["low", "high"], reasoningEffort: "low", @@ -34,6 +35,7 @@ export const vertexModels = { maxTokens: 65_535, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 0.15, outputPrice: 3.5, @@ -45,6 +47,7 @@ export const vertexModels = { maxTokens: 65_535, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 0.15, outputPrice: 0.6, @@ -53,6 +56,7 @@ export const vertexModels = { maxTokens: 64_000, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 0.3, outputPrice: 2.5, @@ -65,6 +69,7 @@ export const vertexModels = { maxTokens: 65_535, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: false, inputPrice: 0.15, outputPrice: 3.5, @@ -76,6 +81,7 @@ export const vertexModels = { maxTokens: 65_535, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: false, inputPrice: 0.15, outputPrice: 0.6, @@ -84,6 +90,7 @@ export const vertexModels = { maxTokens: 65_535, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 2.5, outputPrice: 15, @@ -92,6 +99,7 @@ export const vertexModels = { maxTokens: 65_535, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 2.5, outputPrice: 15, @@ -100,6 +108,7 @@ export const vertexModels = { maxTokens: 65_535, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 2.5, outputPrice: 15, @@ -110,6 +119,7 @@ export const vertexModels = { maxTokens: 64_000, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 2.5, outputPrice: 15, @@ -135,6 +145,7 @@ export const vertexModels = { maxTokens: 65_535, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: false, inputPrice: 0, outputPrice: 0, @@ -143,6 +154,7 @@ export const vertexModels = { maxTokens: 8192, contextWindow: 2_097_152, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: false, inputPrice: 0, outputPrice: 0, @@ -151,6 +163,7 @@ export const vertexModels = { maxTokens: 8192, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 0.15, outputPrice: 0.6, @@ -159,6 +172,7 @@ export const vertexModels = { maxTokens: 8192, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: false, inputPrice: 0.075, outputPrice: 0.3, @@ -167,6 +181,7 @@ export const vertexModels = { maxTokens: 8192, contextWindow: 32_768, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: false, inputPrice: 0, outputPrice: 0, @@ -175,6 +190,7 @@ export const vertexModels = { maxTokens: 8192, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 0.075, outputPrice: 0.3, @@ -183,6 +199,7 @@ export const vertexModels = { maxTokens: 8192, contextWindow: 2_097_152, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: false, inputPrice: 1.25, outputPrice: 5, @@ -328,6 +345,7 @@ export const vertexModels = { maxTokens: 64_000, contextWindow: 1_048_576, supportsImages: true, + supportsNativeTools: true, supportsPromptCache: true, inputPrice: 0.1, outputPrice: 0.4,