Commit Graph
561 Commits
Author SHA1 Message Date
Xiang (Sean) ZhouandCopybara-Service 29e4ca9152 chore: Add empty a2a package
PiperOrigin-RevId: 770851838
2025-06-12 17:07:05 -07:00
Xiang (Sean) ZhouandCopybara-Service 4ccda99e8e fix: Merge custom http options with adk specific http options in model api request
PiperOrigin-RevId: 770836112
2025-06-12 16:20:31 -07:00
GenkiNoguchiandCopybara-Service d22920bd7f feat: support realtime input config
Merge https://github.com/google/adk-python/pull/981

issue: https://github.com/google/adk-python/issues/982

This pull request introduces a new configuration option, `realtime_input_config`, to the `RunConfig` class.

**Reason for this change:**

Currently, there is no direct way to configure real-time audio input behaviors, such as Voice Activity Detection (VAD), for live agents through the `RunConfig`. The Gemini API documentation (specifically [Configure automatic VAD](https://ai.google.dev/gemini-api/docs/live#configure-automatic-vad)) outlines parameters for VAD that users may want to customize.

This change enables users to pass these real-time input configurations, providing more granular control over the audio input for live agents.

**Changes made:**

- Added a new optional field `realtime_input_config: Optional[types.RealtimeInputConfig]` to the `RunConfig` class.
- The docstring for `realtime_input_config` has been added to explain its purpose.

**Example Usage (Conceptual):**

While the specific structure of `types.RealtimeInputConfig` would define the exact parameters, a user might configure it like this:

```python
# (Assuming types.RealtimeInputConfig and types.VadConfig are defined elsewhere)
# import your_project.types as types

run_config = RunConfig(
    # ... other configurations ...
    realtime_input_config=types.RealtimeInputConfig(
        automatic_activity_detection =types.AutomaticActivityDetection(
            # VAD specific parameters like sensitivity, endpoint_duration_millis etc.
            # based on https://ai.google.dev/gemini-api/docs/live#configure-automatic-vad
        )
        # Potentially other real-time input settings could be added here in the future
    )
)
COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/981 from ammmr:patch-add-realtime-input-config b2e17fbf5742d264029ad49bf632422b5c5b1e0a
PiperOrigin-RevId: 770797640
2025-06-12 14:33:05 -07:00
Google Team MemberandCopybara-Service 2ff9b1f639 test: Add unit tests for execute_sql tool
This change introduces unit tests in which the behavior of the tool is asserted for various query types in various write modes through a mocked BigQuery client.

PiperOrigin-RevId: 770653117
2025-06-12 07:52:41 -07:00
Google Team MemberandCopybara-Service 0a5cf45a75 feat: Implement GcsEvalSetResultsManager to handle storage of eval sets on GCS, and refactor eval set results manager
Eval results will be stored as json files under `gs://{bucket_name}/{app_name}/evals/eval_history/`

PiperOrigin-RevId: 770499242
2025-06-11 23:41:54 -07:00
Google Team MemberandCopybara-Service 1551bd4f4d feat: Re-factor some eval sets manager logic, and implement GcsEvalSetsManager to handle storage of eval sets on GCS
Eval sets will be stored as json files under `gs://{bucket_name}/{app_name}/evals/eval_sets/`

PiperOrigin-RevId: 770487129
2025-06-11 23:02:53 -07:00
Koichi ShiraishiandCopybara-Service bbceb4f2e8 fix: remove unnecessary double quote on Claude docstring
Merge https://github.com/google/adk-python/pull/1266

Subject says it all.

COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/1266 from zchee:fix-docstring b5ceacc82b45398e9421c0f9a1a4d6352d12e21a
PiperOrigin-RevId: 770478088
2025-06-11 22:33:07 -07:00
Wei Sun (Jack)andCopybara-Service b08bdbcd7f chore: Fixes the sample of example_tool
The `Example` objects should be strong typed.

PiperOrigin-RevId: 770476132
2025-06-11 22:27:25 -07:00
Shangjie ChenandCopybara-Service fc65873d7c chore: Set agent_engine_id in the service constructor, also use the agent_engine_id field instead of overriding app_name in FastAPI endpoint
PiperOrigin-RevId: 770427903
2025-06-11 19:46:25 -07:00
Wei Sun (Jack)andCopybara-Service a7ea374dfb chore: Update isort config to prevent vscode flickering
PiperOrigin-RevId: 770406033
2025-06-11 18:25:35 -07:00
Wei Sun (Jack)andCopybara-Service f46b73b0cb chore: Bump version number and update changelog for 1.3.0 release
PiperOrigin-RevId: 770362588
v1.3.0
2025-06-11 16:12:40 -07:00
Liang WuandCopybara-Service b2f319f440 chore: move README to parent folder contributing/
Based on the content, seems like it belongs to contributing/.

PiperOrigin-RevId: 770322600
2025-06-11 14:32:03 -07:00
Yeesian NgandCopybara-Service 0c4054200f fix: Handle project and location in the .env properly when deploying to Agent Engine
PiperOrigin-RevId: 770161930
2025-06-11 08:29:01 -07:00
Liang WuandCopybara-Service c9e265551a test: add assert statements in hello_world agent main.py
They will check the states of the agent after each die roll.

PiperOrigin-RevId: 769949096
2025-06-10 21:35:36 -07:00
Shangjie ChenandCopybara-Service 416dc6feed feat: add memory_service option to CLI
chore: consolidate ADK service CLI options

PiperOrigin-RevId: 769944881
2025-06-10 21:22:14 -07:00
Yifan WangandCopybara-Service 9df3f725bd chore: update adk-web to use latest
PiperOrigin-RevId: 769879742
2025-06-10 17:52:32 -07:00
Google Team MemberandCopybara-Service 6c999caa41 feat: Introduce write protected mode to BigQuery tools
This allows to protect against any write operations (e.g. update or delete a table), useful for some agents that must only be used in a read-only mode, while the user may have write permissions.

PiperOrigin-RevId: 769803741
2025-06-10 14:37:24 -07:00
Xiang (Sean) ZhouandCopybara-Service 77f44a4e45 refactor: remove the examples filed of LlmAgent which are no longer needed after migrating to example tool
PiperOrigin-RevId: 769757803
2025-06-10 12:55:48 -07:00
Ariz ChangandCopybara-Service 484b33ef10 chore: add rag agent for testing
PiperOrigin-RevId: 769683091
2025-06-10 10:10:55 -07:00
Yeesian NgandCopybara-Service aaf1f9b930 feat: Add support for display_name and description when deploying to agent engine
PiperOrigin-RevId: 769674731
2025-06-10 09:53:40 -07:00
Google Team MemberandCopybara-Service 8e438f2752 refactor: Extract out platform specific code like threading
PiperOrigin-RevId: 769655650
2025-06-10 09:05:56 -07:00
Xiang (Sean) ZhouandCopybara-Service fa110c22f2 chore: refine doc string of global_instruction
PiperOrigin-RevId: 769650108
2025-06-10 08:48:43 -07:00
Wei Sun (Jack)andCopybara-Service 088200072f chore: Adds decorators to mark classes or fucntions as working_in_progress or experimental
User will see warning if they instantiate such class or call such functions.

PiperOrigin-RevId: 769413048
2025-06-09 20:23:36 -07:00
Ariz ChangandCopybara-Service bf47a8bf7d fix: hide new eval metric behind flag
PiperOrigin-RevId: 769339396
2025-06-09 16:27:35 -07:00
Yongsul KimandCopybara-Service cf5d7016a0 fix: Remove display_name for non-Vertex file uploads
Merge https://github.com/google/adk-python/pull/1211

### Description

When using the Google.GenAI backend (GEMINI_API), file uploads fail if the `file_data` or `inline_data` parts of the request contain a `display_name`. The Gemini API (non-Vertex) does not support this attribute, causing a `ValueError`.

This commit updates the `_preprocess_request` method in the `Gemini` class to sanitize the request. It now iterates through all content parts and sets `display_name` to `None` if the determined backend is `GEMINI_API`. This ensures compatibility, similar to the existing handling of the `labels` attribute.

Fixes #1182

### Testing Plan

**1. Unit Tests**

- Added a new parameterized test `test_preprocess_request_handles_backend_specific_fields` to `tests/unittests/models/test_google_llm.py`.
- This test verifies:
  - When the backend is `GEMINI_API`, `display_name` in `file_data` and `inline_data` is correctly set to `None`.
  - When the backend is `VERTEX_AI`, `display_name` remains unchanged.
- All unit tests passed successfully.

```shell
pytest ./tests/unittests/models/test_google_llm.py                                    ░▒▓ ✔  adk-python   base   system   21:14:02 
============================================================================================ test session starts ============================================================================================
platform darwin -- Python 3.12.10, pytest-8.3.5, pluggy-1.6.0
rootdir: /Users/leo/PycharmProjects/adk-python
configfile: pyproject.toml
plugins: anyio-4.9.0, langsmith-0.3.42, asyncio-0.26.0, mock-3.14.0, xdist-3.6.1
asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function
collected 20 items

tests/unittests/models/test_google_llm.py ....................                                                                                                                                        [100%]

============================================================================================ 20 passed in 3.19s =============================================================================================
```

**2. Manual End-to-End (E2E) Test**
I manually verified the fix using `adk web`. The test was configured to use a **Google AI Studio API key**, which is the scenario where the bug occurs.

- **Before the fix:**
  When uploading a file, the request failed with the error: `{"error": "display_name parameter is not supported in Gemini API."}`. This confirms the bug.

<img width="968" alt="Screenshot 2025-06-06 at 21 22 35" src="https://github.com/user-attachments/assets/f1ab2db2-d5ec-40fc-a182-9932562b21e1" />

- **After the fix:**
  With the patch applied, the same file upload was processed successfully. The agent correctly analyzed the file and responded without errors.

<img width="973" alt="Screenshot 2025-06-06 at 21 23 24" src="https://github.com/user-attachments/assets/e03228f6-0b7d-4bf9-955a-ac24efb4fb72" />

COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/1211 from ystory:fix/display-name d3efebe74aca635a7a255063e64f07cc44016f05
PiperOrigin-RevId: 769278445
2025-06-09 13:48:02 -07:00