Skip to content

Commit d18c287

Browse files
authored
Merge branch 'main' into add-display-name-to-sessions
2 parents 952e150 + 1063fa5 commit d18c287

File tree

81 files changed

+4485
-807
lines changed

Some content is hidden

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

81 files changed

+4485
-807
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 51 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,69 @@ assignees: ''
77

88
---
99

10-
** Please make sure you read the contribution guide and file the issues in the right place. **
11-
[Contribution guide.](https://google.github.io/adk-docs/contributing-guide/)
10+
## 🔴 Required Information
11+
*Please ensure all items in this section are completed to allow for efficient
12+
triaging. Requests without complete information may be rejected / deprioritized.
13+
If an item is not applicable to you - please mark it as N/A*
1214

13-
**Describe the bug**
15+
**Describe the Bug:**
1416
A clear and concise description of what the bug is.
1517

16-
**To Reproduce**
17-
Please share a minimal code and data to reproduce your problem.
18-
Steps to reproduce the behavior:
18+
**Steps to Reproduce:**
19+
Please provide a numbered list of steps to reproduce the behavior:
1920
1. Install '...'
2021
2. Run '....'
2122
3. Open '....'
2223
4. Provide error or stacktrace
2324

24-
**Expected behavior**
25+
**Expected Behavior:**
2526
A clear and concise description of what you expected to happen.
2627

27-
**Screenshots**
28-
If applicable, add screenshots to help explain your problem.
28+
**Observed Behavior:**
29+
What actually happened? Include error messages or crash stack traces here.
2930

30-
**Desktop (please complete the following information):**
31-
- OS: [e.g. macOS, Linux, Windows]
32-
- Python version(python -V):
33-
- ADK version(pip show google-adk):
31+
**Environment Details:**
32+
33+
- ADK Library Version (pip show google-adk):
34+
- Desktop OS:** [e.g., macOS, Linux, Windows]
35+
- Python Version (python -V):
36+
37+
**Model Information:**
3438

35-
**Model Information:**
3639
- Are you using LiteLLM: Yes/No
37-
- Which model is being used(e.g. gemini-2.5-pro)
40+
- Which model is being used: (e.g., gemini-2.5-pro)
41+
42+
---
43+
44+
## 🟡 Optional Information
45+
*Providing this information greatly speeds up the resolution process.*
46+
47+
**Regression:**
48+
Did this work in a previous version of ADK? If so, which one?
3849

39-
**Additional context**
50+
**Logs:**
51+
Please attach relevant logs. Wrap them in code blocks (```) or attach a
52+
text file.
53+
```text
54+
// Paste logs here
55+
```
56+
57+
**Screenshots / Video:**
58+
If applicable, add screenshots or screen recordings to help explain
59+
your problem.
60+
61+
**Additional Context:**
4062
Add any other context about the problem here.
63+
64+
**Minimal Reproduction Code:**
65+
Please provide a code snippet or a link to a Gist/repo that isolates the issue.
66+
```python
67+
// Code snippet here
68+
```
69+
70+
**How often has this issue occurred?:**
71+
72+
- Always (100%)
73+
- Often (50%+)
74+
- Intermittently (<50%)
75+
- Once / Rare

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,39 @@ assignees: ''
1010
** Please make sure you read the contribution guide and file the issues in the right place. **
1111
[Contribution guide.](https://google.github.io/adk-docs/contributing-guide/)
1212

13-
**Is your feature request related to a problem? Please describe.**
14-
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
13+
## 🔴 Required Information
14+
*Please ensure all items in this section are completed to allow for efficient
15+
triaging. Requests without complete information may be rejected / deprioritized.
16+
If an item is not applicable to you - please mark it as N/A*
1517

16-
**Describe the solution you'd like**
17-
A clear and concise description of what you want to happen.
18+
### Is your feature request related to a specific problem?
19+
Please describe the problem you are trying to solve. (Ex: "I'm always frustrated
20+
when I have to manually handle X...")
1821

19-
**Describe alternatives you've considered**
20-
A clear and concise description of any alternative solutions or features you've considered.
22+
### Describe the Solution You'd Like
23+
A clear and concise description of the feature or API change you want.
24+
Be specific about input/outputs if this involves an API change.
2125

22-
**Additional context**
23-
Add any other context or screenshots about the feature request here.
26+
### Impact on your work
27+
How does this feature impact your work and what are you trying to achieve?
28+
If this is critical for you, tell us if there is a timeline by when you need
29+
this feature.
30+
31+
### Willingness to contribute
32+
Are you interested in implementing this feature yourself or submitting a PR?
33+
(Yes/No)
34+
35+
---
36+
37+
## 🟡 Recommended Information
38+
39+
### Describe Alternatives You've Considered
40+
A clear and concise description of any alternative solutions or workarounds
41+
you've considered and why they didn't work for you.
42+
43+
### Proposed API / Implementation
44+
If you have ideas on how this should look in code, please share a
45+
pseudo-code example.
46+
47+
### Additional Context
48+
Add any other context or screenshots about the feature request here.

CHANGELOG.md

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

3+
## [1.23.0](https://github.com/google/adk-python/compare/v1.22.1...v1.23.0) (2026-01-22)
4+
5+
### ⚠ BREAKING CHANGES
6+
7+
* Breaking: Use OpenTelemetry for BigQuery plugin tracing, replacing custom `ContextVar` implementation ([ab89d12](https://github.com/google/adk-python/commit/ab89d1283430041afb303834749869e9ee331721))
8+
9+
### Features
10+
11+
* **[Core]**
12+
* Add support to automatically create a session if one does not exist ([8e69a58](https://github.com/google/adk-python/commit/8e69a58df4eadeccbb100b7264bb518a46b61fd7))
13+
* Remove `@experimental` decorator from `AgentEngineSandboxCodeExecutor` ([135f763](https://github.com/google/adk-python/commit/135f7633253f6a415302142abc3579b664601d5b))
14+
* Add `--disable_features` CLI option to override default feature enable state ([53b67ce](https://github.com/google/adk-python/commit/53b67ce6340f3f3f8c3d732f9f7811e445c76359))
15+
* Add `otel_to_cloud` flag to `adk deploy agent_engine` command ([21f63f6](https://github.com/google/adk-python/commit/21f63f66ee424501d9a70806277463ef718ae843))
16+
* Add `is_computer_use` field to agent information in `adk-web` server ([5923da7](https://github.com/google/adk-python/commit/5923da786eb1aaef6f0bcbc6adc906cbc8bf9b36))
17+
* Allow `thinking_config` in `generate_content_config` ([e162bb8](https://github.com/google/adk-python/commit/e162bb8832a806e2380048e39165bf837455f88c))
18+
* Convert A2UI messages between A2A `DataPart` metadata and ADK events ([1133ce2](https://github.com/google/adk-python/commit/1133ce219c5a7a9a85222b03e348ba6b13830c8f))
19+
* Add `--enable_features` CLI option to override default feature enable state ([79fcddb](https://github.com/google/adk-python/commit/79fcddb39f71a4c1342e63b4d67832b3eccb2652))
20+
21+
* **[Tools]**
22+
* Add flush mechanism to `BigQueryAgentAnalyticsPlugin` to ensure pending log events are written to BigQuery ([9579bea](https://github.com/google/adk-python/commit/9579bea05d946b3d8b4bfec35e510725dd371224))
23+
* Allow Google Search tool to set a different model ([b57a3d4](https://github.com/google/adk-python/commit/b57a3d43e4656f5a3c5db53addff02b67d1fde26))
24+
* Support authentication for MCP tool listing ([e3d542a](https://github.com/google/adk-python/commit/e3d542a5ba3d357407f8cd29cfdd722f583c8564) [19315fe](https://github.com/google/adk-python/commit/19315fe557039fa8bf446525a4830b1c9f40cba9))
25+
* Use JSON schema for `base_retrieval_tool`, `load_artifacts_tool`, and `load_memory_tool` declarations when the feature is enabled ([69ad605](https://github.com/google/adk-python/commit/69ad605bc4bbe9a4f018127fd3625169ee70488e))
26+
* Use JSON schema for `IntegrationConnectorTool` declaration when the feature is enabled ([2ed6865](https://github.com/google/adk-python/commit/2ed686527ac75ff64128ce7d9b1a3befc2b37c64))
27+
* Start and close `ClientSession` in a single task in `McpSessionManager` ([cce430d](https://github.com/google/adk-python/commit/cce430da799766686e65f6cae02ba64e916d5c8a))
28+
* Use JSON schema for `RestApiTool` declaration when the feature is enabled ([a5f0d33](https://github.com/google/adk-python/commit/a5f0d333d7f26f2966ed511d5d9def7a1933f0c2))
29+
30+
* **[Evals]**
31+
* Update `adk eval` CLI to consume custom metrics by adding `CustomMetricEvaluator` ([ea0934b](https://github.com/google/adk-python/commit/ea0934b9934c1fefd129a1026d6af369f126870e))
32+
* Update `EvalConfig` and `EvalMetric` data models to support custom metrics ([6d2f33a](https://github.com/google/adk-python/commit/6d2f33a59cfba358dd758378290125fc2701c411))
33+
34+
* **[Observability]**
35+
* Add minimal `generate_content {model.name}` spans and logs for non-Gemini inference and when `opentelemetry-inference-google-genai` dependency is missing ([935c279](https://github.com/google/adk-python/commit/935c279f8281bde99224f03d936b8abe51cbabfc))
36+
37+
* **[Integrations]**
38+
* Enhance `TraceManager` asynchronous safety, enrich BigQuery plugin logging, and fix serialization ([a4116a6](https://github.com/google/adk-python/commit/a4116a6cbfadc161982af5dabd55a711d79348b7))
39+
40+
* **[Live]**
41+
* Persist user input content to session in live mode ([a04828d](https://github.com/google/adk-python/commit/a04828dd8a848482acbd48acc7da432d0d2cb0aa))
42+
43+
### Bug Fixes
44+
45+
* Recursively extract input/output schema for AgentTool ([bf2b56d](https://github.com/google/adk-python/commit/bf2b56de6d0052e40b6d871b2d22c56e9225e145))
46+
* Yield buffered `function_call` and `function_response` events during live streaming ([7b25b8f](https://github.com/google/adk-python/commit/7b25b8fb1daf54d7694bf405d545d46d2c012d2b))
47+
* Update `authlib` and `mcp` dependency versions ([7955177](https://github.com/google/adk-python/commit/7955177fb28b8e5dc19aae8be94015a7b5d9882a))
48+
* Set `LITELLM_MODE` to `PRODUCTION` before importing LiteLLM to prevent implicit `.env` file loading ([215c2f5](https://github.com/google/adk-python/commit/215c2f506e21a3d8c39551b80f6356943ecae320))
49+
* Redact sensitive information from URIs in logs ([5257869](https://github.com/google/adk-python/commit/5257869d91a77ebd1381538a85e7fdc3a600da90))
50+
* Handle asynchronous driver URLs in the migration tool ([4b29d15](https://github.com/google/adk-python/commit/4b29d15b3e5df65f3503daffa6bc7af85159507b))
51+
* Remove custom metadata from A2A response events ([81eaeb5](https://github.com/google/adk-python/commit/81eaeb5eba6d40cde0cf6147d96921ed1bf7bb31))
52+
* Handle `None` inferences in eval results ([7d4326c](https://github.com/google/adk-python/commit/7d4326c3606a7ff2ba3c0fdef08d4f6af52ee71e))
53+
* Mark all parts of a thought event as thought ([f92d4e3](https://github.com/google/adk-python/commit/f92d4e397f37445fe9032a95ce26646a3a69300b))
54+
* Use `json.dumps` for error messages in SSE events ([6ad18cc](https://github.com/google/adk-python/commit/6ad18cc2fc3a3315a0fc240cb51b3283b53116b4))
55+
* Use the correct path for config-based agents when deploying to AgentEngine ([83d7bb6](https://github.com/google/adk-python/commit/83d7bb6ef0d952ad04c5d9a61aaf202672c7e17d))
56+
* Support Generator and Async Generator tool declarations in JSON schema ([19555e7](https://github.com/google/adk-python/commit/19555e7dce6d60c3b960ca0bc2f928c138ac3cc0) [7c28297](https://github.com/google/adk-python/commit/7c282973ea193841fee79f90b8a91c5e02627ccc))
57+
* Prevent stopping event processing on events with `None` content ([ed2c3eb](https://github.com/google/adk-python/commit/ed2c3ebde9cafbb5e2bf375f44db1e77cee9fb24))
58+
* Fix `'NoneType'` object is not iterable error ([7db3ce9](https://github.com/google/adk-python/commit/7db3ce9613b1c2c97e6ca3cd8115736516dc1556))
59+
* Use canonical tools to find streaming tools and register them by `tool.name` ([ec6abf4](https://github.com/google/adk-python/commit/ec6abf401019c39e8e1a8d1b2c7d5cf5e8c7ac56))
60+
* Initialize `self._auth_config` inside `BaseAuthenticatedTool` to access authentication headers in `McpTool` ([d4da1bb](https://github.com/google/adk-python/commit/d4da1bb7330cdb87c1dcbe0b9023148357a6bd07))
61+
* Only filter out audio content when sending history ([712b5a3](https://github.com/google/adk-python/commit/712b5a393d44e7b5ce35fc459da98361bae4bb16))
62+
* Add finish reason mapping and remove custom file URI handling in LiteLLM ([89bed43](https://github.com/google/adk-python/commit/89bed43f5e0c5ad12dd31c716d372145b7e33e78))
63+
* Convert unsupported inline artifact MIME types to text in `LoadArtifactsTool` ([fdc98d5](https://github.com/google/adk-python/commit/fdc98d5c927bfef021e87cf72103892e4c2ac12a))
64+
* Pass `log_level` to `uvicorn` in `web` and `api_server` commands ([38d52b2](https://github.com/google/adk-python/commit/38d52b247600fb45a2beeb041c4698e90c00d705))
65+
* Use the agent name as the author of the audio event ([ab62b1b](https://github.com/google/adk-python/commit/ab62b1bffd7ad2df5809d430ad1823872b8bd67a))
66+
* Handle `NOT_FOUND` error when fetching Vertex AI sessions ([75231a3](https://github.com/google/adk-python/commit/75231a30f1857d930804769caf88bcc20839dd08))
67+
* Fix `httpx` client closure during event pagination ([b725045](https://github.com/google/adk-python/commit/b725045e5a1192bc9fd5190cbd2758ab6ff02590))
68+
69+
### Improvements
70+
71+
* Add new conversational analytics API toolset ([82fa10b](https://github.com/google/adk-python/commit/82fa10b71e037b565cb407c82e9e908432dab0ff))
72+
* Filter out `adk_request_input` event from content list ([295b345](https://github.com/google/adk-python/commit/295b34558774d1f64022009980e3edd8eb79527b))
73+
* Always skip executing partial function calls ([d62f9c8](https://github.com/google/adk-python/commit/d62f9c896c301aba3a781e868735e16f946a8862))
74+
* Update comments of request confirmation preprocessor ([1699b09](https://github.com/google/adk-python/commit/1699b090edc9e5b13c34f461c8e664187157c5c0))
75+
* Fix various typos ([a8f2ddd](https://github.com/google/adk-python/commit/a8f2ddd943301bbf53f49b3a23300ece45803cc0))
76+
* Update sample live streaming tools agent to use latest live models ([3dd7e3f](https://github.com/google/adk-python/commit/3dd7e3f1b9be05c28adb061864d84c4202a2d922))
77+
* Make the regex to catch CLI reference strict by adding word boundary anchor ([c222a45](https://github.com/google/adk-python/commit/c222a45ef74f7b55c48dc151ba98cd8c30a15c57))
78+
* Migrate `ToolboxToolset` to use `toolbox-adk` and align validation ([7dc6adf](https://github.com/google/adk-python/commit/7dc6adf4e563330a09e4cf28d2b1994c24b007d1) [277084e](https://github.com/google/adk-python/commit/277084e31368302e6338b69d456affd35d5fedfe))
79+
* Always log API backend when connecting to live model ([7b035aa](https://github.com/google/adk-python/commit/7b035aa9fc43a43489aeffea8f877cd7eaa09f35))
80+
* Add a sample BigQuery agent using BigQuery MCP tools ([672b57f](https://github.com/google/adk-python/commit/672b57f1b76580023d1f348de76227291a9c1012))
81+
* Add a `DebugLoggingPlugin` to record human-readable debugging logs ([8973618](https://github.com/google/adk-python/commit/8973618b0b0e90c513873e22af272c147efb4904))
82+
* Upgrade the sample BigQuery agent model version to `gemini-2.5-flash` ([fd2c0f5](https://github.com/google/adk-python/commit/fd2c0f556b786417a9f6add744827b07e7a06b7d))
83+
* Import `migration_runner` lazily within the migrate command ([905604f](https://github.com/google/adk-python/commit/905604faac82aca8ae0935eebea288f82985e9c5))
84+
85+
386

487
## [1.22.1](https://github.com/google/adk-python/compare/v1.22.0...v1.22.1) (2026-01-09)
588

CONTRIBUTING.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,18 @@ part before or alongside your code PR.
188188
pytest ./tests/unittests
189189
```
190190

191+
**Alternatively**, use the included `unittests.sh` script which handles
192+
environment setup and restoration automatically:
193+
194+
```shell
195+
./scripts/unittests.sh
196+
```
197+
198+
This script will:
199+
- Set up the test environment with minimal dependencies (`test`, `eval`, `a2a`)
200+
- Run the unit tests
201+
- Restore the full development environment (`--all-extras`)
202+
191203
6. **Auto-format the code:**
192204

193205
**NOTE**: We use `isort` and `pyink` for styles. Use the included

contributing/samples/adk_documentation/adk_release_analyzer/agent.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,8 @@ def get_release_context(tool_context: ToolContext) -> dict[str, Any]:
272272
273273
3. Call `get_changed_files_summary` to get the list of changed files WITHOUT
274274
the full patches (to save context space).
275+
- **IMPORTANT**: Pass `local_repo_path="{LOCAL_REPOS_DIR_PATH}/{CODE_REPO}"`
276+
to use local git and avoid GitHub API's 300-file limit.
275277
276278
4. Filter and organize the files:
277279
- **INCLUDE** only files in `src/google/adk/` directory

0 commit comments

Comments
 (0)