Skip to content

Commit d7af24d

Browse files
authored
Merge branch 'google:main' into main
2 parents 43c1cc2 + 7c670f6 commit d7af24d

File tree

131 files changed

+12601
-881
lines changed

Some content is hidden

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

131 files changed

+12601
-881
lines changed

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,19 @@ jobs:
4343
run: |
4444
uv venv .venv
4545
source .venv/bin/activate
46-
uv sync --extra test --extra eval
46+
uv sync --extra test --extra eval --extra a2a
4747
4848
- name: Run unit tests with pytest
4949
run: |
5050
source .venv/bin/activate
51-
pytest tests/unittests \
52-
--ignore=tests/unittests/artifacts/test_artifact_service.py \
53-
--ignore=tests/unittests/tools/google_api_tool/test_googleapi_to_openapi_converter.py
51+
if [[ "${{ matrix.python-version }}" == "3.9" ]]; then
52+
pytest tests/unittests \
53+
--ignore=tests/unittests/a2a \
54+
--ignore=tests/unittests/tools/mcp_tool \
55+
--ignore=tests/unittests/artifacts/test_artifact_service.py \
56+
--ignore=tests/unittests/tools/google_api_tool/test_googleapi_to_openapi_converter.py
57+
else
58+
pytest tests/unittests \
59+
--ignore=tests/unittests/artifacts/test_artifact_service.py \
60+
--ignore=tests/unittests/tools/google_api_tool/test_googleapi_to_openapi_converter.py
61+
fi

.github/workflows/triage.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: ADK Issue Triaging Agent
2+
3+
on:
4+
issues:
5+
types: [opened, reopened]
6+
schedule:
7+
- cron: '0 */6 * * *' # every 6h
8+
9+
jobs:
10+
agent-triage-issues:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
issues: write
14+
contents: read
15+
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v4
19+
20+
- name: Set up Python
21+
uses: actions/setup-python@v5
22+
with:
23+
python-version: '3.11'
24+
25+
- name: Install dependencies
26+
run: |
27+
python -m pip install --upgrade pip
28+
pip install requests google-adk
29+
30+
- name: Run Triaging Script
31+
env:
32+
GITHUB_TOKEN: ${{ secrets.ADK_TRIAGE_AGENT }}
33+
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
34+
GOOGLE_GENAI_USE_VERTEXAI: 0
35+
OWNER: 'google'
36+
REPO: 'adk-python'
37+
INTERACTIVE: 0
38+
EVENT_NAME: ${{ github.event_name }} # 'issues', 'schedule', etc.
39+
ISSUE_NUMBER: ${{ github.event.issue.number }}
40+
ISSUE_TITLE: ${{ github.event.issue.title }}
41+
ISSUE_BODY: ${{ github.event.issue.body }}
42+
ISSUE_COUNT_TO_PROCESS: '3' # Process 3 issues at a time on schedule
43+
run: python contributing/samples/adk_triaging_agent/main.py

CHANGELOG.md

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

