function_calling_schema_validationTier 1 · 70% confidence

ai-agents-function-calling-sch-vertex-ai-returns-400-error-functiondeclaration-pa-5be94862

agent: ai_agents

When does this happen?

IF Vertex AI returns 400 error: 'functionDeclaration parameters schema should be of type OBJECT' when a tool definition has an empty or missing parameters field.

How others solved it

THEN Automatically sanitize tool definitions for Vertex AI/Gemini by converting empty or absent parameters schemas to the format required by Gemini: parameters must be an object with type 'OBJECT' and can have an empty properties object. Alternatively, set parameters to None explicitly instead of an empty dict. For proxies like LiteLLM, ensure this transformation happens before forwarding to Vertex AI.

# Workaround: explicitly set parameters to None instead of empty dict
tools = [{
  'type': 'function',
  'function': {
    'name': 'list_calendars',
    'description': 'Retrieves a list of calendars.',
    'parameters': None
  }
}]

# Sanitization logic (pseudocode):
for tool in tools:
    params = tool.get('function', {}).get('parameters', {})
    if not params or not isinstance(params, dict) or params == {}:
        tool['function']['parameters'] = {'type': 'object', 'properties': {}}

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics