google-adk 0.2.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {google_adk-0.2.0 → google_adk-0.4.0}/PKG-INFO +28 -9
- {google_adk-0.2.0 → google_adk-0.4.0}/README.md +26 -7
- {google_adk-0.2.0 → google_adk-0.4.0}/pyproject.toml +13 -9
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/base_agent.py +7 -7
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/callback_context.py +0 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/llm_agent.py +3 -8
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_credential.py +2 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_handler.py +7 -3
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/index.html +1 -1
- google_adk-0.2.0/src/google/adk/cli/browser/main-ZBO76GRM.js → google_adk-0.4.0/src/google/adk/cli/browser/main-HWIBUY2R.js +69 -53
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli.py +54 -47
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli_deploy.py +6 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli_eval.py +1 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli_tools_click.py +78 -13
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/fast_api.py +6 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/agent_evaluator.py +2 -2
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/response_evaluator.py +2 -2
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/trajectory_evaluator.py +4 -5
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/events/event_actions.py +9 -4
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/agent_transfer.py +1 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/base_llm_flow.py +1 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/contents.py +10 -6
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/functions.py +38 -18
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/instructions.py +2 -2
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/gemini_llm_connection.py +2 -2
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/llm_response.py +10 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/planners/built_in_planner.py +1 -0
- google_adk-0.4.0/src/google/adk/sessions/_session_util.py +29 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/database_session_service.py +60 -43
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/state.py +1 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/vertex_ai_session_service.py +7 -5
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/agent_tool.py +2 -3
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/application_integration_tool/__init__.py +2 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/application_integration_tool/application_integration_toolset.py +48 -26
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/application_integration_tool/clients/connections_client.py +26 -54
- google_adk-0.4.0/src/google/adk/tools/application_integration_tool/integration_connector_tool.py +159 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/function_tool.py +42 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/google_api_tool_set.py +12 -9
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/load_artifacts_tool.py +1 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.py +4 -4
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py +1 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py +5 -12
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +46 -8
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/version.py +1 -1
- {google_adk-0.2.0 → google_adk-0.4.0}/LICENSE +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/active_streaming_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/invocation_context.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/langgraph_agent.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/live_request_queue.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/loop_agent.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/parallel_agent.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/readonly_context.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/remote_agent.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/run_config.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/sequential_agent.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/transcription_entry.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/artifacts/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/artifacts/base_artifact_service.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/artifacts/gcs_artifact_service.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/artifacts/in_memory_artifact_service.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_preprocessor.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_schemes.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/__main__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/agent_graph.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/adk_favicon.svg +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/assets/audio-processor.js +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/assets/config/runtime-config.json +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/polyfills-FFHMD2TL.js +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/styles-4VDSPQ37.css +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli_create.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/utils/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/utils/envs.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/utils/evals.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/utils/logs.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/base_code_executor.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/code_execution_utils.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/code_executor_context.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/container_code_executor.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/unsafe_local_code_executor.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/vertex_ai_code_executor.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/evaluation_constants.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/evaluation_generator.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/events/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/events/event.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/base_example_provider.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/example.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/example_util.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/vertex_ai_example_store.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/_base_llm_processor.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/_code_execution.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/_nl_planning.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/audio_transcriber.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/auto_flow.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/basic.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/identity.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/single_flow.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/memory/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/memory/base_memory_service.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/memory/in_memory_memory_service.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/memory/vertex_ai_rag_memory_service.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/anthropic_llm.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/base_llm.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/base_llm_connection.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/google_llm.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/lite_llm.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/llm_request.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/registry.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/planners/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/planners/base_planner.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/planners/plan_re_act_planner.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/runners.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/base_session_service.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/in_memory_session_service.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/session.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/telemetry.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/_automatic_function_calling_util.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/apihub_toolset.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/clients/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/clients/apihub_client.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/clients/secret_client.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/application_integration_tool/clients/integration_client.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/base_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/built_in_code_execution_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/crewai_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/example_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/exit_loop_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/function_parameter_parse_util.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/get_user_choice_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/google_api_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/google_api_tool_sets.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/googleapi_to_openapi_converter.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_search_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/langchain_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/load_memory_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/load_web_page.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/long_running_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/conversion_utils.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/mcp_session_manager.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/mcp_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/mcp_toolset.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/auth_helpers.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/base_credential_exchanger.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/common/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/common/common.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/preload_memory_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/__init__.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/base_retrieval_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/files_retrieval.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/llama_index_retrieval.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/tool_context.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/toolbox_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/transfer_to_agent_tool.py +0 -0
- {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/vertex_ai_search_tool.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: google-adk
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.4.0
|
4
4
|
Summary: Agent Development Kit
|
5
5
|
Author-email: Google LLC <googleapis-packages@google.com>
|
6
6
|
Requires-Python: >=3.9
|
@@ -27,7 +27,7 @@ Requires-Dist: google-cloud-aiplatform>=1.87.0
|
|
27
27
|
Requires-Dist: google-cloud-secret-manager>=2.22.0
|
28
28
|
Requires-Dist: google-cloud-speech>=2.30.0
|
29
29
|
Requires-Dist: google-cloud-storage>=2.18.0, <3.0.0
|
30
|
-
Requires-Dist: google-genai>=1.
|
30
|
+
Requires-Dist: google-genai>=1.11.0
|
31
31
|
Requires-Dist: graphviz>=0.20.2
|
32
32
|
Requires-Dist: mcp>=1.5.0;python_version>='3.10'
|
33
33
|
Requires-Dist: opentelemetry-api>=1.31.0
|
@@ -99,11 +99,7 @@ Provides-Extra: test
|
|
99
99
|
</h3>
|
100
100
|
</html>
|
101
101
|
|
102
|
-
Agent Development Kit (ADK) is designed for developers
|
103
|
-
control and flexibility when building advanced AI agents that are tightly
|
104
|
-
integrated with services in Google Cloud. It allows you to define agent
|
105
|
-
behavior, orchestration, and tool use directly in code, enabling robust
|
106
|
-
debugging, versioning, and deployment anywhere – from your laptop to the cloud.
|
102
|
+
Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows.
|
107
103
|
|
108
104
|
|
109
105
|
---
|
@@ -126,12 +122,27 @@ debugging, versioning, and deployment anywhere – from your laptop to the cloud
|
|
126
122
|
|
127
123
|
## 🚀 Installation
|
128
124
|
|
129
|
-
|
125
|
+
### Stable Release (Recommended)
|
126
|
+
|
127
|
+
You can install the latest stable version of ADK using `pip`:
|
130
128
|
|
131
129
|
```bash
|
132
130
|
pip install google-adk
|
133
131
|
```
|
134
132
|
|
133
|
+
The release cadence is weekly.
|
134
|
+
|
135
|
+
This version is recommended for most users as it represents the most recent official release.
|
136
|
+
|
137
|
+
### Development Version
|
138
|
+
Bug fixes and new features are merged into the main branch on GitHub first. If you need access to changes that haven't been included in an official PyPI release yet, you can install directly from the main branch:
|
139
|
+
|
140
|
+
```bash
|
141
|
+
pip install git+https://github.com/google/adk-python.git@main
|
142
|
+
```
|
143
|
+
|
144
|
+
Note: The development version is built directly from the latest code commits. While it includes the newest fixes and features, it may also contain experimental changes or bugs not present in the stable release. Use it primarily for testing upcoming changes or accessing critical fixes before they are officially released.
|
145
|
+
|
135
146
|
## 📚 Documentation
|
136
147
|
|
137
148
|
Explore the full documentation for detailed guides on building, evaluating, and
|
@@ -193,10 +204,18 @@ adk eval \
|
|
193
204
|
samples_for_testing/hello_world/hello_world_eval_set_001.evalset.json
|
194
205
|
```
|
195
206
|
|
207
|
+
## 🤖 A2A and ADK integration
|
208
|
+
|
209
|
+
For remote agent-to-agent communication, ADK integrates with the
|
210
|
+
[A2A protocol](https://github.com/google/A2A/).
|
211
|
+
See this [example](https://github.com/google/A2A/tree/main/samples/python/agents/google_adk)
|
212
|
+
for how they can work together.
|
196
213
|
|
197
214
|
## 🤝 Contributing
|
198
215
|
|
199
|
-
We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
|
216
|
+
We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
|
217
|
+
- [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions).
|
218
|
+
- Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.
|
200
219
|
|
201
220
|
## 📄 License
|
202
221
|
|
@@ -18,11 +18,7 @@
|
|
18
18
|
</h3>
|
19
19
|
</html>
|
20
20
|
|
21
|
-
Agent Development Kit (ADK) is designed for developers
|
22
|
-
control and flexibility when building advanced AI agents that are tightly
|
23
|
-
integrated with services in Google Cloud. It allows you to define agent
|
24
|
-
behavior, orchestration, and tool use directly in code, enabling robust
|
25
|
-
debugging, versioning, and deployment anywhere – from your laptop to the cloud.
|
21
|
+
Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows.
|
26
22
|
|
27
23
|
|
28
24
|
---
|
@@ -45,12 +41,27 @@ debugging, versioning, and deployment anywhere – from your laptop to the cloud
|
|
45
41
|
|
46
42
|
## 🚀 Installation
|
47
43
|
|
48
|
-
|
44
|
+
### Stable Release (Recommended)
|
45
|
+
|
46
|
+
You can install the latest stable version of ADK using `pip`:
|
49
47
|
|
50
48
|
```bash
|
51
49
|
pip install google-adk
|
52
50
|
```
|
53
51
|
|
52
|
+
The release cadence is weekly.
|
53
|
+
|
54
|
+
This version is recommended for most users as it represents the most recent official release.
|
55
|
+
|
56
|
+
### Development Version
|
57
|
+
Bug fixes and new features are merged into the main branch on GitHub first. If you need access to changes that haven't been included in an official PyPI release yet, you can install directly from the main branch:
|
58
|
+
|
59
|
+
```bash
|
60
|
+
pip install git+https://github.com/google/adk-python.git@main
|
61
|
+
```
|
62
|
+
|
63
|
+
Note: The development version is built directly from the latest code commits. While it includes the newest fixes and features, it may also contain experimental changes or bugs not present in the stable release. Use it primarily for testing upcoming changes or accessing critical fixes before they are officially released.
|
64
|
+
|
54
65
|
## 📚 Documentation
|
55
66
|
|
56
67
|
Explore the full documentation for detailed guides on building, evaluating, and
|
@@ -112,10 +123,18 @@ adk eval \
|
|
112
123
|
samples_for_testing/hello_world/hello_world_eval_set_001.evalset.json
|
113
124
|
```
|
114
125
|
|
126
|
+
## 🤖 A2A and ADK integration
|
127
|
+
|
128
|
+
For remote agent-to-agent communication, ADK integrates with the
|
129
|
+
[A2A protocol](https://github.com/google/A2A/).
|
130
|
+
See this [example](https://github.com/google/A2A/tree/main/samples/python/agents/google_adk)
|
131
|
+
for how they can work together.
|
115
132
|
|
116
133
|
## 🤝 Contributing
|
117
134
|
|
118
|
-
We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
|
135
|
+
We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
|
136
|
+
- [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions).
|
137
|
+
- Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.
|
119
138
|
|
120
139
|
## 📄 License
|
121
140
|
|
@@ -33,7 +33,7 @@ dependencies = [
|
|
33
33
|
"google-cloud-secret-manager>=2.22.0", # Fetching secrets in RestAPI Tool
|
34
34
|
"google-cloud-speech>=2.30.0", # For Audo Transcription
|
35
35
|
"google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service
|
36
|
-
"google-genai>=1.
|
36
|
+
"google-genai>=1.11.0", # Google GenAI SDK
|
37
37
|
"graphviz>=0.20.2", # Graphviz for graph rendering
|
38
38
|
"mcp>=1.5.0;python_version>='3.10'", # For MCP Toolset
|
39
39
|
"opentelemetry-api>=1.31.0", # OpenTelemetry
|
@@ -119,6 +119,15 @@ line-length = 80
|
|
119
119
|
unstable = true
|
120
120
|
pyink-indentation = 2
|
121
121
|
pyink-use-majority-quotes = true
|
122
|
+
pyink-annotation-pragmas = [
|
123
|
+
"noqa",
|
124
|
+
"pylint:",
|
125
|
+
"type: ignore",
|
126
|
+
"pytype:",
|
127
|
+
"mypy:",
|
128
|
+
"pyright:",
|
129
|
+
"pyre-",
|
130
|
+
]
|
122
131
|
|
123
132
|
|
124
133
|
[build-system]
|
@@ -135,15 +144,10 @@ exclude = ['src/**/*.sh']
|
|
135
144
|
name = "google.adk"
|
136
145
|
|
137
146
|
[tool.isort]
|
138
|
-
|
139
|
-
|
140
|
-
force_sort_within_sections = true
|
141
|
-
honor_case_in_force_sorted_sections = true
|
142
|
-
order_by_type = false
|
143
|
-
sort_relative_in_force_sorted_sections = true
|
144
|
-
multi_line_output = 3
|
145
|
-
line_length = 200
|
147
|
+
profile = "google"
|
148
|
+
|
146
149
|
|
147
150
|
[tool.pytest.ini_options]
|
148
151
|
testpaths = ["tests"]
|
149
152
|
asyncio_default_fixture_loop_scope = "function"
|
153
|
+
asyncio_mode = "auto"
|
@@ -44,7 +44,7 @@ Args:
|
|
44
44
|
callback_context: MUST be named 'callback_context' (enforced).
|
45
45
|
|
46
46
|
Returns:
|
47
|
-
The content to return to the user. When set, the agent run will skipped and
|
47
|
+
The content to return to the user. When set, the agent run will be skipped and
|
48
48
|
the provided content will be returned to user.
|
49
49
|
"""
|
50
50
|
|
@@ -55,8 +55,8 @@ Args:
|
|
55
55
|
callback_context: MUST be named 'callback_context' (enforced).
|
56
56
|
|
57
57
|
Returns:
|
58
|
-
The content to return to the user. When set, the
|
59
|
-
|
58
|
+
The content to return to the user. When set, the provided content will be
|
59
|
+
appended to event history as agent response.
|
60
60
|
"""
|
61
61
|
|
62
62
|
|
@@ -101,8 +101,8 @@ class BaseAgent(BaseModel):
|
|
101
101
|
callback_context: MUST be named 'callback_context' (enforced).
|
102
102
|
|
103
103
|
Returns:
|
104
|
-
The content to return to the user. When set, the agent run will skipped
|
105
|
-
the provided content will be returned to user.
|
104
|
+
The content to return to the user. When set, the agent run will be skipped
|
105
|
+
and the provided content will be returned to user.
|
106
106
|
"""
|
107
107
|
after_agent_callback: Optional[AfterAgentCallback] = None
|
108
108
|
"""Callback signature that is invoked after the agent run.
|
@@ -111,8 +111,8 @@ class BaseAgent(BaseModel):
|
|
111
111
|
callback_context: MUST be named 'callback_context' (enforced).
|
112
112
|
|
113
113
|
Returns:
|
114
|
-
The content to return to the user. When set, the
|
115
|
-
|
114
|
+
The content to return to the user. When set, the provided content will be
|
115
|
+
appended to event history as agent response.
|
116
116
|
"""
|
117
117
|
|
118
118
|
@final
|
@@ -23,7 +23,6 @@ from .readonly_context import ReadonlyContext
|
|
23
23
|
if TYPE_CHECKING:
|
24
24
|
from google.genai import types
|
25
25
|
|
26
|
-
from ..events.event import Event
|
27
26
|
from ..events.event_actions import EventActions
|
28
27
|
from ..sessions.state import State
|
29
28
|
from .invocation_context import InvocationContext
|
@@ -15,12 +15,7 @@
|
|
15
15
|
from __future__ import annotations
|
16
16
|
|
17
17
|
import logging
|
18
|
-
from typing import Any
|
19
|
-
from typing import AsyncGenerator
|
20
|
-
from typing import Callable
|
21
|
-
from typing import Literal
|
22
|
-
from typing import Optional
|
23
|
-
from typing import Union
|
18
|
+
from typing import Any, AsyncGenerator, Awaitable, Callable, Literal, Optional, Union
|
24
19
|
|
25
20
|
from google.genai import types
|
26
21
|
from pydantic import BaseModel
|
@@ -62,11 +57,11 @@ AfterModelCallback: TypeAlias = Callable[
|
|
62
57
|
]
|
63
58
|
BeforeToolCallback: TypeAlias = Callable[
|
64
59
|
[BaseTool, dict[str, Any], ToolContext],
|
65
|
-
Optional[dict],
|
60
|
+
Union[Awaitable[Optional[dict]], Optional[dict]],
|
66
61
|
]
|
67
62
|
AfterToolCallback: TypeAlias = Callable[
|
68
63
|
[BaseTool, dict[str, Any], ToolContext, dict],
|
69
|
-
Optional[dict],
|
64
|
+
Union[Awaitable[Optional[dict]], Optional[dict]],
|
70
65
|
]
|
71
66
|
|
72
67
|
InstructionProvider: TypeAlias = Callable[[ReadonlyContext], str]
|
@@ -66,7 +66,8 @@ class OAuth2Auth(BaseModelWithConfig):
|
|
66
66
|
redirect_uri: Optional[str] = None
|
67
67
|
auth_response_uri: Optional[str] = None
|
68
68
|
auth_code: Optional[str] = None
|
69
|
-
|
69
|
+
access_token: Optional[str] = None
|
70
|
+
refresh_token: Optional[str] = None
|
70
71
|
|
71
72
|
|
72
73
|
class ServiceAccountCredential(BaseModelWithConfig):
|
@@ -82,7 +82,8 @@ class AuthHandler:
|
|
82
82
|
or not auth_credential.oauth2
|
83
83
|
or not auth_credential.oauth2.client_id
|
84
84
|
or not auth_credential.oauth2.client_secret
|
85
|
-
or auth_credential.oauth2.
|
85
|
+
or auth_credential.oauth2.access_token
|
86
|
+
or auth_credential.oauth2.refresh_token
|
86
87
|
):
|
87
88
|
return self.auth_config.exchanged_auth_credential
|
88
89
|
|
@@ -93,7 +94,7 @@ class AuthHandler:
|
|
93
94
|
redirect_uri=auth_credential.oauth2.redirect_uri,
|
94
95
|
state=auth_credential.oauth2.state,
|
95
96
|
)
|
96
|
-
|
97
|
+
tokens = client.fetch_token(
|
97
98
|
token_endpoint,
|
98
99
|
authorization_response=auth_credential.oauth2.auth_response_uri,
|
99
100
|
code=auth_credential.oauth2.auth_code,
|
@@ -102,7 +103,10 @@ class AuthHandler:
|
|
102
103
|
|
103
104
|
updated_credential = AuthCredential(
|
104
105
|
auth_type=AuthCredentialTypes.OAUTH2,
|
105
|
-
oauth2=OAuth2Auth(
|
106
|
+
oauth2=OAuth2Auth(
|
107
|
+
access_token=tokens.get("access_token"),
|
108
|
+
refresh_token=tokens.get("refresh_token"),
|
109
|
+
),
|
106
110
|
)
|
107
111
|
return updated_credential
|
108
112
|
|
@@ -29,5 +29,5 @@
|
|
29
29
|
<style>html{color-scheme:dark}html{--mat-sys-background:light-dark(#fcf9f8, #131314);--mat-sys-error:light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container:light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface:light-dark(#f3f0f0, #313030);--mat-sys-inverse-primary:light-dark(#c1c7cd, #595f65);--mat-sys-inverse-surface:light-dark(#313030, #e5e2e2);--mat-sys-on-background:light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-error:light-dark(#ffffff, #690005);--mat-sys-on-error-container:light-dark(#410002, #ffdad6);--mat-sys-on-primary:light-dark(#ffffff, #2b3136);--mat-sys-on-primary-container:light-dark(#161c21, #dde3e9);--mat-sys-on-primary-fixed:light-dark(#161c21, #161c21);--mat-sys-on-primary-fixed-variant:light-dark(#41474d, #41474d);--mat-sys-on-secondary:light-dark(#ffffff, #003061);--mat-sys-on-secondary-container:light-dark(#001b3c, #d5e3ff);--mat-sys-on-secondary-fixed:light-dark(#001b3c, #001b3c);--mat-sys-on-secondary-fixed-variant:light-dark(#0f4784, #0f4784);--mat-sys-on-surface:light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-surface-variant:light-dark(#44474a, #e1e2e6);--mat-sys-on-tertiary:light-dark(#ffffff, #2b3136);--mat-sys-on-tertiary-container:light-dark(#161c21, #dde3e9);--mat-sys-on-tertiary-fixed:light-dark(#161c21, #161c21);--mat-sys-on-tertiary-fixed-variant:light-dark(#41474d, #41474d);--mat-sys-outline:light-dark(#74777b, #8e9194);--mat-sys-outline-variant:light-dark(#c4c7ca, #44474a);--mat-sys-primary:light-dark(#595f65, #c1c7cd);--mat-sys-primary-container:light-dark(#dde3e9, #41474d);--mat-sys-primary-fixed:light-dark(#dde3e9, #dde3e9);--mat-sys-primary-fixed-dim:light-dark(#c1c7cd, #c1c7cd);--mat-sys-scrim:light-dark(#000000, #000000);--mat-sys-secondary:light-dark(#305f9d, #a7c8ff);--mat-sys-secondary-container:light-dark(#d5e3ff, #0f4784);--mat-sys-secondary-fixed:light-dark(#d5e3ff, #d5e3ff);--mat-sys-secondary-fixed-dim:light-dark(#a7c8ff, #a7c8ff);--mat-sys-shadow:light-dark(#000000, #000000);--mat-sys-surface:light-dark(#fcf9f8, #131314);--mat-sys-surface-bright:light-dark(#fcf9f8, #393939);--mat-sys-surface-container:light-dark(#f0eded, #201f20);--mat-sys-surface-container-high:light-dark(#eae7e7, #2a2a2a);--mat-sys-surface-container-highest:light-dark(#e5e2e2, #393939);--mat-sys-surface-container-low:light-dark(#f6f3f3, #1c1b1c);--mat-sys-surface-container-lowest:light-dark(#ffffff, #0e0e0e);--mat-sys-surface-dim:light-dark(#dcd9d9, #131314);--mat-sys-surface-tint:light-dark(#595f65, #c1c7cd);--mat-sys-surface-variant:light-dark(#e1e2e6, #44474a);--mat-sys-tertiary:light-dark(#595f65, #c1c7cd);--mat-sys-tertiary-container:light-dark(#dde3e9, #41474d);--mat-sys-tertiary-fixed:light-dark(#dde3e9, #dde3e9);--mat-sys-tertiary-fixed-dim:light-dark(#c1c7cd, #c1c7cd);--mat-sys-neutral-variant20:#2d3134;--mat-sys-neutral10:#1c1b1c}html{--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px}html{--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12}html{font-family:Google Sans,Helvetica Neue,sans-serif!important}body{height:100vh;margin:0}:root{--mat-sys-primary:black;--mdc-checkbox-selected-icon-color:white;--mat-sys-background:#131314;--mat-tab-header-active-label-text-color:#8AB4F8;--mat-tab-header-active-hover-label-text-color:#8AB4F8;--mat-tab-header-active-focus-label-text-color:#8AB4F8;--mat-tab-header-label-text-weight:500;--mdc-text-button-label-text-color:#89b4f8}:root{--mdc-dialog-container-color:#2b2b2f}:root{--mdc-dialog-subhead-color:white}:root{--mdc-circular-progress-active-indicator-color:#a8c7fa}:root{--mdc-circular-progress-size:80}</style><link rel="stylesheet" href="styles-4VDSPQ37.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-4VDSPQ37.css"></noscript></head>
|
30
30
|
<body>
|
31
31
|
<app-root></app-root>
|
32
|
-
<script src="polyfills-FFHMD2TL.js" type="module"></script><script src="main-
|
32
|
+
<script src="polyfills-FFHMD2TL.js" type="module"></script><script src="main-HWIBUY2R.js" type="module"></script></body>
|
33
33
|
</html>
|