3+
## [1.4.2](https://github.com/google/adk-python/compare/v1.4.1...v1.4.2) (2025-06-20)
4+
5+
6+
### Bug Fixes
7+
8+
* Add type checking to handle different response type of genai API client ([4d72d31](https://github.com/google/adk-python/commit/4d72d31b13f352245baa72b78502206dcbe25406))
9+
* This fixes the broken VertexAiSessionService
10+
* Allow more credentials types for BigQuery tools ([2f716ad](https://github.com/google/adk-python/commit/2f716ada7fbcf8e03ff5ae16ce26a80ca6fd7bf6))
11+
12+
## [1.4.1](https://github.com/google/adk-python/compare/v1.3.0...v1.4.1) (2025-06-18)
13+
14+
15+
### Features
16+
17+
* Add Authenticated Tool (Experimental) ([dcea776](https://github.com/google/adk-python/commit/dcea7767c67c7edfb694304df32dca10b74c9a71))
18+
* Add enable_affective_dialog and proactivity to run_config and llm_request ([fe1d5aa](https://github.com/google/adk-python/commit/fe1d5aa439cc56b89d248a52556c0a9b4cbd15e4))
19+
* Add import session API in the fast API ([233fd20](https://github.com/google/adk-python/commit/233fd2024346abd7f89a16c444de0cf26da5c1a1))
20+
* Add integration tests for litellm with and without turning on add_function_to_prompt ([8e28587](https://github.com/google/adk-python/commit/8e285874da7f5188ea228eb4d7262dbb33b1ae6f))
21+
* Allow data_store_specs pass into ADK VAIS built-in tool ([675faef](https://github.com/google/adk-python/commit/675faefc670b5cd41991939fe0fc604df331111a))
22+
* Enable MCP Tool Auth (Experimental) ([157d9be](https://github.com/google/adk-python/commit/157d9be88d92f22320604832e5a334a6eb81e4af))
23+
* Implement GcsEvalSetResultsManager to handle storage of eval sets on GCS, and refactor eval set results manager ([0a5cf45](https://github.com/google/adk-python/commit/0a5cf45a75aca7b0322136b65ca5504a0c3c7362))
24+
* Re-factor some eval sets manager logic, and implement GcsEvalSetsManager to handle storage of eval sets on GCS ([1551bd4](https://github.com/google/adk-python/commit/1551bd4f4d7042fffb497d9308b05f92d45d818f))
25+
* Support real time input config ([d22920b](https://github.com/google/adk-python/commit/d22920bd7f827461afd649601326b0c58aea6716))
26+
* Support refresh access token automatically for rest_api_tool ([1779801](https://github.com/google/adk-python/commit/177980106b2f7be9a8c0a02f395ff0f85faa0c5a))
27+
28+
### Bug Fixes
29+
30+
* Fix Agent generate config err ([#1305](https://github.com/google/adk-python/issues/1305)) ([badbcbd](https://github.com/google/adk-python/commit/badbcbd7a464e6b323cf3164d2bcd4e27cbc057f))
31+
* Fix Agent generate config error ([#1450](https://github.com/google/adk-python/issues/1450)) ([694b712](https://github.com/google/adk-python/commit/694b71256c631d44bb4c4488279ea91d82f43e26))
32+
* Fix liteLLM test failures ([fef8778](https://github.com/google/adk-python/commit/fef87784297b806914de307f48c51d83f977298f))
33+
* Fix tracing for live ([58e07ca](https://github.com/google/adk-python/commit/58e07cae83048d5213d822be5197a96be9ce2950))
34+
* Merge custom http options with adk specific http options in model api request ([4ccda99](https://github.com/google/adk-python/commit/4ccda99e8ec7aa715399b4b83c3f101c299a95e8))
35+
* Remove unnecessary double quote on Claude docstring ([bbceb4f](https://github.com/google/adk-python/commit/bbceb4f2e89f720533b99cf356c532024a120dc4))
36+
* Set explicit project in the BigQuery client ([6d174eb](https://github.com/google/adk-python/commit/6d174eba305a51fcf2122c0fd481378752d690ef))
37+
* Support streaming in litellm + adk and add corresponding integration tests ([aafa80b](https://github.com/google/adk-python/commit/aafa80bd85a49fb1c1a255ac797587cffd3fa567))
38+
* Support project-based gemini model path to use google_search_tool ([b2fc774](https://github.com/google/adk-python/commit/b2fc7740b363a4e33ec99c7377f396f5cee40b5a))
39+
* Update conversion between Celsius and Fahrenheit ([1ae176a](https://github.com/google/adk-python/commit/1ae176ad2fa2b691714ac979aec21f1cf7d35e45))
40+
41+
### Chores
42+
43+
* Set `agent_engine_id` in the VertexAiSessionService constructor, also use the `agent_engine_id` field instead of overriding `app_name` in FastAPI endpoint ([fc65873](https://github.com/google/adk-python/commit/fc65873d7c31be607f6cd6690f142a031631582a))
44+
45+
46+
47+
## [1.3.0](https://github.com/google/adk-python/compare/v1.2.1...v1.3.0) (2025-06-11)
48+
49+
50+
### Features
51+
52+
* Add memory_service option to CLI ([416dc6f](https://github.com/google/adk-python/commit/416dc6feed26e55586d28f8c5132b31413834c88))
53+
* Add support for display_name and description when deploying to agent engine ([aaf1f9b](https://github.com/google/adk-python/commit/aaf1f9b930d12657bfc9b9d0abd8e2248c1fc469))
54+
* Dev UI: Trace View
55+
* New trace tab which contains all traces grouped by user messages
56+
* Click each row will open corresponding event details
57+
* Hover each row will highlight the corresponding message in dialog
58+
* Dev UI: Evaluation
59+
* Evaluation Configuration: users can now configure custom threshold for the metrics used for each eval run ([d1b0587](https://github.com/google/adk-python/commit/d1b058707eed72fd4987d8ec8f3b47941a9f7d64))
60+
* Each eval case added can now be viewed and edited. Right now we only support edit of text.
61+
* Show the used metric in evaluation history ([6ed6351](https://github.com/google/adk-python/commit/6ed635190c86d5b2ba0409064cf7bcd797fd08da))
62+
* Tool enhancements:
63+
* Add url_context_tool ([fe1de7b](https://github.com/google/adk-python/commit/fe1de7b10326a38e0d5943d7002ac7889c161826))
64+
* Support to customize timeout for mcpstdio connections ([54367dc](https://github.com/google/adk-python/commit/54367dcc567a2b00e80368ea753a4fc0550e5b57))
65+
* Introduce write protected mode to BigQuery tools ([6c999ca](https://github.com/google/adk-python/commit/6c999caa41dca3a6ec146ea42b0a794b14238ec2))
66+
67+
68+
69+
### Bug Fixes
70+
71+
* Agent Engine deployment:
72+
* Correct help text formatting for `adk deploy agent_engine` ([13f98c3](https://github.com/google/adk-python/commit/13f98c396a2fa21747e455bb5eed503a553b5b22))
73+
* Handle project and location in the .env properly when deploying to Agent Engine ([0c40542](https://github.com/google/adk-python/commit/0c4054200fd50041f0dce4b1c8e56292b99a8ea8))
74+
* Fix broken agent graphs ([3b1f2ae](https://github.com/google/adk-python/commit/3b1f2ae9bfdb632b52e6460fc5b7c9e04748bd50))
75+
* Forward `__annotations__` to the fake func for FunctionTool inspection ([9abb841](https://github.com/google/adk-python/commit/9abb8414da1055ab2f130194b986803779cd5cc5))
76+
* Handle the case when agent loading error doesn't have msg attribute in agent loader ([c224626](https://github.com/google/adk-python/commit/c224626ae189d02e5c410959b3631f6bd4d4d5c1))
77+
* Prevent agent_graph.py throwing when workflow agent is root agent ([4b1c218](https://github.com/google/adk-python/commit/4b1c218cbe69f7fb309b5a223aa2487b7c196038))
78+
* Remove display_name for non-Vertex file uploads ([cf5d701](https://github.com/google/adk-python/commit/cf5d7016a0a6ccf2b522df6f2d608774803b6be4))
79+
80+
81+
### Documentation
82+
83+
* Add DeepWiki badge to README ([f38c08b](https://github.com/google/adk-python/commit/f38c08b3057b081859178d44fa2832bed46561a9))
84+
* Update code example in tool declaration to reflect BigQuery artifact description ([3ae6ce1](https://github.com/google/adk-python/commit/3ae6ce10bc5a120c48d84045328c5d78f6eb85d4))
85+
86+
387
## [1.2.1](https://github.com/google/adk-python/compare/v1.2.0...v1.2.1) (2025-06-04)
488

589

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This folder host resources for ADK contributors, for example, testing samples etc.
44

5-
# Samples
5+
## Samples
66

77
Samples folder host samples to test different features. The samples are usually minimal and simplistic to test one or a few scenarios.
88

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# ADK Issue Triaging Assistant
2+
3+
The ADK Issue Triaging Assistant is a Python-based agent designed to help manage and triage GitHub issues for the `google/adk-python` repository. It uses a large language model to analyze new and unlabelled issues, recommend appropriate labels based on a predefined set of rules, and apply them.
4+
5+
This agent can be operated in two distinct modes: an interactive mode for local use or as a fully automated GitHub Actions workflow.
6+
7+
---
8+
9+
## Interactive Mode
10+
11+
This mode allows you to run the agent locally to review its recommendations in real-time before any changes are made to your repository's issues.
12+
13+
### Features
14+
* **Web Interface**: The agent's interactive mode can be rendered in a web browser using the ADK's `adk web` command.
15+
* **User Approval**: In interactive mode, the agent is instructed to ask for your confirmation before applying a label to a GitHub issue.
16+
17+
### Running in Interactive Mode
18+
To run the agent in interactive mode, first set the required environment variables. Then, execute the following command in your terminal:
19+
20+
```bash
21+
adk web
22+
```
23+
This will start a local server and provide a URL to access the agent's web interface in your browser.
24+
25+
---
26+
27+
## GitHub Workflow Mode
28+
29+
For automated, hands-off issue triaging, the agent can be integrated directly into your repository's CI/CD pipeline using a GitHub Actions workflow.
30+
31+
### Workflow Triggers
32+
The GitHub workflow is configured to run on specific triggers:
33+
34+
1. **Issue Events**: The workflow executes automatically whenever a new issue is `opened` or an existing one is `reopened`.
35+
36+
2. **Scheduled Runs**: The workflow also runs on a recurring schedule (every 6 hours) to process any unlabelled issues that may have been missed.
37+
38+
### Automated Labeling
39+
When running as part of the GitHub workflow, the agent operates non-interactively. It identifies the best label and applies it directly without requiring user approval. This behavior is configured by setting the `INTERACTIVE` environment variable to `0` in the workflow file.
40+
41+
### Workflow Configuration
42+
The workflow is defined in a YAML file (`.github/workflows/triage.yml`). This file contains the steps to check out the code, set up the Python environment, install dependencies, and run the triaging script with the necessary environment variables and secrets.
43+
44+
---
45+
46+
## Setup and Configuration
47+
48+
Whether running in interactive or workflow mode, the agent requires the following setup.
49+
50+
### Dependencies
51+
The agent requires the following Python libraries.
52+
53+
```bash
54+
pip install --upgrade pip
55+
pip install google-adk requests
56+
```
57+
58+
### Environment Variables
59+
The following environment variables are required for the agent to connect to the necessary services.
60+
61+
* `GITHUB_TOKEN`: **(Required)** A GitHub Personal Access Token with `issues:write` permissions. Needed for both interactive and workflow modes.
62+
* `GOOGLE_API_KEY`: **(Required)** Your API key for the Gemini API. Needed for both interactive and workflow modes.
63+
* `OWNER`: The GitHub organization or username that owns the repository (e.g., `google`). Needed for both modes.
64+
* `REPO`: The name of the GitHub repository (e.g., `adk-python`). Needed for both modes.
65+
* `INTERACTIVE`: Controls the agent's interaction mode. For the automated workflow, this is set to `0`. For interactive mode, it should be set to `1` or left unset.
66+
67+
For local execution in interactive mode, you can place these variables in a `.env` file in the project's root directory. For the GitHub workflow, they should be configured as repository secrets.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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+
from . import agent

0 commit comments

Comments
 (0)