10000 Merge branch 'main' into fix/make-query-required-arg · google/adk-python@92eb647 · GitHub
[go: up one dir, main page]

Skip to content

Commit 92eb647

Browse files
authored
Merge branch 'main' into fix/make-query-required-arg
2 parents 19b6701 + 46282ee commit 92eb647

File tree

323 files changed

+17588
-3727
lines changed

Some content is hidden

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

323 files changed

+17588
-3727
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ assignees: ''
77

88
---
99

10-
** Please make sure you read the contribution guide and file the issues in the rigth place. **
10+
** 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

1313
**Describe the bug**

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ assignees: ''
77

88
---
99

10-
** Please make sure you read the contribution guide and file the issues in the rigth place. **
10+
** 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

1313
**Is your feature request related to a problem? Please describe.**

.github/workflows/pyink.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Copyright 2025 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: Check Pyink Formatting
16+
17+
on:
18+
pull_request:
19+
paths:
20+
- 'src/**/*.py'
21+
- 'tests/**/*.py'
22+
- 'pyproject.toml'
23+
24+
jobs:
25+
pyink-check:
26+
runs-on: ubuntu-latest
27+
28+
steps:
29+
- name: Checkout code
30+
uses: actions/checkout@v4
31+
32+
- name: Set up Python
33+
uses: actions/setup-python@v5
34+
with:
35+
python-version: '3.x'
36+
37+
- name: Install pyink
38+
run: |
39+
pip install pyink
40+
41+
- name: Detect changed Python files
42+
id: detect_changes
43+
run: |
44+
git fetch origin ${{ github.base_ref }}
45+
CHANGED_FILES=$(git diff --diff-filter=ACMR --name-only origin/${{ github.base_ref }}...HEAD | grep -E '\.py$' || true)
46+
echo "CHANGED_FILES=${CHANGED_FILES}" >> $GITHUB_ENV
47+
48+
- name: Run pyink on changed files
49+
if: env.CHANGED_FILES != ''
50+
run: |
51+
echo "Changed Python files:"
52+
echo "$CHANGED_FILES"
53+
54+
# Run pyink --check
55+
set +e
56+
pyink --check --config pyproject.toml $CHANGED_FILES
57+
RESULT=$?
58+
set -e
59+
60+
if [ $RESULT -ne 0 ]; then
61+
echo ""
62+
echo "❌ Pyink formatting check failed!"
63+
echo "👉 To fix formatting, run locally:"
64+
echo ""
65+
echo " pyink --config pyproject.toml $CHANGED_FILES"
66+
echo ""
67+
exit $RESULT
68+
fi
69+
70+
- name: No changed Python files detected
71+
if: env.CHANGED_FILES == ''
72+
run: |
73+
echo "No Python files changed. Skipping pyink check."

.github/workflows/python-unit-tests.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# Copyright 2025 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
115
name: Python Unit Tests
216

317
on:
@@ -36,6 +50,5 @@ jobs:
3650
source .venv/bin/activate
3751
pytest tests/unittests \
3852
--ignore=tests/unittests/artifacts/test_artifact_service.py \
39-
--ignore=tests/unittests/tools/application_integration_tool/clients/test_connections_client.py \
4053
--ignore=tests/unittests/tools/google_api_tool/test_googleapi_to_openapi_converter.py
4154

CHANGELOG.md

Lines changed: 138 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,146 @@
11
# Changelog
22

