Commit Graph
88 Commits
Author SHA1 Message Date
Wei Sun (Jack)andCopybara-Service 53803522b6 refactor(config): Makes BaseAgent.from_config a final method and let sub-class to optionally override _parse_config to update kwargs if needed
This ensures that the pydantic hooks (e.g. model_validators) are triggered correctly.

PiperOrigin-RevId: 791545704
2025-08-05 23:53:25 -07:00
Wei Sun (Jack)andCopybara-Service 8ef2177658 test: Fixes adk cli options and method parameters mismatching and adds a unit test for future proof checking
The test will fail if `@option` list and method parameter don't match.

Future proof test for #2328

PiperOrigin-RevId: 791022512
2025-08-04 21:08:57 -07:00
Wei Sun (Jack)andCopybara-Service e41dbccf7f fix(cli): Fixes adk deploy cloud_run cli
Fixes #2328

PiperOrigin-RevId: 790775592
2025-08-04 09:16:26 -07:00
Wei Sun (Jack)andCopybara-Service 2bb20411f4 feat(config): Adds BaseAgent.config_type field to indicate the config for the current agent and removes if-else branches against LlmAgent/LoopAgent/... in config_agent_utils::from_config
This makes the logic work with any user-defined agent with user-defined XxxAgentConfig.

PiperOrigin-RevId: 789845354
2025-08-01 12:02:07 -07:00
Wei Sun (Jack)andCopybara-Service 0ccbf6f2f8 chore: Bump version and update CHANGELOG for v1.9.0
PiperOrigin-RevId: 789494584
2025-07-31 15:34:18 -07:00
Wei Sun (Jack)andCopybara-Service ec7d9b0ff6 chore(config): Moves agent configs to separate python files
PiperOrigin-RevId: 787245794
2025-07-25 14:40:49 -07:00
Wei Sun (Jack)andCopybara-Service a3ff21eb0b feat(config): Adds CustomAgentConfig to support user-defined agents in config
PiperOrigin-RevId: 787148485
2025-07-25 09:56:10 -07:00
Wei Sun (Jack)andCopybara-Service 2aab1cf98e fix: allows current sub-agent to finish execution before exiting the loop agent due to a sub-agent's escalation. This commit also disables the summarization for exit_loop tool
Fixes #423

Related to #1670

- This avoids the `GeneratorExit` error thrown, which would crash OTel metric collection and cause `Failed to detach context` error.
- This also allows all function  calls are processed when exit_loop is called together with other tools in the same LLmResponse.

A sample agent for testing:

```
from google.adk import Agent
from google.adk.agents.loop_agent import LoopAgent
from google.adk.tools.exit_loop_tool import exit_loop

worker_1 = Agent(
    name='worker_1',
    description='Worker 1',
    instruction="""\
Just say job #1 is done.

If job #1 is said to be done. Call exit_loop tool.""",
    tools=[exit_loop],
)

worker_2 = Agent(
    name='worker_2',
    description='Worker 2',
    instruction="""\
Just say job #2 is done.

If job #2 is said to be done. Call exit_loop tool.""",
    tools=[exit_loop],
)

work_agent = LoopAgent(
    name='work_agent',
    description='Do all work.',
    sub_agents=[worker_1, worker_2],
    max_iterations=5,
)

root_agent = Agent(
    model='gemini-2.0-flash',
    name='hello_world_agent',
    description='hello world agent that can roll a  check prime',
    instruction="""Hand off works to sub agents.""",
    sub_agents=[work_agent],
)
```
PiperOrigin-RevId: 785538101
2025-07-21 12:43:19 -07:00
Wei Sun (Jack)andCopybara-Service bb4ff2cc3d chore: fixes formatting in adk_project_overview_and_architecture.md
PiperOrigin-RevId: 784371131
2025-07-17 17:21:14 -07:00
Wei Sun (Jack)andCopybara-Service b1f4aebb25 chore: lint fixings in vertex_ai_memory_bank.py
* Adds type hints;
* Switches to lazy evaluation in logs.

PiperOrigin-RevId: 784353566
2025-07-17 16:21:49 -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
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
2025-06-11 16:12:40 -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
Wei Sun (Jack)andCopybara-Service be7120831a chore: Adds apache headers for samples
PiperOrigin-RevId: 768583464
2025-06-07 15:46:46 -07:00
Wei Sun (Jack)andCopybara-Service a09781142a chore: Removes LlmAgent.examples field, which was already abandoned before 0.1 version
For context: tools/example_tool.py was created to replace LlmAgent.example

Also removes relevant usage in tests.

PiperOrigin-RevId: 768193042
2025-06-06 13:17:10 -07:00
Wei Sun (Jack)andCopybara-Service 9abb8414da fix: Forwards __annotations__ to the fake func for FunctionTool inspection
PiperOrigin-RevId: 767926726
2025-06-05 23:07:24 -07:00
Wei Sun (Jack)andCopybara-Service 4b1c218cbe fix: Prevent agent_graph.py throwing when workflow agent is root agent
Partial fix for https://github.com/google/adk-python/issues/1170

TODOs:
- UI rendering still has issue to match the event with the correct agent.
- graph building needs further fix when there is a workflow agent in the tree.
PiperOrigin-RevId: 767711701
2025-06-05 12:15:14 -07:00
Wei Sun (Jack)andCopybara-Service b1898890ca chore: format .gitignore.
PiperOrigin-RevId: 766390804
2025-06-03 16:54:49 -07:00
Wei Sun (Jack)andCopybara-Service 18fbe3cbfc docs: Adds a sample agent to illustrate state usage via callbacks.
PiperOrigin-RevId: 764981675
2025-05-29 19:30:44 -07:00
Wei Sun (Jack)andCopybara-Service 4214c7eddd chore: auto-format files.
PiperOrigin-RevId: 764980009
2025-05-29 19:24:16 -07:00
Wei Sun (Jack)andCopybara-Service 04e07b4a14 docs: updates CONTRIBUTING.md to refine setup process using uv.
PiperOrigin-RevId: 764974667
2025-05-29 19:03:22 -07:00
Wei Sun (Jack)andCopybara-Service a9dcc588ad ADK changes
PiperOrigin-RevId: 764820494
2025-05-29 12:10:41 -07:00
Wei Sun (Jack)andCopybara-Service 97bf28bad6 chore: Adds --version to adk cli.
Sample:

```
-> % adk --version
adk, version 1.0.0
```

Help with https://github.com/google/adk-python/issues/832

PiperOrigin-RevId: 764297949
2025-05-28 09:37:23 -07:00
Wei Sun (Jack)andCopybara-Service 46282eeb0d chore: Don't add prompt about parent agent when disallow_transfer_to_parent=True
Fixes https://github.com/google/adk-python/issues/844

PiperOrigin-RevId: 764116180
2025-05-27 23:41:30 -07:00
Wei Sun (Jack)andCopybara-Service f4c7d788b0 fix: build_graph is not awaited.
Fixes https://github.com/google/adk-python/issues/927

PiperOrigin-RevId: 764113488
2025-05-27 23:32:21 -07:00
Wei Sun (Jack)andCopybara-Service 16d9696012 fix: avoid duplicating log in stderr.
This was introduced to work around google-auth kills all logs via `google` root logging namespace. Given we're now using `google_adk` as root logging namesapce, we don't need additional Stream log handler now.

PiperOrigin-RevId: 763924531
2025-05-27 13:28:00 -07:00
Wei Sun (Jack)andCopybara-Service 19ca61d241 fix: model_config is misplaced for EvalMetricResultPerInvocation.
PiperOrigin-RevId: 763648920
2025-05-26 23:50:05 -07:00
Wei Sun (Jack)andCopybara-Service d43c80b718 chore: updates mypy config in pyproject.toml.
1. Use non-strict as starting point;
2. Apply python_version to 3.9.
3. Sets `follow_imports` to skip.

