Releases: google/adk-python
Releases · google/adk-python
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_tool
method inMcpTool
to provide direct access to the underlying MCP tool (6158075) - Make a copy of the
columns
instead 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_metadata
to 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
thought
handling in contents.py and refactors its unit tests a30851e - Fixes the
thought
field 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_service
andrunners
64f11a6 - Avoid mutable default arguments in
local_eval_service
andrunners
5b465fd - Reorder dependencies in
pyproject.toml
ca5f7f1 - Follow pydantic convention to make field_validator a public method 1448406
- Update comment to clarify
after_run
callbacks 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
App
class and improveRunner
initialization 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_config
class 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_sql
for 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_schema
and 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_run
as 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_image
option foradk deploy cloud_run
CLI (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_WARNINGS
as environment variable to suppress experimental warnings (4afc9b2) - Uses pydantic
Field
for Agent configs, so that the generated AgentConfig.json json schema can carry field description (5b999ed) - Update
openai
dependency 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_results
param 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)
v1.10.0
1.10.0 (2025-08-07)
Features
- [Live] Implement Live Session Resumption (71fbc92)
- [Tool] Support parallel execution of parallel function calls (57cd41f)
- [Tool] Create enterprise_web_search_tool as a tool instance (0e28d64)
- [Models] Allow max tokens to be customizable in Claude (7556ebc)
Bug Fixes
- Fix shared default plugin manager and cost manager instances among multiple invocations (423542a)
- Correct the type annotation in anthropic_llm implementation (97318bc)
- Fix adk deploy cloud_run cli, which was broken in v1.9.0 (e41dbcc)
- Remove thoughts from contents in llm requests from history contents (d620bcb)
- Annotate response type as None for transfer_to_agent tool (86a4487)
- Fix incompatible a2a sdk changes (faadef1)
- Fix adk cli options and method parameters mismatching (8ef2177)
Improvements
- Add Github workflow config for the ADK Answering agent (8dc0c94)
- Import AGENT_CARD_WELL_KNOWN_PATH from adk instead of from a2a directly (37dae9b)
- Make
LlmRequest.LiveConnectConfig
field default to a factory (74589a1) - Update the prompt to make the ADK Answering Agent more objective (2833030)
- Add sample agent for testing parallel functions execution (90b9193)
- Hide the ask_data_insights tool until the API is publicly available (bead607)
- Change
LlmRequest.config
's default value to betypes.GenerateContentConfig()
(041f04e) - Prevent triggering of _load_from_yaml_config in AgentLoader (db975df)
Documentation
- Fix typos (16a15c8)
v1.9.0
1.9.0 (2025-07-31)
Features
- [CLI] Add
-v
,--verbose
flag to enable DEBUG logging as a shortcut for--log_level DEBUG
(3be0882) - [CLI] Add a CLI option to update an agent engine instance (206a132)
- [CLI] Modularize fast_api.py to allow simpler construction of API Server (bfc203a, dfc25c1, e176f03)
- [CLI] Refactor AgentLoader into base class and add InMemory impl alongside existing filesystem impl (bda3df2)
- [CLI] Respect the .ae_ignore file when deploying to agent engine (f29ab5d)
- [Core] Add new callbacks to handle tool and model errors (00afaaf)
- [Core] Add sample plugin for logging (20537e8)
- [Core] Expose Gemini RetryOptions to client (1639298)
- [Evals] Added an Fast API new endpoint to serve eval metric info (c69dcf8)
- [Evals] Refactored AgentEvaluator and updated it to use LocalEvalService (1355bd6)
Bug Fixes
- Add absolutize_imports option when deploying to agent engine (fbe6a7b)
- Add space to allow adk deploy cloud_run --a2a (70c4616)
- Copy the original function call args before passing it to callback or tools to avoid being modified (3432b22)
- Eval module not found exception string (7206e0a)
- Fix incorrect token count mapping in telemetry (c8f8b4a)
- Import cli's artifact dependencies directly (282d67f)
- Keep existing header values while merging tracking headers for
llm_request.config.http_options
inGemini.generate_content_async
(6191412) - Merge tracking headers even when
llm_request.config.http_options
is not set inGemini.generate_content_async
(ec8dd57) - Restore bigquery sample agent to runnable form (16e8419)
- Return session state in list_session API endpoint (314d6a4)
- Runner was expecting Event object instead of Content object when using early exist feature (bf72426)
- Unable to acquire impersonated credentials (9db5d9a)
- Update
agent_card_builder
to follow grammar rules (9c0721b), closes #2223 - Use correct type for actions parameter in ApplicationIntegrationToolset (ce7253f)
Documentation
- Update documents about the information of vibe coding (0c85587)
v1.8.0
1.8.0 (2025-07-23)
Features
- [Core]Add agent card builder (18f5bea)
- [Core]Add an to_a2a util to convert adk agent to A2A ASGI application (a77d689)
- [Core]Add camel case converter for agents (0e173d7)
- [Evals]Use LocalEvalService to run all evals in cli and web (d1f182e)
- [Evals]Enable FinalResponseMatchV2 metric as an experiment (36e45cd)
- [Models]Add support for
model-optimizer-*
family of models in vertex (ffe2bdb) - [Services]Added a sample for History Management (67284fc)
- [Services]Support passing fully qualified agent engine resource name when constructing session service and memory service ([2e77804](2e778049d0a675e458f4e
35fe4104ca1298dbfcf)) - [Tools]Add ComputerUseToolset (083dcb4)
- [Tools]Allow toolset to process llm_request before tools returned by it (3643b4a)
- [Tools]Support input/output schema by fully-qualified code reference (dfee06a)
- [Tools]Enhance LangchainTool to accept more forms of functions (0ec69d0)
Bug Fixes
- Attention: Logging level for some API requests and responses was moved from
INFO
toDEBUG
(ff31f57)- Please set
--log_level=DEBUG
, if you are interested in having those API request and responses in logs.
- Please set
- Add buffer to the write file option (f2caf2e)
- Allow current sub-agent to finish execution before exiting the loop agent due to a sub-agent's escalation. (2aab1cf)
- Check that
mean_score
is a valid float value (65cb6d6) - Handle non-json-serializable values in the
execute_sql
tool (13ff009) - Raise
NotFoundError
inlist_eval_sets
function when app_name doesn't exist (b17d8b6) - Fixed serialization of tools with nested schema (53df35e)
- Set response schema for function tools that returns
None
(33ac838) - Support path level parameters for open_api_spec_parser (6f01660)
- Use correct type for actions parameter in ApplicationIntegrationToolset (ce7253f)
- Use the same word extractor for query and event contents in InMemoryMemoryService (1c4c887)
Documentation
- Fix missing toolbox-core dependency and improve installation guide (2486349)