google/adk-python v2.5.0: New features and numerous bug fixes
sdkaigcpdeprecationengineermediapython-agentic
feature patch
The google/adk-python library has released version 2.5.0, introducing significant new features such as enhanced Cloud Run integration, advanced agent capabilities, and improved workflow node validation. This release also addresses numerous bugs, including security improvements like mTLS support for API registries and GCP utilities. The update is relevant for developers using the ADK for building AI-powered applications, offering greater flexibility and robustness. Notably, it enables broader compatibility with a2a-sdk 1.x and enhances handling of various LLM interactions.
- →add Cloud Run sandbox option in code executors
- →Add search agents and search MCP severs to agent registry
- →add skill to verify markdown code snippets
- →Add strict input schema validation for LlmAgent workflow nodes
- →add to_mcp_server to serve an ADK agent over MCP
Features (19) ›
- add Cloud Run sandbox option in code executors
- Add search agents and search MCP severs to agent registry
- add skill to verify markdown code snippets
- Add strict input schema validation for LlmAgent workflow nodes
- add to_mcp_server to serve an ADK agent over MCP
- agents add single_turn mode field to ManagedAgent
- agents bridge node_input to user_content for ManagedAgent nodes
- agents support remote MCP servers for ManagedAgent with runtime header callbacks
- agents wrap single_turn non-LlmAgent sub-agents as inline tools
- bigquery log tool descriptions and parameter schemas in LLM_REQUEST
- enable a2a-sdk 1.x by widening the dependency constraint
- live allow Voice activity detection (VAD) events to be returned
- live Run non-blocking tools in a background task
- plugins add on_agent_error_callback and on_run_error_callback
- Support HITL resumption for standalone nodes and NodeTool
- Support LoadArtifacts parsing for binary text documents (e.g., DOCX)
- Validate that no old orchestrators are used inside Workflow graphs
- Validate that no old orchestrators are used inside Workflow graphs
- workflow Support state-based resumption for task-mode agent workflow nodes
Enhancements (5) ›
- lazy-load ManagedAgent to keep the interactions API off startup
- litellm track brace depth incrementally for streaming tool-call args
- Optimize workflow rehydration performance with indexing
- skip disabled request-log formatting
- skip non-recording LLM trace work , closes #4233
Fixes (60) ›
- Add mTLS support for for API registry
- Add mtls support for gcp_utils
- Add support for list_artifact_versions and get_artifact_version to ForwardingArtifactService
- avoid crash on first turn with empty user content
- Avoid shell execution in ReadFileTool ranged reads
- block posix, nt, _posixsubprocess, and _socket modules in agent config validation
- cli Block special internal agents in ApiServer mode
- confine docs-agent file tools to the managed repos directory
- decode shell skill output as UTF-8
- environment add integer validation in ReadFileTool
- exclude LiteLlm llm_client from JSON serialization , closes #6164
- exclude rewound invocations from event compaction
- explicitly preserve language and tools during event compaction , closes #6273
- Fix InputTokensDetails validation in OpenAI responses test and formatting in a2a_agent_executor
- Fix sub-branch event routing for nested sub-agents and tools in InvocationContext
- GitHub CI for the verify-snippets skill
- grow eligible Gemini cache prefixes
- guard decode_model against non-dict session values , closes #6348
- handle sqlite float timestamps in PreciseTimestamp , closes #6352
- honor server-reported Gemini cache expiry
- litellm preserve reasoning replay and optionally share agent thoughts
- litellm preserve signature-only blocks for Anthropic streaming thinking aggregation
- make agent and run error callbacks best-effort so they never mask the original error
- make discussion answering model configurable
- match HF-style gemma-4 model names for tool_responses role , closes #6334
- models Allow context caches with empty content prefixes
- models forward request headers on google_llm interactions path
- preserve non-ASCII characters in agent input , closes #6279 #6282
- preserve non-image file MIME type in LiteLlm content conversion , closes #4174
- Prevent continuation forgery in tool confirmation
- prevent model bypass in resumable mode by rejecting user-authored function calls
- prevent synchronous code executors from blocking the event loop , closes #6353
- recover a compacted sibling's latest response, not its placeholder
- recover compacted function calls during prompt assembly , closes #5602
- remove OpenTelemetry event logger setup since the Events API/SDK has been deprecated and is soon being removed entirely
- repair two broken contributing samples
- require starlette>=1.3.1 to clear known CVEs , closes #6038
- Resolve scheduler leakage and make scheduler instantiation explicit
- Resolve scheduler leakage and make scheduler instantiation explicit
- Retain user input across transfer_to_agent when include_contents='none' , closes #3535
- Return 404 instead of 500 when app_name does not match any agent , closes #5374
- return MCP tools in stable sorted order for cache stability
- reuse current-step tool resolution
- reuse fetched session and honor get_session_config on chat path
- rollback of path segment validation in InMemoryArtifactService and GcsArtifactService
- samples Fix monitor_video_stream in live bidi streaming sample
- scope Gemini cache identity
- sessions prevent PydanticSerializationError when session state contains non-serializable objects
- shield toolset cleanup from cancellation
- snapshot events under lock in InMemoryMemoryService.search_memory , closes #6167
- Support passing credentials to GCPSkillRegistry
- support unencrypted workload certificates for mTLS in GoogleApiToolset
- telemetry add 0 bucket boundary to per-invocation call count histograms
- test correct polling timeout unit test in IAM Connector credentials provider
- Update GCP Skill Registry to use agentregistry/skill endpoint
- Update VertexAiRagMemoryService methods to use latest RAG module
- Validate path segments in GcsArtifactService and InMemoryArtifactService to prevent cross-user artifact access
- Validate path segments in GcsArtifactService and InMemoryArtifactService to prevent cross-user artifact access , closes #6115 #6116
- workflow Process all completed tasks in batch before exiting on error
- workflow treat RetryConfig(max_attempts=0) as no retries
Maintenance (13) ›
- add to_mcp_server unit guide
- Fix token exceeded error on ADK release analyzer's final summary agent
- guides Add ManagedAgent unit guide
- guides note single_turn works for non-LlmAgent agents
- samples add ManagedAgent remote MCP (Maps Grounding Lite) sample
- samples Add ManagedAgent single-turn sub-agent sample
- samples Link ManagedAgent sample READMEs to the guide
- samples Remove NOT WORKING YET comments from workflow samples
- simplify sample graph guidance in adk-sample-creator skill
- skills Add coding conventions and state lifecycle rules to style and architecture guides
- tools encourage using mode='single_turn' in AgentTool and document manual artifacts configuration
- tools recommend mode='single_turn' in AgentTool docstring
- Update models owner for ADK PR triaging agent
Read the original announcement →
https://github.com/google/adk-python/releases/tag/v2.5.0
Related releases
- OpenAI Agents Python v0.19.1: Bug fixes and documentation updates OpenAI Agents SDK (Python) Releases ·
- pydantic-ai v2.20.0: New Claude Opus, OpenAI Responses API, and Usage Fixes Pydantic AI Releases ·
- LangGraph 1.2.10: Stream events typing, trace policy changes LangGraph Releases ·
- crewAI 1.15.8: WaitTool, FileWriter fix, and docs CrewAI Releases ·
- Pydantic-AI v2.19.0 adds headers and retry_after to ModelHTTPError Pydantic AI Releases ·
- OpenAI Agents Python: Programmatic Tool Calling and SDK Enhancements OpenAI Agents SDK (Python) Releases ·