Commit Graph
98 Commits
Author SHA1 Message Date
Wei Sun (Jack)andCopybara-Service 5b999ed6fd chore: Uses pydantic Field for Agent configs, so that the generated AgentConfig.json json schema can carry field description
PiperOrigin-RevId: 797094012
2025-08-19 18:03:47 -07:00
Wei Sun (Jack)andCopybara-Service 1fd58cb363 chore(config): Creates yaml_utils.py in utils to allow adk dump yaml in the same style
PiperOrigin-RevId: 796531710
2025-08-18 12:34:09 -07:00
Wei Sun (Jack)andCopybara-Service 8a9a271141 fix(config): Fixes SequentialAgent.config_type type hint
Without ClassVar, it will cause pydantic to generate warning.

PiperOrigin-RevId: 795518646
2025-08-15 10:13:39 -07:00
Wei Sun (Jack)andCopybara-Service 1328e6ef62 docs(config): Adds a minimal sample to demo how to use Agent Config to create a multi-agent setup
PiperOrigin-RevId: 795501478
2025-08-15 09:22:52 -07:00
Wei Sun (Jack)andCopybara-Service cd357bf5ae fix: Fixes the host in the ansi bracket of adk web
localhost cannot always open Web UI, since we only bind 127.0.0.1.

PiperOrigin-RevId: 795484904
2025-08-15 08:26:01 -07:00
Wei Sun (Jack)andCopybara-Service 9ba8eec220 feat(tracing): Adds more OpenTelemetry convention attributes: gen_ai.request.max_tokens, gen_ai.request.top_p and gen_ai.response.finish_reasons
Fixes #1234

PiperOrigin-RevId: 795082815
2025-08-14 09:52:50 -07:00
Wei Sun (Jack)andCopybara-Service c5af44cfc0 docs(config): Fixes tool_functions, which is a config-based sample for using tools
PiperOrigin-RevId: 794652291
2025-08-13 11:01:52 -07:00
Wei Sun (Jack)andCopybara-Service e295feb4c6 docs: Add workflow_triage sample for multi-agent request orchestration
Demonstrates intelligent triage system with root planning agent and parallel
execution agents.

Use session state to store the execution plan and coordinate with other specialized agents.

Check out README.md for more details.

PiperOrigin-RevId: 793884758
2025-08-11 19:05:53 -07:00
Wei Sun (Jack)andCopybara-Service d674178a05 chore: Fixes generate_image sample
PiperOrigin-RevId: 793725452
2025-08-11 11:15:06 -07:00
Wei Sun (Jack)andCopybara-Service dc26aad663 docs: Adds pypi badge to README.md
PiperOrigin-RevId: 793713600
2025-08-11 10:47:57 -07:00
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