3+
## 1.1.0
4+
5+
### Features
6+
7+
* Extract agent loading logic from fast_api.py to a separate AgentLoader class and support more agent definition folder/file structure.
8+
* Added audio play in web UI.
9+
* Added input transcription support for live/streaming.
10+
* Added support for storing eval run history locally in adk eval cli.
11+
* Image artifacts can now be clicked directly in chat message to view.
12+
* Left side panel can now be resized.
13+
14+
### Bug Fixes
15+
16+
* Avoid duplicating log in stderr.
17+
* Align event filtering and ordering logic.
18+
* Add handling for None param.annotation.
19+
* Fixed several minor bugs regarding eval tab in web UI.
20+
21+
### Miscellaneous Chores
22+
23+
* Updates mypy config in pyproject.toml.
24+
* Add google search agent in samples.
25+
* Update filtered sch 10000 ema parameters for Gemini API.
26+
* Adds autoformat.sh for formatting codebase.
27+
28+
## 1.0.0
29+
30+
### ⚠ BREAKING CHANGES
31+
32+
* Evaluation dataset schema is finalized with strong-type pydantic models.
33+
(previously saved eval file needs re-generation, for both adk eval cli and
34+
the eval tab in adk web UI).
35+
* `BuiltInCodeExecutor` (in code_executors package) replaces
36+
`BuiltInCodeExecutionTool` (previously in tools package).
37+
* All methods in services are now async, including session service, artifact
38+
service and memory service.
39+
* `list_events` and `close_session` methods are removed from session service.
40+
* agent.py file structure with MCP tools are now easier and simpler ([now](https://github.com/google/adk-python/blob/3b5232c14f48e1d5b170f3698d91639b079722c8/contributing/samples/mcp_stdio_server_agent/agent.py#L33) vs [before](https://github.com/google/adk-python/blob/a4adb739c0d86b9ae4587547d2653d568f6567f2/contributing/samples/mcp_agent/agent.py#L41)).
41+
Old format is not working anymore.
42+
* `Memory` schema and `MemoryService` is redesigned.
43+
* Mark various class attributes as private in the classes in the `tools` package.
44+
* Disabled session state injection if instruction provider is used.
45+
(so that you can have `{var_name}` in the instruction, which is required for code snippets)
46+
* Toolbox integration is revamped: tools/toolbox_tool.py → tools/toolbox_toolset.py.
47+
* Removes the experimental `remote_agent.py`. We'll redesign it and bring it back.
48+
49+
### Features
50+
51+
* Dev UI:
52+
* A brand new trace view for overall agent invocation.
53+
* A revamped evaluation tab and comparison view for checking eval results.
54+
* Introduced `BaseToolset` to allow dynamically add/remove tools for agents.
55+
* Revamped MCPToolset with the new BaseToolset interface.
56+
* Revamped GoogleApiTool, GoogleApiToolset and ApplicationIntegrationToolset with the new BaseToolset interface.
57+
* Resigned agent.py file structure when needing MCPToolset.
58+
* Added ToolboxToolset.
59+
* Redesigned strong-typed agent evaluation schema.
60+
* Allows users to create more cohesive eval sets.
61+
* Allows evals to be extended for non-text modality.
62+
* Allows for a structured interaction with the uber eval system.
63+
* Redesigned Memory schema and MemoryService interfaces.
64+
* Added token usage to LlmResponse.
65+
* Allowed specifying `--adk_version` in `adk deploy cloud_run` cli. Default is the current version.
66+
67+
### Bug Fixes
68+
69+
* Fixed `adk deploy cloud_run` failing bug.
70+
* Fixed logs not being printed due to `google-auth` library.
71+
72+
### Miscellaneous Chores
73+
74+
* Display full help text when adk cli receives invalid arguments.
75+
* `adk web` now binds `127.0.0.1` by default, instead of 0.0.0.0.
76+
* `InMemoryRunner` now takes `BaseAgent` in constructor.
77+
* Various docstring improvements.
78+
* Various UI tweaks.
79+
* Various bug fixes.
80+
* Update various contributing/samples for contributors to validate the implementation.
81+
82+
83+
## 0.5.0
84+
85+
### ⚠ BREAKING CHANGES
86+
87+
* Updated artifact and memory service interface to be async. Agents that
88+
interact with these services through callbacks or tools will now need to
89+
adjust their invocation methods to be async (using await), or ensure calls
90+
are wrapped in an asynchronous executor like asyncio.run(). Any service that
91+
extends the base interface must also be updated.
92+
93+
### Features
94+
95+
* Introduced the ability to chain model callbacks.
96+
* Added support for async agent and model callbacks.
97+
* Added input transcription support for live/streaming.
98+
* Captured all agent code error and display on UI.
99+
* Set param required tag to False by default in openapi_tool.
100+
* Updated evaluation functions to be asynchronous.
101+
102+
### Bug Fixes
103+
104+
* Ensured a unique ID is generated for every event.
105+
* Fixed the issue when openapi_specparser has parameter.required as None.
106+
* Updated the 'type' value on the items/properties nested structures for Anthropic models to adhere to JSON schema.
107+
* Fix litellm error issues.
108+
109+
### Miscellaneous Chores
110+
111+
* Regenerated API docs.
112+
* Created a `developer` folder and added samples.
113+
* Updated the contributing guide.
114+
* Docstring improvements, typo fixings, GitHub action to enforce code styles on formatting and imports, etc.
115+
116+
## 0.4.0
117+
118+
### ⚠ BREAKING CHANGES
119+
* Set the max size of strings in database columns. MySQL mandates that all VARCHAR-type fields must specify their lengths.
120+
* Extract content encode/decode logic to a shared util, resolve issues with JSON serialization, and update key length for DB table to avoid key too long issue in mysql.
121+
* Enhance `FunctionTool` to verify if the model is providing all the mandatory arguments.
122+
123+
### Features
124+
* Update ADK setup guide to improve onboarding experience.
125+
* feat: add ordering to recent events in database session service.
126+
* feat(llm_flows): support async before/after tool callbacks.
127+
* feat: Added --replay and --resume options to adk run cli. Check adk run --help for more details.
128+
* Created a new Integration Connector Tool (underlying of the ApplicationIntegrationToolSet) so that we do not force LLM to provide default value.
129+
130+
### Bug Fixes
131+
132+
* Don't send content with empty text to LLM.
133+
* Fix google search reading undefined for `renderedContent`.
134+
135+
### Miscellaneous Chores
136+
* Docstring improvements, typo fixings, github action to enfore code styles on formatting and imports, etc.
137+
3138
## 0.3.0
4139

5140
### ⚠ BREAKING CHANGES
6141

7142
* Auth: expose `access_token` and `refresh_token` at top level of auth
8-
credentails, instead of a `dict`
143+
credentials, instead of a `dict`
9144
([commit](https://github.com/google/adk-python/commit/956fb912e8851b139668b1ccb8db10fd252a6990)).
10145

11146
### Features
@@ -28,7 +163,7 @@
28163

29164
### Miscellaneous Chores
30165

31-
* README.md impprovements.
166+
* README.md improvements.
32167
* Various code improvements.
33168
* Various typo fixes.
34169
* Bump min version of google-genai to 1.11.0.
@@ -86,4 +221,4 @@
86221
* Built-in evaluation support
87222
* Development UI that makes local development easy
88223
* Deploy to Google Cloud Run, Agent Engine
89-
* (Experimental) Live(Bidi) auido/video agent support and Compositional Function Calling(CFC) support
224+
* (Experimental) Live(Bidi) audio/video agent support and Compositional Function Calling(CFC) support

0 commit comments

Comments
 (0)
0