google-adk 0.0.1__py3-none-any.whl → 0.0.3__py3-none-any.whl
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/._version.py +0 -0
- google/adk/__init__.py +20 -0
- google/adk/agents/__init__.py +32 -0
- google/adk/agents/active_streaming_tool.py +38 -0
- google/adk/agents/base_agent.py +345 -0
- google/adk/agents/callback_context.py +112 -0
- google/adk/agents/invocation_context.py +181 -0
- google/adk/agents/langgraph_agent.py +140 -0
- google/adk/agents/live_request_queue.py +64 -0
- google/adk/agents/llm_agent.py +376 -0
- google/adk/agents/loop_agent.py +62 -0
- google/adk/agents/parallel_agent.py +96 -0
- google/adk/agents/readonly_context.py +46 -0
- google/adk/agents/remote_agent.py +50 -0
- google/adk/agents/run_config.py +87 -0
- google/adk/agents/sequential_agent.py +45 -0
- google/adk/agents/transcription_entry.py +34 -0
- google/adk/artifacts/__init__.py +23 -0
- google/adk/artifacts/base_artifact_service.py +128 -0
- google/adk/artifacts/gcs_artifact_service.py +195 -0
- google/adk/artifacts/in_memory_artifact_service.py +133 -0
- google/adk/auth/__init__.py +22 -0
- google/adk/auth/auth_credential.py +220 -0
- google/adk/auth/auth_handler.py +268 -0
- google/adk/auth/auth_preprocessor.py +116 -0
- google/adk/auth/auth_schemes.py +67 -0
- google/adk/auth/auth_tool.py +55 -0
- google/adk/cli/__init__.py +15 -0
- google/adk/cli/__main__.py +18 -0
- google/adk/cli/agent_graph.py +148 -0
- google/adk/cli/browser/adk_favicon.svg +17 -0
- google/adk/cli/browser/assets/audio-processor.js +51 -0
- google/adk/cli/browser/assets/config/runtime-config.json +3 -0
- google/adk/cli/browser/index.html +33 -0
- google/adk/cli/browser/main-SY2WYYGV.js +75 -0
- google/adk/cli/browser/polyfills-FFHMD2TL.js +18 -0
- google/adk/cli/browser/styles-4VDSPQ37.css +17 -0
- google/adk/cli/cli.py +181 -0
- google/adk/cli/cli_deploy.py +181 -0
- google/adk/cli/cli_eval.py +282 -0
- google/adk/cli/cli_tools_click.py +524 -0
- google/adk/cli/fast_api.py +784 -0
- google/adk/cli/utils/__init__.py +49 -0
- google/adk/cli/utils/envs.py +57 -0
- google/adk/cli/utils/evals.py +93 -0
- google/adk/cli/utils/logs.py +72 -0
- google/adk/code_executors/__init__.py +49 -0
- google/adk/code_executors/base_code_executor.py +97 -0
- google/adk/code_executors/code_execution_utils.py +256 -0
- google/adk/code_executors/code_executor_context.py +202 -0
- google/adk/code_executors/container_code_executor.py +196 -0
- google/adk/code_executors/unsafe_local_code_executor.py +71 -0
- google/adk/code_executors/vertex_ai_code_executor.py +234 -0
- google/adk/docs/Makefile +20 -0
- google/adk/docs/build/doctrees/google-adk.doctree +0 -0
- google/adk/docs/build/html/_sources/google-adk.rst.txt +98 -0
- google/adk/docs/build/html/_sources/index.rst.txt +7 -0
- google/adk/docs/build/html/_static/autodoc_pydantic.css +27 -0
- google/adk/docs/build/html/_static/basic.css +925 -0
- google/adk/docs/build/html/_static/debug.css +85 -0
- google/adk/docs/build/html/_static/doctools.js +156 -0
- google/adk/docs/build/html/_static/documentation_options.js +29 -0
- google/adk/docs/build/html/_static/file.png +0 -0
- google/adk/docs/build/html/_static/language_data.js +199 -0
- google/adk/docs/build/html/_static/minus.png +0 -0
- google/adk/docs/build/html/_static/plus.png +0 -0
- google/adk/docs/build/html/_static/pygments.css +274 -0
- google/adk/docs/build/html/_static/scripts/furo-extensions.js +16 -0
- google/adk/docs/build/html/_static/scripts/furo.js +19 -0
- google/adk/docs/build/html/_static/scripts/furo.js.LICENSE.txt +7 -0
- google/adk/docs/build/html/_static/scripts/furo.js.map +1 -0
- google/adk/docs/build/html/_static/searchtools.js +620 -0
- google/adk/docs/build/html/_static/skeleton.css +312 -0
- google/adk/docs/build/html/_static/sphinx_highlight.js +170 -0
- google/adk/docs/build/html/_static/styles/furo-extensions.css +18 -0
- google/adk/docs/build/html/_static/styles/furo-extensions.css.map +1 -0
- google/adk/docs/build/html/_static/styles/furo.css +18 -0
- google/adk/docs/build/html/_static/styles/furo.css.map +1 -0
- google/adk/docs/build/html/genindex.html +861 -0
- google/adk/docs/build/html/google-adk.html +5461 -0
- google/adk/docs/build/html/index.html +567 -0
- google/adk/docs/build/html/objects.inv +0 -0
- google/adk/docs/build/html/py-modindex.html +373 -0
- google/adk/docs/build/html/search.html +333 -0
- google/adk/docs/build/html/searchindex.js +17 -0
- google/adk/docs/source/conf.py +133 -0
- google/adk/docs/source/google-adk.rst +98 -0
- google/adk/docs/source/index.rst +7 -0
- google/adk/evaluation/__init__.py +31 -0
- google/adk/evaluation/agent_evaluator.py +329 -0
- google/adk/evaluation/evaluation_constants.py +24 -0
- google/adk/evaluation/evaluation_generator.py +270 -0
- google/adk/evaluation/response_evaluator.py +135 -0
- google/adk/evaluation/trajectory_evaluator.py +184 -0
- google/adk/events/__init__.py +21 -0
- google/adk/events/event.py +130 -0
- google/adk/events/event_actions.py +55 -0
- google/adk/examples/__init__.py +28 -0
- google/adk/examples/base_example_provider.py +35 -0
- google/adk/examples/example.py +27 -0
- google/adk/examples/example_util.py +123 -0
- google/adk/examples/vertex_ai_example_store.py +104 -0
- google/adk/flows/__init__.py +14 -0
- google/adk/flows/llm_flows/__init__.py +20 -0
- google/adk/flows/llm_flows/_base_llm_processor.py +52 -0
- google/adk/flows/llm_flows/_code_execution.py +458 -0
- google/adk/flows/llm_flows/_nl_planning.py +129 -0
- google/adk/flows/llm_flows/agent_transfer.py +132 -0
- google/adk/flows/llm_flows/audio_transcriber.py +109 -0
- google/adk/flows/llm_flows/auto_flow.py +49 -0
- google/adk/flows/llm_flows/base_llm_flow.py +559 -0
- google/adk/flows/llm_flows/basic.py +72 -0
- google/adk/flows/llm_flows/contents.py +370 -0
- google/adk/flows/llm_flows/functions.py +486 -0
- google/adk/flows/llm_flows/identity.py +47 -0
- google/adk/flows/llm_flows/instructions.py +137 -0
- google/adk/flows/llm_flows/single_flow.py +57 -0
- google/adk/memory/__init__.py +35 -0
- google/adk/memory/base_memory_service.py +74 -0
- google/adk/memory/in_memory_memory_service.py +62 -0
- google/adk/memory/vertex_ai_rag_memory_service.py +177 -0
- google/adk/models/__init__.py +31 -0
- google/adk/models/anthropic_llm.py +243 -0
- google/adk/models/base_llm.py +87 -0
- google/adk/models/base_llm_connection.py +76 -0
- google/adk/models/gemini_llm_connection.py +200 -0
- google/adk/models/google_llm.py +331 -0
- google/adk/models/lite_llm.py +673 -0
- google/adk/models/llm_request.py +98 -0
- google/adk/models/llm_response.py +111 -0
- google/adk/models/registry.py +102 -0
- google/adk/planners/__init__.py +23 -0
- google/adk/planners/base_planner.py +66 -0
- google/adk/planners/built_in_planner.py +75 -0
- google/adk/planners/plan_re_act_planner.py +208 -0
- google/adk/runners.py +456 -0
- google/adk/sessions/__init__.py +41 -0
- google/adk/sessions/base_session_service.py +133 -0
- google/adk/sessions/database_session_service.py +522 -0
- google/adk/sessions/in_memory_session_service.py +206 -0
- google/adk/sessions/session.py +54 -0
- google/adk/sessions/state.py +71 -0
- google/adk/sessions/vertex_ai_session_service.py +356 -0
- google/adk/telemetry.py +189 -0
- google/adk/tests/__init__.py +14 -0
- google/adk/tests/integration/.env.example +10 -0
- google/adk/tests/integration/__init__.py +18 -0
- google/adk/tests/integration/conftest.py +119 -0
- google/adk/tests/integration/fixture/__init__.py +14 -0
- google/adk/tests/integration/fixture/agent_with_config/__init__.py +15 -0
- google/adk/tests/integration/fixture/agent_with_config/agent.py +88 -0
- google/adk/tests/integration/fixture/callback_agent/__init__.py +15 -0
- google/adk/tests/integration/fixture/callback_agent/agent.py +105 -0
- google/adk/tests/integration/fixture/context_update_test/OWNERS +1 -0
- google/adk/tests/integration/fixture/context_update_test/__init__.py +15 -0
- google/adk/tests/integration/fixture/context_update_test/agent.py +43 -0
- google/adk/tests/integration/fixture/context_update_test/successful_test.session.json +582 -0
- google/adk/tests/integration/fixture/context_variable_agent/__init__.py +15 -0
- google/adk/tests/integration/fixture/context_variable_agent/agent.py +115 -0
- google/adk/tests/integration/fixture/customer_support_ma/__init__.py +15 -0
- google/adk/tests/integration/fixture/customer_support_ma/agent.py +172 -0
- google/adk/tests/integration/fixture/ecommerce_customer_service_agent/__init__.py +15 -0
- google/adk/tests/integration/fixture/ecommerce_customer_service_agent/agent.py +338 -0
- google/adk/tests/integration/fixture/ecommerce_customer_service_agent/order_query.test.json +69 -0
- google/adk/tests/integration/fixture/ecommerce_customer_service_agent/test_config.json +6 -0
- google/adk/tests/integration/fixture/flow_complex_spark/__init__.py +15 -0
- google/adk/tests/integration/fixture/flow_complex_spark/agent.py +182 -0
- google/adk/tests/integration/fixture/flow_complex_spark/sample.session.json +190 -0
- google/adk/tests/integration/fixture/hello_world_agent/__init__.py +15 -0
- google/adk/tests/integration/fixture/hello_world_agent/agent.py +95 -0
- google/adk/tests/integration/fixture/hello_world_agent/roll_die.test.json +24 -0
- google/adk/tests/integration/fixture/hello_world_agent/test_config.json +6 -0
- google/adk/tests/integration/fixture/home_automation_agent/__init__.py +15 -0
- google/adk/tests/integration/fixture/home_automation_agent/agent.py +304 -0
- google/adk/tests/integration/fixture/home_automation_agent/simple_test.test.json +5 -0
- google/adk/tests/integration/fixture/home_automation_agent/simple_test2.test.json +5 -0
- google/adk/tests/integration/fixture/home_automation_agent/test_config.json +5 -0
- google/adk/tests/integration/fixture/home_automation_agent/test_files/dependent_tool_calls.test.json +18 -0
- google/adk/tests/integration/fixture/home_automation_agent/test_files/memorizing_past_events/eval_data.test.json +17 -0
- google/adk/tests/integration/fixture/home_automation_agent/test_files/memorizing_past_events/test_config.json +6 -0
- google/adk/tests/integration/fixture/home_automation_agent/test_files/simple_multi_turn_conversation.test.json +18 -0
- google/adk/tests/integration/fixture/home_automation_agent/test_files/simple_test.test.json +17 -0
- google/adk/tests/integration/fixture/home_automation_agent/test_files/simple_test2.test.json +5 -0
- google/adk/tests/integration/fixture/home_automation_agent/test_files/test_config.json +5 -0
- google/adk/tests/integration/fixture/tool_agent/__init__.py +15 -0
- google/adk/tests/integration/fixture/tool_agent/agent.py +218 -0
- google/adk/tests/integration/fixture/tool_agent/files/Agent_test_plan.pdf +0 -0
- google/adk/tests/integration/fixture/trip_planner_agent/__init__.py +15 -0
- google/adk/tests/integration/fixture/trip_planner_agent/agent.py +110 -0
- google/adk/tests/integration/fixture/trip_planner_agent/initial.session.json +13 -0
- google/adk/tests/integration/fixture/trip_planner_agent/test_config.json +5 -0
- google/adk/tests/integration/fixture/trip_planner_agent/test_files/initial.session.json +13 -0
- google/adk/tests/integration/fixture/trip_planner_agent/test_files/test_config.json +5 -0
- google/adk/tests/integration/fixture/trip_planner_agent/test_files/trip_inquiry_sub_agent.test.json +7 -0
- google/adk/tests/integration/fixture/trip_planner_agent/trip_inquiry.test.json +19 -0
- google/adk/tests/integration/models/__init__.py +14 -0
- google/adk/tests/integration/models/test_google_llm.py +65 -0
- google/adk/tests/integration/test_callback.py +70 -0
- google/adk/tests/integration/test_context_variable.py +67 -0
- google/adk/tests/integration/test_evalute_agent_in_fixture.py +76 -0
- google/adk/tests/integration/test_multi_agent.py +28 -0
- google/adk/tests/integration/test_multi_turn.py +42 -0
- google/adk/tests/integration/test_single_agent.py +23 -0
- google/adk/tests/integration/test_sub_agent.py +26 -0
- google/adk/tests/integration/test_system_instruction.py +177 -0
- google/adk/tests/integration/test_tools.py +287 -0
- google/adk/tests/integration/test_with_test_file.py +34 -0
- google/adk/tests/integration/tools/__init__.py +14 -0
- google/adk/tests/integration/utils/__init__.py +16 -0
- google/adk/tests/integration/utils/asserts.py +75 -0
- google/adk/tests/integration/utils/test_runner.py +97 -0
- google/adk/tests/unittests/__init__.py +14 -0
- google/adk/tests/unittests/agents/__init__.py +14 -0
- google/adk/tests/unittests/agents/test_base_agent.py +407 -0
- google/adk/tests/unittests/agents/test_langgraph_agent.py +191 -0
- google/adk/tests/unittests/agents/test_llm_agent_callbacks.py +138 -0
- google/adk/tests/unittests/agents/test_llm_agent_fields.py +231 -0
- google/adk/tests/unittests/agents/test_loop_agent.py +136 -0
- google/adk/tests/unittests/agents/test_parallel_agent.py +92 -0
- google/adk/tests/unittests/agents/test_sequential_agent.py +114 -0
- google/adk/tests/unittests/artifacts/__init__.py +14 -0
- google/adk/tests/unittests/artifacts/test_artifact_service.py +276 -0
- google/adk/tests/unittests/auth/test_auth_handler.py +575 -0
- google/adk/tests/unittests/conftest.py +73 -0
- google/adk/tests/unittests/fast_api/__init__.py +14 -0
- google/adk/tests/unittests/fast_api/test_fast_api.py +269 -0
- google/adk/tests/unittests/flows/__init__.py +14 -0
- google/adk/tests/unittests/flows/llm_flows/__init__.py +14 -0
- google/adk/tests/unittests/flows/llm_flows/_test_examples.py +142 -0
- google/adk/tests/unittests/flows/llm_flows/test_agent_transfer.py +311 -0
- google/adk/tests/unittests/flows/llm_flows/test_functions_long_running.py +244 -0
- google/adk/tests/unittests/flows/llm_flows/test_functions_request_euc.py +346 -0
- google/adk/tests/unittests/flows/llm_flows/test_functions_sequential.py +93 -0
- google/adk/tests/unittests/flows/llm_flows/test_functions_simple.py +258 -0
- google/adk/tests/unittests/flows/llm_flows/test_identity.py +66 -0
- google/adk/tests/unittests/flows/llm_flows/test_instructions.py +164 -0
- google/adk/tests/unittests/flows/llm_flows/test_model_callbacks.py +142 -0
- google/adk/tests/unittests/flows/llm_flows/test_other_configs.py +46 -0
- google/adk/tests/unittests/flows/llm_flows/test_tool_callbacks.py +269 -0
- google/adk/tests/unittests/models/__init__.py +14 -0
- google/adk/tests/unittests/models/test_google_llm.py +224 -0
- google/adk/tests/unittests/models/test_litellm.py +804 -0
- google/adk/tests/unittests/models/test_models.py +60 -0
- google/adk/tests/unittests/sessions/__init__.py +14 -0
- google/adk/tests/unittests/sessions/test_session_service.py +227 -0
- google/adk/tests/unittests/sessions/test_vertex_ai_session_service.py +246 -0
- google/adk/tests/unittests/streaming/__init__.py +14 -0
- google/adk/tests/unittests/streaming/test_streaming.py +50 -0
- google/adk/tests/unittests/tools/__init__.py +14 -0
- google/adk/tests/unittests/tools/apihub_tool/clients/test_apihub_client.py +499 -0
- google/adk/tests/unittests/tools/apihub_tool/test_apihub_toolset.py +204 -0
- google/adk/tests/unittests/tools/application_integration_tool/clients/test_connections_client.py +600 -0
- google/adk/tests/unittests/tools/application_integration_tool/clients/test_integration_client.py +630 -0
- google/adk/tests/unittests/tools/application_integration_tool/test_application_integration_toolset.py +345 -0
- google/adk/tests/unittests/tools/google_api_tool/__init__.py +13 -0
- google/adk/tests/unittests/tools/google_api_tool/test_googleapi_to_openapi_converter.py +657 -0
- google/adk/tests/unittests/tools/openapi_tool/auth/credential_exchangers/test_auto_auth_credential_exchanger.py +145 -0
- google/adk/tests/unittests/tools/openapi_tool/auth/credential_exchangers/test_base_auth_credential_exchanger.py +68 -0
- google/adk/tests/unittests/tools/openapi_tool/auth/credential_exchangers/test_oauth2_exchanger.py +153 -0
- google/adk/tests/unittests/tools/openapi_tool/auth/credential_exchangers/test_service_account_exchanger.py +196 -0
- google/adk/tests/unittests/tools/openapi_tool/auth/test_auth_helper.py +573 -0
- google/adk/tests/unittests/tools/openapi_tool/common/test_common.py +436 -0
- google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test.yaml +1367 -0
- google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_openapi_spec_parser.py +628 -0
- google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_openapi_toolset.py +139 -0
- google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_operation_parser.py +406 -0
- google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py +966 -0
- google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py +201 -0
- google/adk/tests/unittests/tools/retrieval/__init__.py +14 -0
- google/adk/tests/unittests/tools/retrieval/test_vertex_ai_rag_retrieval.py +147 -0
- google/adk/tests/unittests/tools/test_agent_tool.py +167 -0
- google/adk/tests/unittests/tools/test_base_tool.py +141 -0
- google/adk/tests/unittests/tools/test_build_function_declaration.py +277 -0
- google/adk/tests/unittests/utils.py +304 -0
- google/adk/tools/__init__.py +51 -0
- google/adk/tools/_automatic_function_calling_util.py +346 -0
- google/adk/tools/agent_tool.py +176 -0
- google/adk/tools/apihub_tool/__init__.py +19 -0
- google/adk/tools/apihub_tool/apihub_toolset.py +209 -0
- google/adk/tools/apihub_tool/clients/__init__.py +13 -0
- google/adk/tools/apihub_tool/clients/apihub_client.py +332 -0
- google/adk/tools/apihub_tool/clients/secret_client.py +115 -0
- google/adk/tools/application_integration_tool/__init__.py +19 -0
- google/adk/tools/application_integration_tool/application_integration_toolset.py +230 -0
- google/adk/tools/application_integration_tool/clients/connections_client.py +903 -0
- google/adk/tools/application_integration_tool/clients/integration_client.py +253 -0
- google/adk/tools/base_tool.py +144 -0
- google/adk/tools/built_in_code_execution_tool.py +59 -0
- google/adk/tools/crewai_tool.py +72 -0
- google/adk/tools/example_tool.py +62 -0
- google/adk/tools/exit_loop_tool.py +23 -0
- google/adk/tools/function_parameter_parse_util.py +307 -0
- google/adk/tools/function_tool.py +87 -0
- google/adk/tools/get_user_choice_tool.py +28 -0
- google/adk/tools/google_api_tool/__init__.py +14 -0
- google/adk/tools/google_api_tool/google_api_tool.py +59 -0
- google/adk/tools/google_api_tool/google_api_tool_set.py +107 -0
- google/adk/tools/google_api_tool/google_api_tool_sets.py +55 -0
- google/adk/tools/google_api_tool/googleapi_to_openapi_converter.py +521 -0
- google/adk/tools/google_search_tool.py +68 -0
- google/adk/tools/langchain_tool.py +86 -0
- google/adk/tools/load_artifacts_tool.py +113 -0
- google/adk/tools/load_memory_tool.py +58 -0
- google/adk/tools/load_web_page.py +41 -0
- google/adk/tools/long_running_tool.py +39 -0
- google/adk/tools/mcp_tool/__init__.py +42 -0
- google/adk/tools/mcp_tool/conversion_utils.py +161 -0
- google/adk/tools/mcp_tool/mcp_tool.py +113 -0
- google/adk/tools/mcp_tool/mcp_toolset.py +272 -0
- google/adk/tools/openapi_tool/__init__.py +21 -0
- google/adk/tools/openapi_tool/auth/__init__.py +19 -0
- google/adk/tools/openapi_tool/auth/auth_helpers.py +498 -0
- google/adk/tools/openapi_tool/auth/credential_exchangers/__init__.py +25 -0
- google/adk/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.py +105 -0
- google/adk/tools/openapi_tool/auth/credential_exchangers/base_credential_exchanger.py +55 -0
- google/adk/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.py +117 -0
- google/adk/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.py +97 -0
- google/adk/tools/openapi_tool/common/__init__.py +19 -0
- google/adk/tools/openapi_tool/common/common.py +300 -0
- google/adk/tools/openapi_tool/openapi_spec_parser/__init__.py +32 -0
- google/adk/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.py +231 -0
- google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py +144 -0
- google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py +260 -0
- google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +496 -0
- google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +268 -0
- google/adk/tools/preload_memory_tool.py +72 -0
- google/adk/tools/retrieval/__init__.py +36 -0
- google/adk/tools/retrieval/base_retrieval_tool.py +37 -0
- google/adk/tools/retrieval/files_retrieval.py +33 -0
- google/adk/tools/retrieval/llama_index_retrieval.py +41 -0
- google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +107 -0
- google/adk/tools/tool_context.py +90 -0
- google/adk/tools/toolbox_tool.py +46 -0
- google/adk/tools/transfer_to_agent_tool.py +21 -0
- google/adk/tools/vertex_ai_search_tool.py +96 -0
- google/adk/version.py +16 -0
- google_adk-0.0.3.dist-info/METADATA +73 -0
- google_adk-0.0.3.dist-info/RECORD +340 -0
- {google_adk-0.0.1.dist-info → google_adk-0.0.3.dist-info}/WHEEL +1 -2
- google_adk-0.0.3.dist-info/entry_points.txt +3 -0
- agent_kit/__init__.py +0 -0
- google_adk-0.0.1.dist-info/LICENSE.txt +0 -170
- google_adk-0.0.1.dist-info/METADATA +0 -15
- google_adk-0.0.1.dist-info/RECORD +0 -6
- google_adk-0.0.1.dist-info/top_level.txt +0 -1
@@ -0,0 +1,304 @@
|
|
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
|
+
import os
|
16
|
+
import sys
|
17
|
+
|
18
|
+
from google.adk import Agent
|
19
|
+
|
20
|
+
DEVICE_DB = {
|
21
|
+
"device_1": {"status": "ON", "location": "Living Room"},
|
22
|
+
"device_2": {"status": "OFF", "location": "Bedroom"},
|
23
|
+
"device_3": {"status": "OFF", "location": "Kitchen"},
|
24
|
+
}
|
25
|
+
|
26
|
+
TEMPERATURE_DB = {
|
27
|
+
"Living Room": 22,
|
28
|
+
"Bedroom": 20,
|
29
|
+
"Kitchen": 24,
|
30
|
+
}
|
31
|
+
|
32
|
+
SCHEDULE_DB = {
|
33
|
+
"device_1": {"time": "18:00", "status": "ON"},
|
34
|
+
"device_2": {"time": "22:00", "status": "OFF"},
|
35
|
+
}
|
36
|
+
|
37
|
+
USER_PREFERENCES_DB = {
|
38
|
+
"user_x": {"preferred_temp": 21, "location": "Bedroom"},
|
39
|
+
"user_x": {"preferred_temp": 21, "location": "Living Room"},
|
40
|
+
"user_y": {"preferred_temp": 23, "location": "Living Room"},
|
41
|
+
}
|
42
|
+
|
43
|
+
|
44
|
+
def reset_data():
|
45
|
+
global DEVICE_DB
|
46
|
+
global TEMPERATURE_DB
|
47
|
+
global SCHEDULE_DB
|
48
|
+
global USER_PREFERENCES_DB
|
49
|
+
DEVICE_DB = {
|
50
|
+
"device_1": {"status": "ON", "location": "Living Room"},
|
51
|
+
"device_2": {"status": "OFF", "location": "Bedroom"},
|
52
|
+
"device_3": {"status": "OFF", "location": "Kitchen"},
|
53
|
+
}
|
54
|
+
|
55
|
+
TEMPERATURE_DB = {
|
56
|
+
"Living Room": 22,
|
57
|
+
"Bedroom": 20,
|
58
|
+
"Kitchen": 24,
|
59
|
+
}
|
60
|
+
|
61
|
+
SCHEDULE_DB = {
|
62
|
+
"device_1": {"time": "18:00", "status": "ON"},
|
63
|
+
"device_2": {"time": "22:00", "status": "OFF"},
|
64
|
+
}
|
65
|
+
|
66
|
+
USER_PREFERENCES_DB = {
|
67
|
+
"user_x": {"preferred_temp": 21, "location": "Bedroom"},
|
68
|
+
"user_x": {"preferred_temp": 21, "location": "Living Room"},
|
69
|
+
"user_y": {"preferred_temp": 23, "location": "Living Room"},
|
70
|
+
}
|
71
|
+
|
72
|
+
|
73
|
+
def get_device_info(device_id: str) -> dict:
|
74
|
+
"""Get the current status and location of a AC device.
|
75
|
+
|
76
|
+
Args:
|
77
|
+
device_id (str): The unique identifier of the device.
|
78
|
+
|
79
|
+
Returns:
|
80
|
+
dict: A dictionary containing the following fields, or 'Device not found'
|
81
|
+
if the device_id does not exist:
|
82
|
+
- status: The current status of the device (e.g., 'ON', 'OFF')
|
83
|
+
- location: The location where the device is installed (e.g., 'Living
|
84
|
+
Room', 'Bedroom', ''Kitchen')
|
85
|
+
"""
|
86
|
+
return DEVICE_DB.get(device_id, "Device not found")
|
87
|
+
|
88
|
+
|
89
|
+
# def set_device_info(device_id: str, updates: dict) -> str:
|
90
|
+
# """Update the information of a AC device, specifically its status and/or location.
|
91
|
+
|
92
|
+
# Args:
|
93
|
+
# device_id (str): Required. The unique identifier of the device.
|
94
|
+
# updates (dict): Required. A dictionary containing the fields to be
|
95
|
+
# updated. Supported keys: - "status" (str): The new status to set for the
|
96
|
+
# device. Accepted values: 'ON', 'OFF'. **Only these values are allowed.**
|
97
|
+
# - "location" (str): The new location to set for the device. Accepted
|
98
|
+
# values: 'Living Room', 'Bedroom', 'Kitchen'. **Only these values are
|
99
|
+
# allowed.**
|
100
|
+
|
101
|
+
|
102
|
+
# Returns:
|
103
|
+
# str: A message indicating whether the device information was successfully
|
104
|
+
# updated.
|
105
|
+
# """
|
106
|
+
# if device_id in DEVICE_DB:
|
107
|
+
# if "status" in updates:
|
108
|
+
# DEVICE_DB[device_id]["status"] = updates["status"]
|
109
|
+
# if "location" in updates:
|
110
|
+
# DEVICE_DB[device_id]["location"] = updates["location"]
|
111
|
+
# return f"Device {device_id} information updated: {updates}."
|
112
|
+
# return "Device not found"
|
113
|
+
def set_device_info(
|
114
|
+
device_id: str, status: str = "", location: str = ""
|
115
|
+
) -> str:
|
116
|
+
"""Update the information of a AC device, specifically its status and/or location.
|
117
|
+
|
118
|
+
Args:
|
119
|
+
device_id (str): Required. The unique identifier of the device.
|
120
|
+
status (str): The new status to set for the
|
121
|
+
device. Accepted values: 'ON', 'OFF'. **Only these values are allowed.**
|
122
|
+
location (str): The new location to set for the device. Accepted
|
123
|
+
values: 'Living Room', 'Bedroom', 'Kitchen'. **Only these values are
|
124
|
+
allowed.**
|
125
|
+
|
126
|
+
Returns:
|
127
|
+
str: A message indicating whether the device information was successfully
|
128
|
+
updated.
|
129
|
+
"""
|
130
|
+
if device_id in DEVICE_DB:
|
131
|
+
if status:
|
132
|
+
DEVICE_DB[device_id]["status"] = status
|
133
|
+
return f"Device {device_id} information updated: status -> {status}."
|
134
|
+
if location:
|
135
|
+
DEVICE_DB[device_id]["location"] = location
|
136
|
+
return f"Device {device_id} information updated: location -> {location}."
|
137
|
+
return "Device not found"
|
138
|
+
|
139
|
+
|
140
|
+
def get_temperature(location: str) -> int:
|
141
|
+
"""Get the current temperature in celsius of a location (e.g., 'Living Room', 'Bedroom', 'Kitchen').
|
142
|
+
|
143
|
+
Args:
|
144
|
+
location (str): The location for which to retrieve the temperature (e.g.,
|
145
|
+
'Living Room', 'Bedroom', 'Kitchen').
|
146
|
+
|
147
|
+
Returns:
|
148
|
+
int: The current temperature in celsius in the specified location, or
|
149
|
+
'Location not found' if the location does not exist.
|
150
|
+
"""
|
151
|
+
return TEMPERATURE_DB.get(location, "Location not found")
|
152
|
+
|
153
|
+
|
154
|
+
def set_temperature(location: str, temperature: int) -> str:
|
155
|
+
"""Set the desired temperature in celsius for a location.
|
156
|
+
|
157
|
+
Acceptable range of temperature: 18-30 celsius. If it's out of the range, do
|
158
|
+
not call this tool.
|
159
|
+
|
160
|
+
Args:
|
161
|
+
location (str): The location where the temperature should be set.
|
162
|
+
temperature (int): The desired temperature as integer to set in celsius.
|
163
|
+
Acceptable range: 18-30 celsius.
|
164
|
+
|
165
|
+
Returns:
|
166
|
+
str: A message indicating whether the temperature was successfully set.
|
167
|
+
"""
|
168
|
+
if location in TEMPERATURE_DB:
|
169
|
+
TEMPERATURE_DB[location] = temperature
|
170
|
+
return f"Temperature in {location} set to {temperature}°C."
|
171
|
+
return "Location not found"
|
172
|
+
|
173
|
+
|
174
|
+
def get_user_preferences(user_id: str) -> dict:
|
175
|
+
"""Get the temperature preferences and preferred location of a user_id.
|
176
|
+
|
177
|
+
user_id must be provided.
|
178
|
+
|
179
|
+
Args:
|
180
|
+
user_id (str): The unique identifier of the user.
|
181
|
+
|
182
|
+
Returns:
|
183
|
+
dict: A dictionary containing the following fields, or 'User not found' if
|
184
|
+
the user_id does not exist:
|
185
|
+
- preferred_temp: The user's preferred temperature.
|
186
|
+
- location: The location where the user prefers to be.
|
187
|
+
"""
|
188
|
+
return USER_PREFERENCES_DB.get(user_id, "User not found")
|
189
|
+
|
190
|
+
|
191
|
+
def set_device_schedule(device_id: str, time: str, status: str) -> str:
|
192
|
+
"""Schedule a device to change its status at a specific time.
|
193
|
+
|
194
|
+
Args:
|
195
|
+
device_id (str): The unique identifier of the device.
|
196
|
+
time (str): The time at which the device should change its status (format:
|
197
|
+
'HH:MM').
|
198
|
+
status (str): The status to set for the device at the specified time
|
199
|
+
(e.g., 'ON', 'OFF').
|
200
|
+
|
201
|
+
Returns:
|
202
|
+
str: A message indicating whether the schedule was successfully set.
|
203
|
+
"""
|
204
|
+
if device_id in DEVICE_DB:
|
205
|
+
SCHEDULE_DB[device_id] = {"time": time, "status": status}
|
206
|
+
return f"Device {device_id} scheduled to turn {status} at {time}."
|
207
|
+
return "Device not found"
|
208
|
+
|
209
|
+
|
210
|
+
def get_device_schedule(device_id: str) -> dict:
|
211
|
+
"""Retrieve the schedule of a device.
|
212
|
+
|
213
|
+
Args:
|
214
|
+
device_id (str): The unique identifier of the device.
|
215
|
+
|
216
|
+
Returns:
|
217
|
+
dict: A dictionary containing the following fields, or 'Schedule not
|
218
|
+
found' if the device_id does not exist:
|
219
|
+
- time: The scheduled time for the device to change its status (format:
|
220
|
+
'HH:MM').
|
221
|
+
- status: The status that will be set at the scheduled time (e.g., 'ON',
|
222
|
+
'OFF').
|
223
|
+
"""
|
224
|
+
return SCHEDULE_DB.get(device_id, "Schedule not found")
|
225
|
+
|
226
|
+
|
227
|
+
def celsius_to_fahrenheit(celsius: int) -> float:
|
228
|
+
"""Convert Celsius to Fahrenheit.
|
229
|
+
|
230
|
+
You must call this to do the conversion of temperature, so you can get the
|
231
|
+
precise number in required format.
|
232
|
+
|
233
|
+
Args:
|
234
|
+
celsius (int): Temperature in Celsius.
|
235
|
+
|
236
|
+
Returns:
|
237
|
+
float: Temperature in Fahrenheit.
|
238
|
+
"""
|
239
|
+
return (celsius * 9 / 5) + 32
|
240
|
+
|
241
|
+
|
242
|
+
def fahrenheit_to_celsius(fahrenheit: float) -> int:
|
243
|
+
"""Convert Fahrenheit to Celsius.
|
244
|
+
|
245
|
+
You must call this to do the conversion of temperature, so you can get the
|
246
|
+
precise number in required format.
|
247
|
+
|
248
|
+
Args:
|
249
|
+
fahrenheit (float): Temperature in Fahrenheit.
|
250
|
+
|
251
|
+
Returns:
|
252
|
+
int: Temperature in Celsius.
|
253
|
+
"""
|
254
|
+
return int((fahrenheit - 32) * 5 / 9)
|
255
|
+
|
256
|
+
|
257
|
+
def list_devices(status: str = "", location: str = "") -> list:
|
258
|
+
"""Retrieve a list of AC devices, filtered by status and/or location when provided.
|
259
|
+
|
260
|
+
For cost efficiency, always apply as many filters (status and location) as
|
261
|
+
available in the input arguments.
|
262
|
+
|
263
|
+
Args:
|
264
|
+
status (str, optional): The status to filter devices by (e.g., 'ON',
|
265
|
+
'OFF'). Defaults to None.
|
266
|
+
location (str, optional): The location to filter devices by (e.g., 'Living
|
267
|
+
Room', 'Bedroom', ''Kitchen'). Defaults to None.
|
268
|
+
|
269
|
+
Returns:
|
270
|
+
list: A list of dictionaries, each containing the device ID, status, and
|
271
|
+
location, or an empty list if no devices match the criteria.
|
272
|
+
"""
|
273
|
+
devices = []
|
274
|
+
for device_id, info in DEVICE_DB.items():
|
275
|
+
if ((not status) or info["status"] == status) and (
|
276
|
+
(not location) or info["location"] == location
|
277
|
+
):
|
278
|
+
devices.append({
|
279
|
+
"device_id": device_id,
|
280
|
+
"status": info["status"],
|
281
|
+
"location": info["location"],
|
282
|
+
})
|
283
|
+
return devices if devices else "No devices found matching the criteria."
|
284
|
+
|
285
|
+
|
286
|
+
root_agent = Agent(
|
287
|
+
model="gemini-2.0-flash-001",
|
288
|
+
name="Home_automation_agent",
|
289
|
+
instruction="""
|
290
|
+
You are Home Automation Agent. You are responsible for controlling the devices in the home.
|
291
|
+
""",
|
292
|
+
tools=[
|
293
|
+
get_device_info,
|
294
|
+
set_device_info,
|
295
|
+
get_temperature,
|
296
|
+
set_temperature,
|
297
|
+
get_user_preferences,
|
298
|
+
set_device_schedule,
|
299
|
+
get_device_schedule,
|
300
|
+
celsius_to_fahrenheit,
|
301
|
+
fahrenheit_to_celsius,
|
302
|
+
list_devices,
|
303
|
+
],
|
304
|
+
)
|
google/adk/tests/integration/fixture/home_automation_agent/test_files/dependent_tool_calls.test.json
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"query": "Turn off device_2 in the Bedroom.",
|
4
|
+
"expected_tool_use": [{
|
5
|
+
"tool_name": "set_device_info",
|
6
|
+
"tool_input": {"location": "Bedroom", "status": "OFF", "device_id": "device_2"}
|
7
|
+
}],
|
8
|
+
"reference": "I have set the device 2 status to off."
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"query": "What's the status of device_2 in the Bedroom?",
|
12
|
+
"expected_tool_use": [{
|
13
|
+
"tool_name": "get_device_info",
|
14
|
+
"tool_input": {"device_id": "device_2"}
|
15
|
+
}],
|
16
|
+
"reference": "Status of device_2 is off."
|
17
|
+
}
|
18
|
+
]
|
@@ -0,0 +1,17 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"query": "Turn off device_2 in the Bedroom.",
|
4
|
+
"expected_tool_use": [
|
5
|
+
{
|
6
|
+
"tool_name": "set_device_info",
|
7
|
+
"tool_input": {"location": "Bedroom", "device_id": "device_2", "status": "OFF"}
|
8
|
+
}
|
9
|
+
],
|
10
|
+
"reference": "OK. I've turned off device_2 in the Bedroom. Anything else?\n"
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"query": "What's the command I just issued?",
|
14
|
+
"expected_tool_use": [],
|
15
|
+
"reference": "You asked me to turn off device_2 in the Bedroom.\n"
|
16
|
+
}
|
17
|
+
]
|
@@ -0,0 +1,18 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"query": "Turn off device_2 in the Bedroom.",
|
4
|
+
"expected_tool_use": [{
|
5
|
+
"tool_name": "set_device_info",
|
6
|
+
"tool_input": {"location": "Bedroom", "device_id": "device_2", "status": "OFF"}
|
7
|
+
}],
|
8
|
+
"reference": "I have set the device 2 status to off."
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"query": "Turn on device_2 in the Bedroom.",
|
12
|
+
"expected_tool_use": [{
|
13
|
+
"tool_name": "set_device_info",
|
14
|
+
"tool_input": {"location": "Bedroom", "status": "ON", "device_id": "device_2"}
|
15
|
+
}],
|
16
|
+
"reference": "I have set the device 2 status to on."
|
17
|
+
}
|
18
|
+
]
|
@@ -0,0 +1,17 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"query": "Turn off device_2 in the Bedroom.",
|
4
|
+
"expected_tool_use": [
|
5
|
+
{
|
6
|
+
"tool_name": "set_device_info",
|
7
|
+
"tool_input": {"location": "Bedroom", "device_id": "device_2", "status": "OFF"}
|
8
|
+
}
|
9
|
+
],
|
10
|
+
"reference": "OK. I've turned off device_2 in the Bedroom. Anything else?\n"
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"query": "What's the command I just issued?",
|
14
|
+
"expected_tool_use": [],
|
15
|
+
"reference": "You asked me to turn off device_2 in the Bedroom.\n"
|
16
|
+
}
|
17
|
+
]
|
@@ -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,0 +1,218 @@
|
|
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
|
+
import os
|
16
|
+
from typing import Any
|
17
|
+
|
18
|
+
from crewai_tools import DirectoryReadTool
|
19
|
+
from google.adk import Agent
|
20
|
+
from google.adk.tools.agent_tool import AgentTool
|
21
|
+
from google.adk.tools.crewai_tool import CrewaiTool
|
22
|
+
from google.adk.tools.langchain_tool import LangchainTool
|
23
|
+
from google.adk.tools.retrieval.files_retrieval import FilesRetrieval
|
24
|
+
from google.adk.tools.retrieval.vertex_ai_rag_retrieval import VertexAiRagRetrieval
|
25
|
+
from langchain_community.tools import ShellTool
|
26
|
+
from pydantic import BaseModel
|
27
|
+
|
28
|
+
|
29
|
+
class TestCase(BaseModel):
|
30
|
+
case: str
|
31
|
+
|
32
|
+
|
33
|
+
class Test(BaseModel):
|
34
|
+
test_title: list[str]
|
35
|
+
|
36
|
+
|
37
|
+
def simple_function(param: str) -> str:
|
38
|
+
if isinstance(param, str):
|
39
|
+
return "Called simple function successfully"
|
40
|
+
return "Called simple function with wrong param type"
|
41
|
+
|
42
|
+
|
43
|
+
def no_param_function() -> str:
|
44
|
+
return "Called no param function successfully"
|
45
|
+
|
46
|
+
|
47
|
+
def no_output_function(param: str):
|
48
|
+
return
|
49
|
+
|
50
|
+
|
51
|
+
def multiple_param_types_function(
|
52
|
+
param1: str, param2: int, param3: float, param4: bool
|
53
|
+
) -> str:
|
54
|
+
if (
|
55
|
+
isinstance(param1, str)
|
56
|
+
and isinstance(param2, int)
|
57
|
+
and isinstance(param3, float)
|
58
|
+
and isinstance(param4, bool)
|
59
|
+
):
|
60
|
+
return "Called multiple param types function successfully"
|
61
|
+
return "Called multiple param types function with wrong param types"
|
62
|
+
|
63
|
+
|
64
|
+
def throw_error_function(param: str) -> str:
|
65
|
+
raise ValueError("Error thrown by throw_error_function")
|
66
|
+
|
67
|
+
|
68
|
+
def list_str_param_function(param: list[str]) -> str:
|
69
|
+
if isinstance(param, list) and all(isinstance(item, str) for item in param):
|
70
|
+
return "Called list str param function successfully"
|
71
|
+
return "Called list str param function with wrong param type"
|
72
|
+
|
73
|
+
|
74
|
+
def return_list_str_function(param: str) -> list[str]:
|
75
|
+
return ["Called return list str function successfully"]
|
76
|
+
|
77
|
+
|
78
|
+
def complex_function_list_dict(
|
79
|
+
param1: dict[str, Any], param2: list[dict[str, Any]]
|
80
|
+
) -> list[Test]:
|
81
|
+
if (
|
82
|
+
isinstance(param1, dict)
|
83
|
+
and isinstance(param2, list)
|
84
|
+
and all(isinstance(item, dict) for item in param2)
|
85
|
+
):
|
86
|
+
return [
|
87
|
+
Test(test_title=["function test 1", "function test 2"]),
|
88
|
+
Test(test_title=["retrieval test"]),
|
89
|
+
]
|
90
|
+
raise ValueError("Wrong param")
|
91
|
+
|
92
|
+
|
93
|
+
def repetive_call_1(param: str):
|
94
|
+
return f"Call repetive_call_2 tool with param {param + '_repetive'}"
|
95
|
+
|
96
|
+
|
97
|
+
def repetive_call_2(param: str):
|
98
|
+
return param
|
99
|
+
|
100
|
+
|
101
|
+
test_case_retrieval = FilesRetrieval(
|
102
|
+
name="test_case_retrieval",
|
103
|
+
description="General guidence for agent test cases",
|
104
|
+
input_dir=os.path.join(os.path.dirname(__file__), "files"),
|
105
|
+
)
|
106
|
+
|
107
|
+
valid_rag_retrieval = VertexAiRagRetrieval(
|
108
|
+
name="valid_rag_retrieval",
|
109
|
+
rag_corpora=[
|
110
|
+
"projects/1096655024998/locations/us-central1/ragCorpora/4985766262475849728"
|
111
|
+
],
|
112
|
+
description="General guidence for agent test cases",
|
113
|
+
)
|
114
|
+
|
115
|
+
invalid_rag_retrieval = VertexAiRagRetrieval(
|
116
|
+
name="invalid_rag_retrieval",
|
117
|
+
rag_corpora=[
|
118
|
+
"projects/1096655024998/locations/us-central1/InValidRagCorporas/4985766262475849728"
|
119
|
+
],
|
120
|
+
description="Invalid rag retrieval resource name",
|
121
|
+
)
|
122
|
+
|
123
|
+
non_exist_rag_retrieval = VertexAiRagRetrieval(
|
124
|
+
name="non_exist_rag_retrieval",
|
125
|
+
rag_corpora=[
|
126
|
+
"projects/1096655024998/locations/us-central1/RagCorpora/1234567"
|
127
|
+
],
|
128
|
+
description="Non exist rag retrieval resource name",
|
129
|
+
)
|
130
|
+
|
131
|
+
shell_tool = LangchainTool(ShellTool())
|
132
|
+
|
133
|
+
docs_tool = CrewaiTool(
|
134
|
+
name="direcotry_read_tool",
|
135
|
+
description="use this to find files for you.",
|
136
|
+
tool=DirectoryReadTool(directory="."),
|
137
|
+
)
|
138
|
+
|
139
|
+
no_schema_agent = Agent(
|
140
|
+
model="gemini-1.5-flash",
|
141
|
+
name="no_schema_agent",
|
142
|
+
instruction="""Just say 'Hi'
|
143
|
+
""",
|
144
|
+
)
|
145
|
+
|
146
|
+
schema_agent = Agent(
|
147
|
+
model="gemini-1.5-flash",
|
148
|
+
name="schema_agent",
|
149
|
+
instruction="""
|
150
|
+
You will be given a test case.
|
151
|
+
Return a list of the received test case appended with '_success' and '_failure' as test_titles
|
152
|
+
""",
|
153
|
+
input_schema=TestCase,
|
154
|
+
output_schema=Test,
|
155
|
+
)
|
156
|
+
|
157
|
+
no_input_schema_agent = Agent(
|
158
|
+
model="gemini-1.5-flash",
|
159
|
+
name="no_input_schema_agent",
|
160
|
+
instruction="""
|
161
|
+
Just return ['Tools_success, Tools_failure']
|
162
|
+
""",
|
163
|
+
output_schema=Test,
|
164
|
+
)
|
165
|
+
|
166
|
+
no_output_schema_agent = Agent(
|
167
|
+
model="gemini-1.5-flash",
|
168
|
+
name="no_output_schema_agent",
|
169
|
+
instruction="""
|
170
|
+
Just say 'Hi'
|
171
|
+
""",
|
172
|
+
input_schema=TestCase,
|
173
|
+
)
|
174
|
+
|
175
|
+
single_function_agent = Agent(
|
176
|
+
model="gemini-1.5-flash",
|
177
|
+
name="single_function_agent",
|
178
|
+
description="An agent that calls a single function",
|
179
|
+
instruction="When calling tools, just return what the tool returns.",
|
180
|
+
tools=[simple_function],
|
181
|
+
)
|
182
|
+
|
183
|
+
root_agent = Agent(
|
184
|
+
model="gemini-1.5-flash",
|
185
|
+
name="tool_agent",
|
186
|
+
description="An agent that can call other tools",
|
187
|
+
instruction="When calling tools, just return what the tool returns.",
|
188
|
+
tools=[
|
189
|
+
simple_function,
|
190
|
+
no_param_function,
|
191
|
+
no_output_function,
|
192
|
+
multiple_param_types_function,
|
193
|
+
throw_error_function,
|
194
|
+
list_str_param_function,
|
195
|
+
return_list_str_function,
|
196
|
+
# complex_function_list_dict,
|
197
|
+
repetive_call_1,
|
198
|
+
repetive_call_2,
|
199
|
+
test_case_retrieval,
|
200
|
+
valid_rag_retrieval,
|
201
|
+
invalid_rag_retrieval,
|
202
|
+
non_exist_rag_retrieval,
|
203
|
+
shell_tool,
|
204
|
+
docs_tool,
|
205
|
+
AgentTool(
|
206
|
+
agent=no_schema_agent,
|
207
|
+
),
|
208
|
+
AgentTool(
|
209
|
+
agent=schema_agent,
|
210
|
+
),
|
211
|
+
AgentTool(
|
212
|
+
agent=no_input_schema_agent,
|
213
|
+
),
|
214
|
+
AgentTool(
|
215
|
+
agent=no_output_schema_agent,
|
216
|
+
),
|
217
|
+
],
|
218
|
+
)
|
@@ -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
|