Releases: google/adk-python
Release 1.18.0
1.18.0 (2025-11-05)
Features
-
[ADK Visual Agent Builder]
- Core Features
- Visual workflow designer for agent creation
- Support for multiple agent types (LLM, Sequential, Parallel, Loop, Workflow)
- Agent tool support with nested agent tools
- Built-in and custom tool integration
- Callback management for all ADK callback types (before/after agent, model, tool)
- Assistant to help you build your agents with natural language
- Assistant proposes and writes agent configuration yaml files for you
- Save to test with chat interfaces as normal
- Build and debug at the same time in adk web!
- Core Features
-
[Core]
- Add support for extracting cache-related token counts from LiteLLM usage (4f85e86)
- Expose the Python code run by the code interpreter in the logs (a2c6a8a)
- Add run_debug() helper method for quick agent experimentation (0487eea)
- Allow injecting a custom Runner into
agent_to_a2a(156d235) - Support MCP prompts via the McpInstructionProvider class (88032cf)
-
[Models]
-
[Integrations]
- Add example and fix for loading and upgrading old ADK session databases (338c3c8)
- Add support for specifying logging level for adk eval cli command (b1ff85f)
- Propagate LiteLLM finish_reason to LlmResponse for use in callbacks (71aa564)
- Allow LLM request to override the model used in the generate content async method in LiteLLM (ce8f674)
- Add api key argument to Vertex Session and Memory services for Express Mode support (9014a84)
- Added support for enums as arguments for function tools (240ef5b)
- Implement artifact_version related methods in GcsArtifactService (e194ebb)
-
[Services]
-
[Tools]
-
[Evals]
-
[Observability]
- Add BigQueryLoggingPlugin for event logging to BigQuery (b7dbfed)
-
[Live]
- Add token usage to live events for bidi streaming (6e5c0eb)
Bug Fixes
- Reduce logging spam for MCP tools without authentication (11571c3)
- Fix typo in several files (d2888a3)
- Disable SetModelResponseTool workaround for Vertex AI Gemini 2+ models (6a94af2)
- Bug when callback_context_invocation_context is missing in GlobalInstructionPlugin (f81ebdb)
- Support models slash prefix in model name extraction (8dff850)
- Do not consider events with state delta and no content as final response (1ee93c8)
- Parameter filtering for CrewAI functions with **kwargs (74a3500)
- Do not treat FinishReason.STOP as error case for LLM responses containing candidates with empty contents (2f72ceb)
- Fixes null check for reflect_retry plugin sample (86f0155)
- Creates evalset directory on evalset create (6c3882f)
- Add ADK_DISABLE_LOAD_DOTENV environment variable that disables automatic loading of .env when running ADK cli, if set to true or 1 (15afbcd)
- Allow tenacity 9.0.0 (ee8acc5)
- Output file uploading to artifact service should handle both base64 encoded and raw bytes (496f8cd)
- Correct message part ordering in A2A history (5eca72f)
- Change instruction insertion to respect tool call/response pairs (1e6a9da)
- DynamicPickleType to support MySQL dialect (fc15c9a)
- Enable usage metadata in LiteLLM streaming (f9569bb)
- Fix issue with MCP tools throwing an error (1a4261a)
- Remove redundant
formatfield from LiteLLM content objects (489c39d) - Update the contribution analysis tool to use original write mode (54db3d4)
- Fix agent evaluations detailed output rows wrapping issue(4284c61)
- Update dependency version constraints to be based on PyPI versions(0b1784e)
Improvements
- Add Community Repo section to README (432d30a)
- Undo adding MCP tools output schema to FunctionDeclaration (92a7d19)
- Refactor ADK README for clarity and consistency (b0017ae)
- Add support for reversed proxy in adk web (a0df75b)
- Avoid rendering empty columns as part of detailed results rendering of eval results (5cb35db)
- Clear the behavior of disallow_transfer_to_parent (48ddd07)
- Disable the scheduled execution for issue triage workflow (a02f321)
- Include delimiter when matching events from parent nodes in content processor (b8a2b6c)
- Improve Tau-bench ADK colab stability ([04dbc42](https://gi...
v1.17.0
1.17.0 (2025-10-22)
Features
-
[Core]
- Add a service registry to provide a generic way to register custom service implementations to be used in FastAPI server. See short instruction here. (391628f)
- Add the ability to rewind a session to before a previous invocation (9dce06f)
- Support resuming a parallel agent with multiple branches paused on tool confirmation requests (9939e0b)
- Support content union as static instruction (cc24d61)
-
[Evals]
- ADK cli allows developers to create an eval set and add an eval case (ae139bb)
-
[Integrations]
- Allow custom request and event converters in A2aAgentExecutor (a17f3b2)
-
[Observability]
- Env variable for disabling llm_request and llm_response in spans (e50f05a)
-
[Services]
- Allow passing extra kwargs to create_session of VertexAiSessionService (6a5eac0)
- Implement new methods in in-memory artifact service to support custom metadata, artifact versions, etc. (5a543c0)
- Add create_time and mime_type to ArtifactVersion (2c7a342)
- Support returning all sessions when user id is none (141318f)
-
[Tools]
- Support additional headers for Google API toolset (ed37e34)
- Introduces a new AgentEngineSandboxCodeExecutor class that supports executing agent-generated code using the Vertex AI Code Execution Sandbox API (ee39a89)
- Support dynamic per-request headers in MCPToolset (6dcbb5a)
- Add
bypass_multi_tools_limitoption to GoogleSearchTool and VertexAiSearchTool (9a6b850, 6da7274) - Extend
ReflectAndRetryToolPluginto support hallucinating function calls (f51380f) - Add require_confirmation param for MCP tool/toolset (78e74b5)
-
[UI]
- Granular per agent speech configuration (409df13)
Bug Fixes
- Returns dict as result from McpTool to comply with BaseTool expectations (4df9263)
- Fixes the identity prompt to be one line (7d5c6b9)
- Fix the broken langchain importing caused their 1.0.0 release (c850da3)
- Fix BuiltInCodeExecutor to support visualizations (ce3418a)
- Relax runner app-name enforcement and improve agent origin inference (dc4975d)
- Improve error message when adk web is run in wrong directory (4a842c5)
- Handle App objects in eval and graph endpoints (0b73a69)
- Exclude
additionalPropertiesfrom Gemini schemas (307896a) - Overall eval status should be NOT_EVALUATED if no invocations were evaluated (9fbed0b)
- Create context cache only when prefix matches with previous request (9e0b1fb)
- Handle
Appinstances returned byagent_loader.load_agent(847df16) - Add support for file URIs in LiteLLM content conversion (85ed500)
- Only exclude scores that are None (998264a)
- Better handling the A2A streaming tasks (bddc70b)
- Correctly populate context_id in remote_a2a_agent library (2158b3c)
- Remove unnecessary Aclosing (2f4f561)
- Fix pickle data was truncated error in database session using MySql (36c96ec)
Improvements
- Improve hint message in agent loader (fe1fc75)
- Fixes MCPToolset --> McpToolset in various places (d4dc645)
- Add span for context caching handling and new cache creation (a2d9f13)
- Checks gemini version for
2 and abovefor gemini-builtin tools (0df6759) - Refactor and fix state management in the session service (8b3ed05)
- Update agent builder instructions and remove run command details (89344da)
- Clarify how to use adk built-in tool in instruction (d22b8bf)
- Delegate the agent state reset logic to LoopAgent (bb1ea74)
- Adjust the instruction about default model (214986e)
- Migrate invocation_context to callback_context (e2072af)
- Correct the callback signatures (fa84bcb)
- Set default for
bypass_multi_tools_limitto False for GoogleSearchTool and VertexAiSearchTool (6da7274) - Add more clear instruction to the doc updater agent about one PR for each recommended change (b21d0a5)
- Add a guideline to avoid content deletion (16b030b)
- Add an sample agent for the
ReflectAndRetryToolPlugin(9b8a4aa) - Improve error message when adk web is run in wrong directory (4a842c5)
- Add an sample agent for the
ReflectAndRetryToolPlugin(9b8a4aa) - Add span for context caching handling and new cache creation (a2d9f13)
- Disable the scheduled execution for issue triage workflow (bae2102)
- Correct the callback signatures (fa84bcb)
Documentation
- Format README.md for samples (0bdba30)
- Bump models in llms and llms-full to Gemini 2.5 (ce46386)
- Update gemini_llm_connection.py - typo spelling correction (e6e2767)
- Announce the first ADK Community Call in the README ([731bb90](https://github.com/google/adk-python/...
Release 1.16.0
1.16.0 (2025-10-08)
Features
- [Core]
- [Models]
- [Tools]
- Add
dry_runfunctionality to BigQueryexecute_sqltool (960eda3) - Add BigQuery analyze_contribution tool (4bb089d)
- Spanner ADK toolset supports customizable template SQL and parameterized SQL (da62700)
- Support Oauth2 client credentials grant type (5c6cdcd)
- Add
ReflectRetryToolPluginto reflect from errors and retry with different arguments when tool errors (e55b894) - Support using
VertexAiSearchToolbuilt-in tool with other tools in the same agent (4485379) - Support using google search built-in tool with other tools in the same agent (d3148da)
- Add
- [Evals]
- [UI]
- Adds
adk weboptions for custom logo (822efe0)
- Adds
- [Observability]
- otel: Switch CloudTraceSpanExporter to telemetry.googleapis.com (bd76b46)
Bug Fixes
- Adapt to new computer use tool name in genai sdk 1.41.0 (c6dd444)
- Add AuthConfig json serialization in vertex ai session service (636def3)
- Added more agent instructions for doc content changes (7459962)
- Convert argument to pydantic model when tool declares it accepts pydantic model as argument (571c802)
- Do not re-create
Appobject when loader returns anApp(d5c46e4) - Fix compaction logic (3f2b457)
- Fix the instruction in workflow_triage example agent (8f3ca03)
- Fixes a bug that causes intermittent
pydanticvalidation errors when uploading files (e680063) - Handle A2A Task Status Update Event when streaming in remote_a2a_agent (a5cf80b)
- Make compactor optional in Events Compaction Config and add a default (3f4bd67)
- Rename SlidingWindowCompactor to LlmEventSummarizer and refine its docstring (f1abdb1)
- Rollback compaction handling from _get_contents (84f2f41)
- Set
max_output_tokensfor the agent builder (2e2d61b) - Set default response modality to AUDIO in run_session (68402bd)
- Update remote_a2a_agent to better handle streaming events and avoid duplicate responses (8e5f361)
- Update the load_artifacts tool so that the model can reliably call it for follow up questions about the same artifact (238472d)
- Fix VertexAiSessionService base_url override to preserve initialized http_options (8110e41, c51ea0b)
- Handle
Appinstances returned byagent_loader.load_agent(847df16)
Improvements
- Migrate VertexAiSessionService to use Agent Engine SDK (90d4c19)
- Migrate VertexAiMemoryBankService to use Agent Engine SDK (d1efc84, 97b950b, 83fd045)
- Add support for resolving $ref and $defs in OpenAPI schemas (a239716)
Documentation
- Update BigQuery samples README (3021266)
Release 1.15.1
Release 1.15.0
1.15.0 (2025-09-24)
Features
- [Core]
- [Context Caching]
- Support context caching (c66245a)
-
Support explicit context caching auto creation and lifecycle management.
Usage:
App(root_agent=..., plugins=..., context_cache_config=...)
-
- Support non-text content in static instruction (61213ce)
- Support static instructions (9be9cc2)
-
Support static instruction that won't change, put at the beginning of
the instruction.
Static instruction support inline_data and file_data as contents.
Dynamic instruction moved to the end of LlmRequest, increasing prefix
caching matching size.Usage:
LlmAgent(model=...,static_instruction =types.Content(parts=...), ... )
-
- Support context caching (c66245a)
- [Telemetry]
- [Services]
- Add endpoint to generate memory from session (2595824)
- [Tools]
- [Evals]
- [Samples]
- Make the bigquery sample agent run with ADC out-of-the-box (10cf377)
Bug Fixes
- Close runners after running eval (86ee6e3)
- Filter out thought parts when saving agent output to state (632bf8b)
- Ignore empty function chunk in LiteLlm streaming response (8a92fd1)
- Introduces a
raw_mcp_toolmethod inMcpToolto provide direct access to the underlying MCP tool (6158075) - Make a copy of the
columnsinstead of modifying it in place (aef1ee9) - Prevent escaping of Latin characters in LLM response (c9ea80a)
- Retain the consumers and transport registry when recreating the ClientFactory in remote_a2a_agent.py (6bd33e1)
- Remove unsupported 'type': 'unknown' in test_common.py for fastapi 0.117.1 (3745221)
Documentation
- Correct the documentation of
after_agent_callback(b9735b2)
Release 1.14.1
Release 1.14.0
1.14.0 (2025-09-10)
Features
- [A2A]
- [Tools]
- Allow setting agent/application name and compute project for BigQuery tools 11a2ffe
- Add BigQuery forecast tool 0935a40
- Add GkeCodeExecutor for sandboxed code execution on GKE 72ff9c6
- Add a tool confirmation flow that can guard tool execution with explicit confirmation and custom input a17bcbb
- Add audience and prompt as configurable for OAuth flows edda922
- Allow user specify embedding model for file retrieval 67f23df
- [Core]
- [Misc] Create an initial ADK release analyzer agent to find the doc updates needed between releases e3422c6
Bug Fixes
- Add
custom_metadatato DatabaseSessionService fb009d8- NOTE: This requires DB migration, run
ALTER TABLE events ADD COLUMN custom_metadata JSON;to migrate existing database tables.
- NOTE: This requires DB migration, run
- Add a NOTE to agent transfer instructions listing available agents 43eec82
- Fix pagination of list_sessions in VertexAiSessionService e63fe0c
- Fix AttributeError and indentation in parameter processing of LiteLlm 1e23652
- Allow AgentTool to inherit/use plugins from its invocation context when running 1979dcf
- Enforce foreign key constraint for SQLite DB 0c87907
- Add back installing requirements.txt to Dockerfile template for cloud run 8e43f0d
- Only process the auth responses in the last event with content (if applicable i.e. it's authored by user) 3b922a2
- Extract a utility for aggregating partial streaming responses and emitting LlmResponses for them as needed 7975e8e
- Support saving text artifacts in GCS artifact service cecf7e8
- Fixes
thoughthandling in contents.py and refactors its unit tests a30851e - Fixes the
thoughtfield handling in _planning.py fe8b37b - Pass state_delta to runner in /run endpoint a3410fa
- Fix discussion answering github action workflow to escape the quote in the discussion content JSON 43c9681
- Send full MIME types for image/video/pdf in get_content e45c3be
- Fix flaky unit tests: tests/unittests/flows/llm_flows/test_functions_simple.py b92b288
- Make UT of a2a consistent about how tests should be skipped when python verison < 3.10 98b0426
Improvements
- Update contribution guide 8174a29
- Skip PR triage for already triaged or Google-contributor PRs 78eea1a
- Avoid mutable default arguments in
local_eval_serviceandrunners64f11a6 - Avoid mutable default arguments in
local_eval_serviceandrunners5b465fd - Reorder dependencies in
pyproject.tomlca5f7f1 - Follow pydantic convention to make field_validator a public method 1448406
- Update comment to clarify
after_runcallbacks 7720616 - Tune instructions to not ask root directory if it's already provided in the context 25df6c2
- Load discussion data from event content to avoid additional GraphQL API call a503a0c
- Refactor discussion answering agent to merge answer_discussions.py into main.py 408d3df
- Add community repo dependency group to pyproject toml 7b077ac
- Add warning for using Gemini models via LiteLLM 9291daa
Documentation
- Update root_agent description for clarity 467df1a
- Update the ask_data_insights docstring aad1533
- Add contributing Spanner tools RAG agent sample fcd748e
Tests
- Add functional telemetry tests bc6b546
- Add unit tests for the
Appclass and improveRunnerinitialization tests fc90ce9
Chores
Release 1.13.0
1.13.0 (2025-08-27)
Features
- [Tools] Add the ask_data_insights tool for natural language queries on BigQuery data 47b88d2
Bug Fixes
- Add the missing
from_configclass method in BaseToolset 2dd432c - Change LlmResponse to use Content for transcriptions 3b997a0
- AgentTool returns last content, instead of the content in the last event bcf0dda
- Fix adk deploy docker file permission ad81aa5
- Updating BaseAgent.clone() and LlmAgent.clone() to properly clone fields that are lists 29bb75f
- Make tool description for bigquery
execute_sqlfor various write modes self contained 167182b - Set invocation_id and branch for event generated when both output_schema and tools are used 3f3aa7b
- Rework parallel_agent.py to always aclose async generators 826f554
- Add table metadata info into Spanner tool
get_table_schemaand fix the key usage info 81a53b5 - Fix Spanner DatabaseSessionService support 54ed079
- Add support for required params c144b53
- Replaced hard coded value for user_id to the value from the tool context from parent agent. 0b89f18
Improvements
- Allow user to specify protocol for A2A RPC URL in to_a2a utility 157f731
- Passthrough extra args for
adk deploy cloud_runas Cloud Run args 6806dea - Renames MCPTool and MCPToolset to McpTool and McpToolset 4c70606
- Ignore hidden files in autoformat.sh 0eb65c0
Documentation
Release 1.12.0
Features
[Agent Config] 🌟 NEW FEATURE: Support using config file (YAML) to author agents in addition to python code. See the documentation for details.
- [Agent Config] Support deploying config agent to Agent Engine in CLI (b3b7003)
- [Tools] Add a dedicated Bigtable toolset to provide an easier, integrated way to interact
with Bigtable for building AI Agent applications(experimental feature) (a953807) - [Tools] Support custom tool_name_prefix in auto-generated GoogleApiToolset (a2832d5) See oauth_calendar_agent as an example.
- [CLI] Add
build_imageoption foradk deploy cloud_runCLI (c843503) - [Services] Add setdefault method to the ADK State object (77ed1f5)
Bug Fixes
- Lazy load VertexAiCodeExecutor and ContainerCodeExecutor (018db79)
- Fix the path for agent card in A2A demo (fa64545)
- Fix the path for agent card in A2A demo (a117cf0)
- litellm-test due to breaking change in dep library of extension extra (004a0a0)
- Using base event's invocation id when merge multiple function response event (279e4fe)
- Avoid crash when there is no candidates_token_count, which is Optional (22f34e9)
- Fix the packaging version comparison logic in adk cli (a2b7909)
- Add Spanner admin scope to Spanner tool default Oauth scopes (b66054d)
- Fixes SequentialAgent.config_type type hint (8a9a271)
- Fixes the host in the ansi bracket of adk web (cd357bf)
- Add spanner tool name prefix (a27927d)
Improvements
- Support
ADK_SUPPRESS_EXPERIMENTAL_FEATURE_WARNINGSas environment variable to suppress experimental warnings (4afc9b2) - Uses pydantic
Fieldfor Agent configs, so that the generated AgentConfig.json json schema can carry field description (5b999ed) - Update
openaidependency version, based on correct OPENAI release (bb8ebd1) - Add the missing license header for core_callback_config init file (f8fd6a4)
- Creates yaml_utils.py in utils to allow adk dump yaml in the same style (1fd58cb)
- Return explict None type for DELETE endpoints (f03f167)
- Add _config suffix to all yaml-based agent examples (43f302c)
- Rename run related method and request to align with the conventions (ecaa7b4)
- Update models in samples/ folder to be gemini 2.0+ (6c217ba)
- Remove the "one commit" requirement from the contributing guide (c32cb6e)
- Bump version to 1.11.0 (8005270)
Documentation
v1.11.0
1.11.0 (2025-08-14)
Features
- [Tools] Support adding prefix to tool names returned by toolset (ebd726f)
- [Eval] Expose
print_detailed_resultsparam toAgentEvaluator.evaluate(7e08808) - [Tools] Add Spanner toolset (breaking change to BigQueryTool, consolidating into generic GoogleTool) (1fc8d20)
- [Core] Support both output_schema and tools at the same time in LlmAgent(sample) (af63567)
Bug Fixes
- A2A RPC URL got overriden by host and port param of adk api server (52284b1)
- Aclose all async generators to fix OTel tracing context (a30c63c)
- Use PreciseTimestamp for create and update time in database session service to improve precision (585141e)
- Ignore AsyncGenerator return types in function declarations (e2518dc)
- Make all subclass of BaseToolset to call parent constructor (8c65967)
- Path parameter extraction for complex Google API endpoints (54680ed)
- Docstring concatenation in 3.13 (88f759a)
- Lazy load retrieval tools and prompt users to install extensions if import failed (9478a31)
- Incorrect logic in LlmRequest.append_tools and make BaseTool to call it (b4ce3b1)
- Creates an InMemoryMemoryService within the EvaluationGenerator (e4d54b6)
- Uncomment OTel tracing in base_llm_flow.py (9cfe433)
Improvements
- Added upper version bounds to dependencies in "pyproject.toml" (a74d334)
- Update python-version in .github/workflows/python-unit-tests.yml to ["3.9", "3.10", "3.11", "3.12", "3.13"] (ddf2e21)
- Update comment to reference "Streamable HTTP Client" (c52f956)
- Remove logging that contains full event data from DatabaseSessionService (bb3735c)
- Add the missing env variables in discussion_answering.yml (a09a5e6)
- Add Gemini API docs as a new datastore for the ADK Answering Agent (5fba196)
- Add the missing license header for some sample agents' files (7d2cb65)
- Add docstring to clarify the behavior of preload memory tool (88114d7)
- Add experimental messages for a2a related API (d0b3b5d)
- Fixes generate_image sample (d674178)
- Make all FastAPI endpoints async (7f12387)
- Group FastAPI endpoints with tags (c323de5)
- Allow implementations to skip defining a close method on Toolset (944e39e)
- Add sample agent to test support of output_schema and tools at the same time for gemini model (f2005a2)
- Add Github workflow config for uploading ADK docs to knowledge store (5900273)
- Update ADK Answering agent to reference doc site instead of adk-docs repo (b5a8bad)
Documentation
- Fixes tool_functions, which is a config-based sample for using tools (c5af44c)
- Add workflow_triage sample for multi-agent request orchestration (e295feb)
- Add examples for config agents (d87feb8)
- Adds pypi badge to README.md (dc26aad)
- Update StreamableHTTPConnectionParams docstring to remove SSE references (8f937b5)