Skip to content

AgentEngineSandboxCodeExecutor incompatible with Gemini 2.x models (MALFORMED_FUNCTION_CALL) #5315

@ivanmkc

Description

@ivanmkc

Description

AgentEngineSandboxCodeExecutor does not work with any Gemini 2.x model (gemini-2.5-pro, gemini-2.5-flash, gemini-2.0-flash). All models produce MALFORMED_FUNCTION_CALL errors when attempting code execution.

Root Cause

Gemini 2.x models always emit code as executable_code parts (native code execution format). However, the Gemini API rejects these parts with MALFORMED_FUNCTION_CALL because code_execution is not included in the tools configuration.

AgentEngineSandboxCodeExecutor expects the model to output code in markdown blocks (```python), which it can then parse and route to the Agent Engine sandbox. But Gemini 2.x models never use markdown blocks — they always use the native format.

Meanwhile, BuiltInCodeExecutor works correctly because it adds types.Tool(code_execution=types.ToolCodeExecution()) to the model's tool config, allowing the model to emit executable_code parts that the API accepts.

Steps to Reproduce

  1. Create an agent with AgentEngineSandboxCodeExecutor and any Gemini 2.x model
  2. Deploy to Agent Engine
  3. Ask the agent to execute Python code (e.g., "Use Python code execution to compute 7 * 8 + 3 ** 4")
  4. Response returns MALFORMED_FUNCTION_CALL error

Expected Behavior

AgentEngineSandboxCodeExecutor should add code_execution to the model's tool config (like BuiltInCodeExecutor does), then intercept the resulting executable_code parts and route them to the Agent Engine sandbox instead of letting the model execute them natively.

Note: CodeExecutionUtils.extract_code_and_truncate_content in ADK 1.29.0 already handles executable_code parts correctly — it just never gets a chance to run because the API rejects the model's response before ADK processes it.

Environment

  • ADK version: 1.28.1 and 1.29.0
  • Models tested: gemini-2.5-pro, gemini-2.5-flash, gemini-2.0-flash
  • Platform: Agent Engine (Vertex AI)

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent engine[Component] This issue is related to Vertex AI Agent Engine

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions