Skip to content

Requests to vertex ai fail if z.record(z.string()) used in tool schema #5628

@tjenkinson

Description

@tjenkinson

Description

See the code example below. When using vertex ai if z.record(z.string()) is used an error occurs because in the generated open api schema something becomes undefined

Code example

import { createVertex } from '@ai-sdk/google-vertex'
import { CoreMessage, Tool, generateText, tool, LanguageModelV1 } from 'ai'

const vertex = createVertex({
  project: ...,
  location: ...,
})

const gemini2Flash: LanguageModelV1 = vertex.languageModel(
  'gemini-2.0-flash-001',
)

await generateText({
  model: gemini2Flash,
  prompt: 'Hi',
  tools: {
    test: tool({
      description: 'Test',
      parameters: z.object({
        // the issue
        something: z.record(z.string())
      }),
    }
  }
})

AI provider

@ai-sdk/google-vertex 2.2.14

Additional context

I opened a PR to fix this here: #5626

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions