Skip to content

Commit fdb809e

Browse files
authored
Merge branch 'main' into feat/gcs-file-data-support
2 parents da16a6b + 987c809 commit fdb809e

File tree

95 files changed

+9217
-5043
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+9217
-5043
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "1.30.0"
2+
".": "1.31.0"
33
}

.github/release-please-config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
3-
"last-release-sha": "80a7ecf4b31e4c6de4a1425b03422f384c1a032d",
3+
"last-release-sha": "d69477f6ff348311e1d53e3f2c389dcf037fb049",
44
"packages": {
55
".": {
66
"release-type": "python",

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,39 @@
11
# Changelog
22

3+
## [1.31.0](https://github.com/google/adk-python/compare/v1.30.0...v1.31.0) (2026-04-16)
4+
5+
6+
### Features
7+
8+
* Add "google-adk" user agent to Parameter Manager and Secret Manager clients ([b8e8f6b](https://github.com/google/adk-python/commit/b8e8f6b90290e48e134f48bbe7e2b800276e7269))
9+
* Add support for memories.ingest_events in VertexAiMemoryBankService ([d69477f](https://github.com/google/adk-python/commit/d69477f6ff348311e1d53e3f2c389dcf037fb049))
10+
* Add Vertex AI Agent Engine Sandbox integration for computer use ([7686848](https://github.com/google/adk-python/commit/76868485519090c5fa2a0287bccca040e438d94e))
11+
* Firestore support ([1a9df8f](https://github.com/google/adk-python/commit/1a9df8f77410a08a85d04744f199d25f20d55ebd))
12+
* **live:** Add live_session_id to LlmResponse ([bf84e2c](https://github.com/google/adk-python/commit/bf84e2cee84f04c886914eb72318875f3c29ea13))
13+
14+
15+
### Bug Fixes
16+
17+
* Bump minimum mcp version from 1.23.0 to 1.24.0 ([494c360](https://github.com/google/adk-python/commit/494c360b2a82af5130f153ff615f84e4c2604a73))
18+
* **cli:** correct console URL path after adk deploy agent_engine ([64ed1a6](https://github.com/google/adk-python/commit/64ed1a68c98e32d61aff43857fa4e756b129b13f)), closes [#5336](https://github.com/google/adk-python/issues/5336)
19+
* execute on_event_callback before append_event to persist plugin modifications ([454188d](https://github.com/google/adk-python/commit/454188de5de0ef44adb7716230eacddcb060dab2)), closes [#3990](https://github.com/google/adk-python/issues/3990)
20+
* make `_EvalMetricResultWithInvocation.expected_invocation` `Optional` for conversation_scenario support ([#5215](https://github.com/google/adk-python/issues/5215)) ([a4c9387](https://github.com/google/adk-python/commit/a4c938775764794f42e00a89e3cb33da5119c38b))
21+
* Pass in auth headers with header provider instead of connection params ([e12b0af](https://github.com/google/adk-python/commit/e12b0af20d9a025e3d75f309de836b139b6d3e88))
22+
* populate required fields in FunctionDeclaration json_schema fallback ([9b9faa4](https://github.com/google/adk-python/commit/9b9faa4ba21d566252e4c25bd55ab9db2658051e))
23+
* Resolve BigQuery plugin issues with A2A transfers, spans, and metadata ([9ca8c38](https://github.com/google/adk-python/commit/9ca8c384324e07e945146359f21010b438eb1bc6))
24+
* upgrade google-genai lower bound ([8bc5728](https://github.com/google/adk-python/commit/8bc57283f3c584a5a6d6d774a316fe63342ed481))
25+
26+
27+
### Code Refactoring
28+
29+
* **live:** Use `send_client_content` to send conversation history ([67dc2eb](https://github.com/google/adk-python/commit/67dc2ebfd42f175f2dd6ea58df51a03c575062c6))
30+
* **live:** Use `send_tool_response` for function responses ([70c5fc8](https://github.com/google/adk-python/commit/70c5fc83a62d1e81d20986223f5c275b086f9822))
31+
32+
33+
### Documentation
34+
35+
* update MCP Toolbox branding, binary version, and asset references ([47fa7b7](https://github.com/google/adk-python/commit/47fa7b743c37e3aa8302e78be552876c2784e6ff))
36+
337
## [1.30.0](https://github.com/google/adk-python/compare/v1.29.0...v1.30.0) (2026-04-13)
438

539

contributing/samples/live_bidi_streaming_multi_agent/agent.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@ def roll_die(sides: int) -> int:
3030
roll_agent = Agent(
3131
name="roll_agent",
3232
model=Gemini(
33-
# see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/migrate
34-
# for vertex model names
35-
model="gemini-live-2.5-flash-native-audio", # vertex
36-
# see https://ai.google.dev/gemini-api/docs/models for AIS model names
37-
# model='gemini-2.5-flash-native-audio-latest', # for AI studio
33+
# Find supported models in Vertex here: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/live-api
34+
model="gemini-live-2.5-flash-native-audio", # Vertex
35+
# Find supported models in Gemini API here: https://ai.google.dev/gemini-api/docs/models
36+
# model='gemini-2.5-flash-native-audio-preview-12-2025', # Gemini API
3837
speech_config=types.SpeechConfig(
3938
voice_config=types.VoiceConfig(
4039
prebuilt_voice_config=types.PrebuiltVoiceConfig(
@@ -85,11 +84,10 @@ def check_prime(nums: list[int]) -> str:
8584
prime_agent = Agent(
8685
name="prime_agent",
8786
model=Gemini(
88-
# see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/migrate
89-
# for vertex model names
90-
model="gemini-live-2.5-flash-native-audio", # vertex
91-
# see https://ai.google.dev/gemini-api/docs/models for AIS model names
92-
# model='gemini-2.5-flash-native-audio-latest', # for AI studio
87+
# Find supported models in Vertex here: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/live-api
88+
model="gemini-live-2.5-flash-native-audio", # Vertex
89+
# Find supported models in Gemini API here: https://ai.google.dev/gemini-api/docs/models
90+
# model='gemini-2.5-flash-native-audio-preview-12-2025', # Gemini API
9391
speech_config=types.SpeechConfig(
9492
voice_config=types.VoiceConfig(
9593
prebuilt_voice_config=types.PrebuiltVoiceConfig(
@@ -128,13 +126,11 @@ def get_current_weather(location: str):
128126

129127

130128
root_agent = Agent(
131-
# find supported models here: https://google.github.io/adk-docs/get-started/streaming/quickstart-streaming/
132129
model=Gemini(
133-
# see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/migrate
134-
# for vertex model names
135-
model="gemini-live-2.5-flash-native-audio", # vertex
136-
# see https://ai.google.dev/gemini-api/docs/models for AIS model names
137-
# model='gemini-2.5-flash-native-audio-latest', # for AI studio
130+
# Find supported models in Vertex here: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/live-api
131+
model="gemini-live-2.5-flash-native-audio", # Vertex
132+
# Find supported models in Gemini API here: https://ai.google.dev/gemini-api/docs/models
133+
# model='gemini-2.5-flash-native-audio-preview-12-2025', # Gemini API
138134
speech_config=types.SpeechConfig(
139135
voice_config=types.VoiceConfig(
140136
prebuilt_voice_config=types.PrebuiltVoiceConfig(

contributing/samples/live_bidi_streaming_parallel_tools_agent/agent.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ def turn_on_tv():
2929

3030

3131
root_agent = Agent(
32-
model="gemini-live-2.5-flash-native-audio",
32+
# Find supported models in Vertex here: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/live-api
33+
model="gemini-live-2.5-flash-native-audio", # Vertex
34+
# Find supported models in Gemini API here: https://ai.google.dev/gemini-api/docs/models
35+
# model='gemini-2.5-flash-native-audio-preview-12-2025', # Gemini API
3336
name="Home_helper",
3437
instruction="Be polite and answer all user's questions.",
3538
tools=[turn_on_lights, turn_on_tv],

contributing/samples/live_bidi_streaming_single_agent/agent.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,10 @@ async def check_prime(nums: list[int]) -> str:
6565

6666

6767
root_agent = Agent(
68-
# see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/migrate
69-
# for vertex model names
70-
model='gemini-live-2.5-flash-native-audio', # vertex
71-
# see https://ai.google.dev/gemini-api/docs/models for AIS model names
72-
# model='gemini-2.5-flash-native-audio-latest', # for AI studio
68+
# Find supported models in Vertex here: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/live-api
69+
model='gemini-live-2.5-flash-native-audio', # Vertex
70+
# Find supported models in Gemini API here: https://ai.google.dev/gemini-api/docs/models
71+
# model='gemini-2.5-flash-native-audio-preview-12-2025', # Gemini API
7372
name='roll_dice_agent',
7473
description=(
7574
'hello world agent that can roll a dice of 6 sides and check prime'

contributing/samples/live_bidi_streaming_tools_agent/agent.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,10 @@ def stop_streaming(function_name: str):
124124

125125

126126
root_agent = Agent(
127-
# see https://docs.cloud.google.com/vertex-ai/generative-ai/docs/migrate
128-
# for vertex model names
129-
model="gemini-live-2.5-flash-native-audio", # vertex
130-
# see https://ai.google.dev/gemini-api/docs/models for AIS model names
131-
# model='gemini-2.5-flash-native-audio-latest', # for AI studio
127+
# Find supported models in Vertex here: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/live-api
128+
model="gemini-live-2.5-flash-native-audio", # Vertex
129+
# Find supported models in Gemini API here: https://ai.google.dev/gemini-api/docs/models
130+
# model='gemini-2.5-flash-native-audio-preview-12-2025', # Gemini API
132131
name="video_streaming_agent",
133132
instruction="""
134133
You are a monitoring agent. You can do video monitoring and stock price monitoring

contributing/samples/live_tool_callbacks_agent/agent.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,10 @@ async def after_tool_async_callback(
217217

218218
# Create the agent with tool callbacks
219219
root_agent = Agent(
220-
# find supported models here: https://google.github.io/adk-docs/get-started/streaming/quickstart-streaming/
221-
model="gemini-2.0-flash-live-preview-04-09", # for Vertex project
222-
# model="gemini-live-2.5-flash-preview", # for AI studio key
220+
# Find supported models in Vertex here: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/live-api
221+
model="gemini-live-2.5-flash-native-audio", # Vertex
222+
# Find supported models in Gemini API here: https://ai.google.dev/gemini-api/docs/models
223+
# model='gemini-2.5-flash-native-audio-preview-12-2025', # Gemini API
223224
name="tool_callbacks_agent",
224225
description=(
225226
"Live streaming agent that demonstrates tool callbacks functionality. "

contributing/samples/local_environment_skill/agent.py

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -15,38 +15,7 @@
1515

1616
from google.adk import Agent
1717
from google.adk.environment import LocalEnvironment
18-
from google.adk.tools.base_tool import BaseTool
1918
from google.adk.tools.environment import EnvironmentToolset
20-
from google.genai import types
21-
22-
23-
class GetTimezoneTool(BaseTool):
24-
"""A tool to get the timezone for a given location."""
25-
26-
def __init__(self):
27-
super().__init__(
28-
name="get_timezone",
29-
description="Returns the timezone for a given location.",
30-
)
31-
32-
def _get_declaration(self) -> types.FunctionDeclaration | None:
33-
return types.FunctionDeclaration(
34-
name=self.name,
35-
description=self.description,
36-
parameters_json_schema={
37-
"type": "object",
38-
"properties": {
39-
"location": {
40-
"type": "string",
41-
"description": "The location to get the timezone for.",
42-
},
43-
},
44-
"required": ["location"],
45-
},
46-
)
47-
48-
async def run_async(self, *, args: dict, tool_context) -> str:
49-
return f"The timezone for {args['location']} is UTC+00:00."
5019

5120

5221
def get_wind_speed(location: str) -> str:
@@ -89,7 +58,6 @@ def get_wind_speed(location: str) -> str:
8958
working_dir=pathlib.Path(__file__).parent
9059
),
9160
),
92-
GetTimezoneTool(),
9361
get_wind_speed,
9462
],
9563
)

contributing/samples/local_environment_skill/skills/weather-skill/SKILL.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
---
22
name: weather-skill
33
description: A skill that provides weather information based on reference data.
4-
metadata:
5-
adk_additional_tools:
6-
- get_wind_speed
74
---
85

96
Step 1: Check 'references/weather_info.md' for the current weather.

0 commit comments

Comments
 (0)