PiperOrigin-RevId: 763553672
2025-05-26 17:25:48 -07:00
Wei Sun (Jack)andCopybara-Service 6b89ceb49a fix: mutable object cannot be default value in parameter.
PiperOrigin-RevId: 763479612
2025-05-26 11:32:07 -07:00
Wei Sun (Jack)andCopybara-Service b9b2c3fb54 chore: Adds autoformat.sh for formatting codebase.
PiperOrigin-RevId: 762301862
2025-05-23 00:41:18 -07:00
Wei Sun (Jack)andCopybara-Service fe618c3d93 chore: use relative import in google_api_toolsets.py. Adds open source header for base_toolset.py
PiperOrigin-RevId: 762042799
2025-05-22 11:13:57 -07:00
Wei Sun (Jack)andCopybara-Service a63ea2735c chore: Removes unused import.
PiperOrigin-RevId: 762039696
2025-05-22 11:05:45 -07:00
Wei Sun (Jack)andCopybara-Service e0851a1e57 chore: batch organize imports.
PiperOrigin-RevId: 761824628
2025-05-21 23:40:47 -07:00
Wei Sun (Jack)andCopybara-Service 1773cdab96 chore: Batch organize imports with isort.
Command: `isort /src`
PiperOrigin-RevId: 761644934
2025-05-21 13:23:32 -07:00
Wei Sun (Jack)andCopybara-Service bb00c9519d chore: Adds link to Java ADK in README.md
PiperOrigin-RevId: 761162478
2025-05-20 11:30:45 -07:00
Wei Sun (Jack)andCopybara-Service 5115474f2b chore!: bump version to 1.0.0, updated changelog.md and removed src/google/adk/tools/built_in_code_execution_tool.py
Mark src/google/adk/tools/_built_in_code_execution_tool.py as private and will be fully removed soon.

PiperOrigin-RevId: 760889060
2025-05-19 20:31:27 -07:00
Wei Sun (Jack)andCopybara-Service 3f21a52853 chore: Fixes the main.py for memory/agent.py sample.
PiperOrigin-RevId: 760741263
2025-05-19 13:08:57 -07:00
Wei Sun (Jack)andCopybara-Service ae7d19a4c6 chore: Moves toolbox-core to extensions extra dependency.
PiperOrigin-RevId: 760722343
2025-05-19 12:15:55 -07:00
Wei Sun (Jack)andCopybara-Service 9932015f3b chore: Makes --host backward compatible for cloud_run deploy. --host only available after 0.5.0.
PiperOrigin-RevId: 760681697
2025-05-19 10:35:05 -07:00
Wei Sun (Jack)andCopybara-Service 9e767b3fe1 chore: Creates a sample main.py to demonstrate how to use adk as a library for the workflow agent in docs.
For Issue #573.

PiperOrigin-RevId: 760380509
2025-05-18 16:17:16 -07:00
Wei Sun (Jack)andCopybara-Service e278ca9541 chore: Refines mcp_agent instruction to include the allowed folder in the instruction.
PiperOrigin-RevId: 760057162
2025-05-17 12:57:11 -07:00
Wei Sun (Jack)andCopybara-Service 9324801b75 chore: Fixes test_fast_api.py (part I for circular deps).
It still fails due to signal used not in main thread. It will be fixed later.

PiperOrigin-RevId: 760050504
2025-05-17 12:22:04 -07:00
Wei Sun (Jack)andCopybara-Service f592de4cc0 chore: constructor shouldn't have return type hint.
PiperOrigin-RevId: 760021373
2025-05-17 09:57:30 -07:00
Wei Sun (Jack)andCopybara-Service 57de9634de chore: Fixes unittests/tools/application_integration_tool/test_application_integration_toolset.py
PiperOrigin-RevId: 760019822
2025-05-17 09:49:35 -07:00
Wei Sun (Jack)andCopybara-Service 729001fc0b chore: logger = logging.getLogger(__name__) --> logger = logging.getLogger('google_adk.' + __name__)
PiperOrigin-RevId: 760019467
2025-05-17 09:47:55 -07:00
Wei Sun (Jack)andCopybara-Service 0d7d7918b6 chore: logger = logging.getLogger(__name__) --> logger = logging.getLogger('google_adk.' + __name__)
PiperOrigin-RevId: 759894901
2025-05-16 23:04:02 -07:00
Wei Sun (Jack)andCopybara-Service 482099c925 chore!: Sets up google_adk for top level logger namespace. Removes --log_to_tmp option in adk web and adk api_server for the same reason.
Context: google-auth commit [1] broke adk log, because it disables the top level logger named "google", which is also adk's top level logger. We establish a separate top level logger with a different name `google_adk` to prevent this in the future.

This commit only changes google_llm.py. All other files will be changed in later commits.

[1] https://github.com/googleapis/google-auth-library-python/commit/77ad53eb00c74b3badc486c8207a16dbc49f37e5#diff-e386c2b2c39b4d746c1e257f503acecbde49b1746b1a34f53b57083ed6094161

