Release history
adk-python releases
An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
All releases
35 shown
Cloud Run, Search Agents, VAD, Performance, Bug Fixes
Guidelines, GCS, mTLS, Gemma4, E2BEnv, Antigravity
- `DEFAULT_LIVE_MODEL` remains unchanged; explicitly set `model="gemini-2.5-flash"` to keep previous LlmAgent behavior.
- Update any direct callers of renamed helpers in `interactions_utils.py` (e.g., use `convert_contents_to_steps`).
- **agents:** Default model for `LlmAgent` changed from `gemini-2.5-flash` to `gemini-3-flash-preview`; agents without explicit `model=` now use the preview default. Set `model="gemini-2.5-flash"` to retain prior behavior.
- **interactions:** Turn‑based helpers in `interactions_utils.py` renamed (e.g., `convert_contents_to_turns` → `convert_contents_to_steps`) and terminology switched from "turns" to "steps".
- CVE-2026-48710
- Add `--trigger_sources` and ADK service options to `cli_deploy_agent_engine`
- AutoTracingPlugin for OpenTelemetry auto‑instrumentation
- RubricBasedMultiTurnTrajectoryEvaluator
Full changelog
2.2.0 (2026-06-04)
⚠ BREAKING CHANGES
- agents:
LlmAgentdefault model changed fromgemini-2.5-flashtogemini-3-flash-preview(a preview model), ahead of the 2026-10-16gemini-2.5-flashshutdown. Agents without an explicitmodel=now run on the new preview default; setmodel="gemini-2.5-flash"to retain prior behavior.DEFAULT_LIVE_MODELis unchanged. (ad8b6c7) - interactions: GenAI SDK v2.0.0 support renames the turn-based helpers in
interactions_utils.py(e.g.convert_contents_to_turns→convert_contents_to_steps) and moves from "turns" to "steps" terminology. Update any direct callers. (da1d8f1)
Features
- Add
--trigger_sourcesand ADK service options tocli_deploy_agent_engine(ffa057c) - add AutoTracingPlugin for OpenTelemetry auto-instrumentation (bc3a4fa)
- add RubricBasedMultiTurnTrajectoryEvaluator (cae2337)
- agents: restore 1.x agent config wiring for backward compatibility (44cd116)
- api_server: Abort runs on client drops to avoid leaks (6a53357)
- BigQuery Agent Analytics reliability fixes (a5fa3da)
- distinguish input-required vs auth-required in A2A conversion (9d139ea)
- emit OTel gen_ai.client.* metrics natively (0bb329b)
- forward custom_metadata from run requests into the run config (460cb8c)
- include thoughts and tool calls in compaction summaries (bdb5582)
- interactions: update ADK to support Google GenAI SDK v2.0.0 (da1d8f1)
- models: Support turn_complete_reason in Live responses to capture safety info (9126acb)
- preserve A2A message metadata field in ADK event (d4d955d)
- raise explicit error for unsupported LiteLlm file attachments (8847f23), closes #5546
- sessions: add get_user_state(app_name, user_id) to BaseSessionService (d029bce)
- Support additional scopes and custom discovery doc in Google API Tools (dc6e293)
- tools: expose httpx_client_factory on RestApiTool and OpenAPIToolset (7eb9b3d)
- tools: Standardize request_input tool for proactive LLM clarification (afb0a64)
Bug Fixes
- a2a: Support to_a2a(Workflow) and reject non-agent root nodes (0478b02)
- accept Azure assistant file ids (b73679e), closes #5664
- add artifacts in each agent's .adk folder (bae5b1a)
- add future annotations import and prefix task models logger (2874874)
- add missing crop helper to data file helper lib (b5181cf), closes #4011
- add PEP 604 union syntax in function tool parameters (551445e)
- add telemetry metric assertions to the test's own agent (b7766ce)
- agents: restore abc.ABC base for BaseAgent and LlmAgent (020386a)
- allow internal builder assistant app name (f6e26cc)
- append trailing newline to runtime-config.json in ADK Web Server (4baccf6)
- auth: omit scope from OAuth2 token requests (6ce4b87)
- block path traversal in Agent Builder file tools (1fa7cda)
- dependencies: clarify missing Vertex AI extra (fde6a2b)
- deps: bump starlette and fastapi to address CVE-2026-48710 (81add39)
- eval: Support include_intermediate_responses_in_final in final_response_match_v2 (8519602), closes #5695
- Event.message honors subclass field (5bebfd4)
- exclude temp: state keys from Firestore session writes (a5db346)
- Fix path traversal in GCS skill extraction (Zip Slip) (2f15c6c)
- flows: preserve transparent config on live session reconnect (5ad1942), closes #5675
- Format the files to fix pre-commit failures (af8bfe0)
- guard peer agent mode access in agent transfer (bb16958), closes #5863
- live: Resolve 1007 error and support Gemini 3.1 Flash Live protocol (e5af12c)
- mcp: Prevent initialization hangs and task group leaks (334ef81), closes #5886
- migration: restrict unpickling of v0 actions blobs (9db48ce)
- models: Prevent grounding metadata loss in Gemini 3.1 (e896c62)
- parse noncanonical litellm tool call arguments (31cc5a1)
- populate user_content in resumed invocations (660bbd4)
- preserve media blocks in ollama content flattening (47ceeba), closes #4975
- runners: fall back to root agent when a resumed call author is not in the tree (a86efa6)
- runners: Preserve state_delta in NodeRunner path (c56bec8)
- sessions: guard None event.actions before reading state_delta (03ef3f6)
- Support generalized history config injection for Gemini 3.1 Live on Vertex AI (61a3933)
- terminate infinite retry loop in LoadSkillResourceTool on RESOURCE_NOT_FOUND (bc45ee6)
- tolerate context-likes without user_content or session in record_agent_invocation (0775da5)
- tools: add skill script dir to sys.path (9296198)
- tools: don't close parent's plugins from AgentTool's sub-Runner (2a68c4e)
- tools: Prevent broken skill tool references when prefix is set and support tool_filter (4366cca)
- tools: Shell escape path and range in ReadFileTool command (e16629b)
- validate session_id and enforce ownership in delete_session (b2916c7)
- workflow: Prevent incorrect chat agent wiring in graphs (d7aa7b5), closes #5868
- workflow: Resolve raw Content output crash on rehydration (4f992b0)
Performance Improvements
- flows: Resolve agent tool unions in parallel (ae95a97)
Code Refactoring
- agents: default model to gemini-3-flash-preview (ad8b6c7)
- tests: Consolidate event tests into test_event.py (77aeadf)
- tools: Split environment tools into single-class _tool files (1cc298e)
- update tool and agent retrieval functions to support asynchronous execution (e623b3b)
Documentation
- skills: Use default model in sample agent templates (2d465aa)
Maintenance (repo tooling, not library changes)
- skills: Add adk-issue skill to analyze and triage GitHub issues (be03166)
- skills: Add adk-review skill for rigorous change quality control (cc6f78c)
- skills: Automate PR triage and CLA verification (ce9011c)
- skills: Enforce PR assignment gates and stream metadata via stdout (4006fe4)
- skills: Split adk-issue skill to separate issue analysis from implementation (51b18eb)
- agents: Improve git hygiene in adk-pr-triage skill (62bcdd3)
- agents: Add issue closing support to PR triage skill (2748c1b)
- skills: Add rule to specify GitHub issues in commit messages (8f2c1e3)
- Add BufferableSessionService
- Allow injecting credentials into ApigeeLlm
- Make ADK environment tools truncation limit configurable
Full changelog
1.33.0 (2026-05-08)
Features
- add BufferableSessionService (0bc767e)
- apigee: allow injecting credentials into ApigeeLlm (ce578ff)
- Make ADK environment tools truncation limit configurable (83ae405)
- models: add get_function_calls and get_function_responses to LlmResponse (22fae7e)
Bug Fixes
- catch genai.ClientError when sandbox is missing (69fa777), closes #5480
- double append bug (f8b4c59)
- Filter out video events with inline data from being stored in session (88421f8)
- fix fork detection, correct offload limits, and add response logging in BigQuery plugin (9d1bb4b)
- hot reload agents for adk web (740557c)
- Only append skills to system instruction if ListSkillsTool isn't available (01f1fc9)
- prevent state_delta overwrite on function_response-only events (fc27203, 211e2ce), closes #3178
- Raise a clear actionable error when CustomAuthScheme lacks a registered AuthProvider (83f9817)
- should use app_name instead of req.app_name (8286066)
- simulation: Add error message when LlmBackedUserSimulator returns empty response (fb92aad)
- Update expressmode api call to include default api key param (e833995)
- use asyncio.sleep to avoid blocking event loop (3a1eadc)
- Use project and location instead of API key when deploying to agent engine (398f28f)
Code Refactoring
- Block RCE vulnerability via nested YAML configurations in ADK
- Express mode onboarding support for `adk deploy` CLI
- Native OpenTelemetry agentic metrics and tracing for event compaction
Full changelog
1.32.0 (2026-04-30)
Features
- Add an option to prevent the SaveFilesAsArtifactsPlugin from attaching reference file parts to the message (987c809)
- add credentials parameter to BigQueryAgentAnalyticsPlugin (34713fb)
- Add express mode onboarding support to adk deploy cli (2b04996)
- add native OpenTelemetry agentic metrics (6942aac)
- Add OpenTelemetry tracing for event compaction (c65dd55)
- Add sample agent demonstrating 2LO, 3LO, and API Key auth via GcpAuthProvider (909a8c2)
- Add support for Anthropic's thinking blocks (16952bd)
- Add support for excluding predefined functions in ComputerUseToolset (d760037)
- Add support for refusal messages in ApigeeLlm (d6594a1)
- Added indication of user message in history event list (662354a)
- Allow user to define credential_key for McpToolset (282db87), closes #5103
- analytics: add support for logging LLM cache metadata to BigQuery (02deeb9)
- eval: add evaluate_full_response option to rubric-based evaluation (#5316) (7623ff1)
- live: Add save_live_blob query parameter to /run_live endpoint (36ab8f1)
- mcp: gracefully handle tool execution errors and transport crashes (7744cfe)
Bug Fixes
- accumulate list values when merging parallel tool call state_delta (b0b8b31), closes #5190
- Add support for overriding the API version in GoogleLLM (1cdd1e7)
- auth: isolate resolved credentials in context to prevent race conditions and data leakage (5578772)
- avoid double-execution of sync FunctionTools returning None (78a8851), closes #5284
- block RCE vulnerability via nested YAML configurations in ADK (74f235b)
- bump Vertex SDK version (6380f6a)
- cancel siblings in parallel function calling on failure (49985c9)
- Capture and include LLM usage metadata in summarized events (5ce33b9), closes #4014
- catch ValueError in safe-JSON serializers for circular refs (70a7add), closes #5412
- deps: bump litellm cap to >=1.83.7 to admit CVE patches (6d2ada8)
- Disable bound token for mcp_tool (4c0c6db)
- fix dataset location handling in BigQueryAgentAnalyticsPlugin (c263426)
- Fix exception handling and argument order in ReflectRetryToolPlugin (1deab6d)
- Fix GcpAuthProvider to return capitalized Bearer scheme (ad937fe)
- fix lifecycle issues with credentials in BigQuery Agent Analytics Plugin (a69f861)
- Fix malformated skill.md (9a0d2f7)
- Fix misplaced pytest decorator on helper dataclass in 2LO integration tests (2343973)
- Fix RecursionError in ADK framework by adding circular reference detection to schema resolution (7de5bc5)
- fix rewind to preserve initial session state (af1b00a), closes #4933
- Fix SSRF and local-file access in load_web_page (0447e93)
- handle None state values in skill_toolset after session rewind (a977aa3)
- litellm: emit input_audio for audio inline_data parts (4073238), closes #5406
- live: mark all agents' Event as from other agents (48b7a64)
- live: treat input transcription as user message (ae1f2e6)
- optimization: handle None metric scores in LocalEvalSampler (#5415) (684a6e7)
- otel: change
gen_ai.tool_definitionstogen_ai.tool.definitions(029b87d) - preserve cache fingerprint stability on creation failure (4d5438c)
- preserve empty-string text parts in A2A converter (2d61cb6)
- preserve function call IDs for Anthropic models (f0c787f)
- Prevent LoopAgent from resetting sub-agent state on pause (8846be5)
- Quote user_id literals in VertexAiSessionService list filters (bdece00)
- read_file/write_file path type mismatch in BaseEnvironment and LocalEnvironment (782796f)
- relax EventActions.state_delta value type to Any (dbec8e9)
- remove exclude_unset=True to correctly serialize pydantic types (f95ac48)
- samples: Upgrade google-adk to 1.28.1 to fix vulnerability (b848390)
- Sanitize user_id derived from PubSub subscription and Eventarc source (0c4f157), closes #5324
- Scope Vertex RAG memory display names (784350d)
- Use correct camelCase functionCallId (c87ee1e)
- web oauth flow and trace view (87cd310)
- yield tool_call_parts immediately in live mode to unblock Gemini 3.1 tool calls (f57b05d)
Performance Improvements
- lazy-load optional providers and auth chain to cut cold start ~25% (66bfedc)
Code Refactoring
- move exception handling from metric emission into instrumentation handlers (62d7ee0)
- tests: Refactor tests to explicitly handle JSON_SCHEMA_FOR_FUNC_DECL feature flag (b580891)
- Use artifact_service.load_artifact during rewind (c3d50db), closes #4932
Documentation
- gemini: show subclass pattern for custom Client config (34c7505), closes #3628
- update
output_schemadocstring to reflect support fortoolsandoutput_schematogether (e1e652d) - Update README with instructions for installing ADK extensions (f2a1179)
- use sphinx-click to generate docs for google.adk.cli (f455974)
- RCE vulnerability via nested YAML configurations
Full changelog
- mcp minimum version bumped from 1.23.0 to 1.24.0
- Firestore integration
- Vertex AI Agent Engine Sandbox integration for computer use
- memories.ingest_events support in VertexAiMemoryBankService
Full changelog
1.31.0 (2026-04-16)
Features
- Add "google-adk" user agent to Parameter Manager and Secret Manager clients (b8e8f6b)
- Add support for memories.ingest_events in VertexAiMemoryBankService (d69477f)
- Add Vertex AI Agent Engine Sandbox integration for computer use (7686848)
- Firestore support (1a9df8f)
- live: Add live_session_id to LlmResponse (bf84e2c)
Bug Fixes
- Bump minimum mcp version from 1.23.0 to 1.24.0 (494c360)
- cli: correct console URL path after adk deploy agent_engine (64ed1a6), closes #5336
- execute on_event_callback before append_event to persist plugin modifications (454188d), closes #3990
- make
_EvalMetricResultWithInvocation.expected_invocationOptionalfor conversation_scenario support (#5215) (a4c9387) - Pass in auth headers with header provider instead of connection params (e12b0af)
- populate required fields in FunctionDeclaration json_schema fallback (9b9faa4)
- Resolve BigQuery plugin issues with A2A transfers, spans, and metadata (9ca8c38)
- upgrade google-genai lower bound (8bc5728)
Code Refactoring
- live: Use
send_client_contentto send conversation history (67dc2eb) - live: Use
send_tool_responsefor function responses (70c5fc8)
Documentation
- update MCP Toolbox branding, binary version, and asset references (47fa7b7)
- Credential leakage vulnerability in Agent Registry
- Path traversal vulnerability in user_id and session_id handling
- Support for Gemma 4 models in ADK
- Live avatar support and live session resumption updates
- Auth Provider support to agent registry
- EnvironmentToolset and LocalEnvironment
- Easy GCP support
- Resource limits in BashTool
- Builder endpoint (/builder) no longer accepts arguments
- Live model support for gemini-3.1-flash-live-preview
- Tool call buffering for live mode
Full changelog
- A2A lifespan parameter support
- Slack integration for ADK
- Spanner Admin Toolset with fine-grained controls
Eval extras updated with constrained LiteLLM version for Vertex SDK compatibility.
- Exclude compromised LiteLLM versions from dependencies
Full changelog
## 1.27.3 (2026-03-23) ### Bug Fixes * add protection for arbitrary module imports
Fixes LlmAgent creation regression caused by missing version field.
- A2A request interceptors in RemoteA2aAgent
- PDF support and streaming for Anthropic
- GCS filesystem support for Skills
- Agent Registry integration
- Memory consolidation via Vertex AI
- OAuth2 id_token support
## 1.25.1 (2026-02-18) ### Bug Fixes * Fix pickling lock errors in McpSessionManager
- Post-invocation token-threshold compaction
- Prompt optimizer demo
- Conformance test reporting
Minor fixes and improvements.
Full changelog
- Credential manager must accept tool_context instead of callback_context
- Consolidated Event View with click-to-expand
- Arrow-key navigation for accessibility
- A2UI v0.8 standard catalog integration
- BigQuery plugin tracing now uses OpenTelemetry instead of custom ContextVar
- Automatic session creation if not exists
- AgentEngineSandboxCodeExecutor no longer experimental
- Custom metrics support in adk eval
### Bug Fixes * Add back `adk migrate session` CLI . * Escape database reserved keyword .
- JSON-based database schema for DatabaseSessionService
- Custom instructions for simulators
- Post-hoc per-turn evaluator