PiperOrigin-RevId: 759872317
2025-05-16 21:28:33 -07:00
Wei Sun (Jack)andCopybara-Service 021aaddf32 chore: Allows BaseAgent in the constructor of InMemoryRunner.
PiperOrigin-RevId: 759818175
2025-05-16 17:42:58 -07:00
Wei Sun (Jack)andCopybara-Service 186b5de826 chore: formats google_llm.py.
PiperOrigin-RevId: 759803357
2025-05-16 16:49:45 -07:00
Wei Sun (Jack)andCopybara-Service 03f167c1d3 chore: Adds toolbox-core to deps and fixes toolbox code error.
PiperOrigin-RevId: 759802478
2025-05-16 16:46:11 -07:00
Wei Sun (Jack)andCopybara-Service d0f117ebbc chore: call base class constructor in McpTool constructor.
PiperOrigin-RevId: 759644369
2025-05-16 09:28:15 -07:00
Wei Sun (Jack)andCopybara-Service b72573c57d chore: Adds mypy to dev extra.
PiperOrigin-RevId: 759460917
2025-05-15 22:57:54 -07:00
Wei Sun (Jack)andCopybara-Service a786f75968 Uses logs method parameter to set log level.
PiperOrigin-RevId: 759378777
2025-05-15 18:00:40 -07:00
Wei Sun (Jack)andCopybara-Service 04820cb0a7 chore: Fixes a few samples for the breaking session service change.
PiperOrigin-RevId: 759354632
2025-05-15 16:44:23 -07:00
Wei Sun (Jack)andCopybara-Service d27fe90d37 chore: fix wrong imports.
PiperOrigin-RevId: 759321579
2025-05-15 15:17:51 -07:00
Wei Sun (Jack)andCopybara-Service b67182c50f chore: Adds docstring for LlmAgent.disallow_transfer_to_parent to clarify the expected behavior.
PiperOrigin-RevId: 758676926
2025-05-14 07:36:51 -07:00
Wei Sun (Jack)andCopybara-Service 71bd808a14 Fixes: eval_result endpoint throws due to folder not existing.
PiperOrigin-RevId: 758508672
2025-05-13 22:03:38 -07:00
Wei Sun (Jack)andCopybara-Service 30947b48b8 feat(memory)!: Uses the new MemoryEntry schema for all memory related components.
BREAKING CHANGE. This commit changes all memory related interface to using the newly introduced MemoryEntry class.

PiperOrigin-RevId: 758464887
2025-05-13 19:07:11 -07:00
Wei Sun (Jack)andCopybara-Service 825f5d4f2e feat: Adds new interface for MemoryEntry.
PiperOrigin-RevId: 758448993
2025-05-13 18:01:33 -07:00
Wei Sun (Jack)andCopybara-Service d046367826 chore: Removes logging config in tools/google_api_tool/googleapi_to_openapi_converter.py.
PiperOrigin-RevId: 758436692
2025-05-13 17:16:03 -07:00
Wei Sun (Jack)andCopybara-Service 66553b18c6 chore: Treats google.adk as known_third_party in pyproject.toml for organizing imports in samples.
PiperOrigin-RevId: 758434037
2025-05-13 17:06:52 -07:00
Wei Sun (Jack)andCopybara-Service 33acb26565 chore: Bump min version for google-genai sdk to 1.13.0.
PiperOrigin-RevId: 756806752
2025-05-09 09:57:08 -07:00
Wei Sun (Jack)andCopybara-Service 28abc306c3 chore: fixes type hint in base_artifact_service.py
`pass` is not required when docstring exists.

PiperOrigin-RevId: 755413158
2025-05-06 09:58:18 -07:00
Wei Sun (Jack)andCopybara-Service dbea793cf5 chore: Updates model_config docstring to explicitly mentioning pydantic.
This is to disambiguate between pydantic model and LLM.

PiperOrigin-RevId: 754981617
2025-05-05 10:12:44 -07:00
Wei Sun (Jack)andCopybara-Service a930633fad chore: Sets single_line_exclusions to [] to be consistent with internal style guide.
PiperOrigin-RevId: 754974408
2025-05-05 09:56:27 -07:00
Wei Sun (Jack)andCopybara-Service 6595cda037 Update description of before/after_agent_callback to clarify the behavior.
PiperOrigin-RevId: 754207459
2025-05-02 18:57:50 -07:00
Wei Sun (Jack)andGitHub 3fddac5813 Merge pull request #256 from sumant-pangotra/#247-OpenAPIToolSet-Considering-Required-parameters
fix: #247 OpenAPIToolSet Parameter required field and description 

Merged in https://github.com/google/adk-python/commit/e8fb4ed3fcba1f455507c38275ee17218017a409
2025-05-02 10:47:28 -07:00
Wei Sun (Jack)andGitHub 9b52ce28f5 Merge branch 'main' into #247-OpenAPIToolSet-Considering-Required-parameters 2025-05-02 10:46:47 -07:00
Wei Sun (Jack)andGitHub f12300113d Merge branch 'main' into #247-OpenAPIToolSet-Considering-Required-parameters 2025-05-01 18:47:28 -07:00
Wei SunandCopybara-Service 23b41c3f94 Uses google's profile for isort.
PiperOrigin-RevId: 753619497
2025-05-01 09:31:06 -07:00
Wei SunandCopybara-Service b691904e57 chore: Adds a github action to check pyformat via pyink.
PiperOrigin-RevId: 753246116
2025-04-30 11:28:12 -07:00
Wei Sun (Jack)andGitHub 641781bced Merge pull request #434 from AlankritVerma01/support-async-tool-callbacks
feat(llm_flows): support async before/after tool callbacks
2025-04-29 22:49:18 -07:00
Wei Sun (Jack)andGitHub c4e09a2edb Merge branch 'main' into support-async-tool-callbacks 2025-04-29 22:48:45 -07:00
Wei Sun (Jack)andGitHub 67b6fbbe01 chore: Adds a github action to check pyformat via pyink. (#440)
* Adds pyink.yml github action to check file format

* Update pyink.yml to give recommended commands.
2025-04-29 09:39:18 -07:00
Wei Sun (Jack)andCopybara-Service e6109b1dd6 Copybara import of the project:
--
005028831b2e0873414db62af9ec02ef47a670d2 by Wei Sun (Jack) <weisun@google.com>:

Excludes tests/unittests/tools/application_integration_tool/clients/test_connections_client.py from python-unit-tests.yml
--
42ed38ff814f1a4811468d78cf1872869279919d by Wei Sun (Jack) <weisun@google.com>:

reorder skipped tests in python-unit-tests.yml

COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/368 from google:fix-unittests 42ed38ff814f1a4811468d78cf1872869279919d
PiperOrigin-RevId: 750782234
2025-04-23 17:35:34 -07:00
Wei SunandCopybara-Service a49d339251 bump version number to 0.3.0.
PiperOrigin-RevId: 750661619
2025-04-23 11:22:54 -07:00
Wei Sun (Jack)andGitHub 04e4c85b4e Merge pull request #355 from wyf7107/live-error-toast
fix: Add error toast message when live does not work with certain models
2025-04-22 22:26:38 -07:00
Wei SunandCopybara-Service 49d8c0fbb2 bump min version of google-genai sdk to latest.
PiperOrigin-RevId: 750324961
2025-04-22 14:17:27 -07:00
Wei SunandCopybara-Service a5f191650b chore: update the readme for a2a integration.
PiperOrigin-RevId: 749856734
2025-04-21 11:17:04 -07:00
Wei SunandCopybara-Service 1e752b1378 chore: Fixes type hints in google_api_tool_set.py.
PiperOrigin-RevId: 749844560
2025-04-21 10:42:48 -07:00
Wei SunandCopybara-Service 2af777af6d No public description
PiperOrigin-RevId: 749409258
2025-04-19 16:34:44 -07:00
Wei SunandCopybara-Service 6742ab9236 No public description
PiperOrigin-RevId: 749202950
2025-04-18 18:08:03 -07:00
Wei SunandCopybara-Service 30b1722cca No public description
PiperOrigin-RevId: 749119500
2025-04-18 12:51:32 -07:00
Wei Sun (Jack)andGitHub 5eca8214a8 Merge pull request #243 from trandangtrungduc/fix_typos
fix typos in tools/ and tests/
2025-04-18 12:49:05 -07:00
Wei Sun (Jack)andGitHub e0a360a1a2 Merge branch 'main' into fix_typos 2025-04-18 12:46:33 -07:00
Wei SunandCopybara-Service 1cd61242ef No public description
PiperOrigin-RevId: 749110560
2025-04-18 12:21:07 -07:00
Wei SunandCopybara-Service dfb283e6e0 No public description
PiperOrigin-RevId: 749076119
2025-04-18 10:35:34 -07:00