google-adk 0.0.1__py3-none-any.whl → 0.0.2__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.
Files changed (312) hide show
  1. google/adk/__init__.py +20 -0
  2. google/adk/agents/__init__.py +32 -0
  3. google/adk/agents/active_streaming_tool.py +38 -0
  4. google/adk/agents/base_agent.py +345 -0
  5. google/adk/agents/callback_context.py +112 -0
  6. google/adk/agents/invocation_context.py +181 -0
  7. google/adk/agents/langgraph_agent.py +140 -0
  8. google/adk/agents/live_request_queue.py +64 -0
  9. google/adk/agents/llm_agent.py +376 -0
  10. google/adk/agents/loop_agent.py +62 -0
  11. google/adk/agents/parallel_agent.py +96 -0
  12. google/adk/agents/readonly_context.py +46 -0
  13. google/adk/agents/remote_agent.py +50 -0
  14. google/adk/agents/run_config.py +87 -0
  15. google/adk/agents/sequential_agent.py +45 -0
  16. google/adk/agents/transcription_entry.py +34 -0
  17. google/adk/artifacts/__init__.py +23 -0
  18. google/adk/artifacts/base_artifact_service.py +128 -0
  19. google/adk/artifacts/gcs_artifact_service.py +195 -0
  20. google/adk/artifacts/in_memory_artifact_service.py +133 -0
  21. google/adk/auth/__init__.py +22 -0
  22. google/adk/auth/auth_credential.py +220 -0
  23. google/adk/auth/auth_handler.py +268 -0
  24. google/adk/auth/auth_preprocessor.py +116 -0
  25. google/adk/auth/auth_schemes.py +67 -0
  26. google/adk/auth/auth_tool.py +55 -0
  27. google/adk/cli/__init__.py +15 -0
  28. google/adk/cli/__main__.py +18 -0
  29. google/adk/cli/agent_graph.py +122 -0
  30. google/adk/cli/browser/adk_favicon.svg +17 -0
  31. google/adk/cli/browser/assets/audio-processor.js +51 -0
  32. google/adk/cli/browser/assets/config/runtime-config.json +3 -0
  33. google/adk/cli/browser/index.html +33 -0
  34. google/adk/cli/browser/main-XUU6OGCC.js +75 -0
  35. google/adk/cli/browser/polyfills-FFHMD2TL.js +18 -0
  36. google/adk/cli/browser/styles-4VDSPQ37.css +17 -0
  37. google/adk/cli/cli.py +181 -0
  38. google/adk/cli/cli_deploy.py +181 -0
  39. google/adk/cli/cli_eval.py +282 -0
  40. google/adk/cli/cli_tools_click.py +479 -0
  41. google/adk/cli/fast_api.py +774 -0
  42. google/adk/cli/media_streamer/__init__.py +19 -0
  43. google/adk/cli/media_streamer/index.html +228 -0
  44. google/adk/cli/utils/__init__.py +49 -0
  45. google/adk/cli/utils/envs.py +57 -0
  46. google/adk/cli/utils/evals.py +93 -0
  47. google/adk/cli/utils/logs.py +72 -0
  48. google/adk/code_executors/__init__.py +49 -0
  49. google/adk/code_executors/base_code_executor.py +97 -0
  50. google/adk/code_executors/code_execution_utils.py +256 -0
  51. google/adk/code_executors/code_executor_context.py +202 -0
  52. google/adk/code_executors/container_code_executor.py +196 -0
  53. google/adk/code_executors/unsafe_local_code_executor.py +71 -0
  54. google/adk/code_executors/vertex_ai_code_executor.py +234 -0
  55. google/adk/evaluation/__init__.py +31 -0
  56. google/adk/evaluation/agent_evaluator.py +329 -0
  57. google/adk/evaluation/evaluation_constants.py +24 -0
  58. google/adk/evaluation/evaluation_generator.py +270 -0
  59. google/adk/evaluation/response_evaluator.py +135 -0
  60. google/adk/evaluation/trajectory_evaluator.py +184 -0
  61. google/adk/events/__init__.py +21 -0
  62. google/adk/events/event.py +130 -0
  63. google/adk/events/event_actions.py +55 -0
  64. google/adk/examples/__init__.py +28 -0
  65. google/adk/examples/base_example_provider.py +35 -0
  66. google/adk/examples/example.py +27 -0
  67. google/adk/examples/example_util.py +123 -0
  68. google/adk/examples/vertex_ai_example_store.py +104 -0
  69. google/adk/flows/__init__.py +14 -0
  70. google/adk/flows/llm_flows/__init__.py +20 -0
  71. google/adk/flows/llm_flows/_base_llm_processor.py +52 -0
  72. google/adk/flows/llm_flows/_code_execution.py +458 -0
  73. google/adk/flows/llm_flows/_nl_planning.py +129 -0
  74. google/adk/flows/llm_flows/agent_transfer.py +132 -0
  75. google/adk/flows/llm_flows/audio_transcriber.py +109 -0
  76. google/adk/flows/llm_flows/auto_flow.py +49 -0
  77. google/adk/flows/llm_flows/base_llm_flow.py +559 -0
  78. google/adk/flows/llm_flows/basic.py +72 -0
  79. google/adk/flows/llm_flows/contents.py +370 -0
  80. google/adk/flows/llm_flows/functions.py +486 -0
  81. google/adk/flows/llm_flows/identity.py +47 -0
  82. google/adk/flows/llm_flows/instructions.py +137 -0
  83. google/adk/flows/llm_flows/single_flow.py +57 -0
  84. google/adk/memory/__init__.py +35 -0
  85. google/adk/memory/base_memory_service.py +74 -0
  86. google/adk/memory/in_memory_memory_service.py +62 -0
  87. google/adk/memory/vertex_ai_rag_memory_service.py +177 -0
  88. google/adk/models/__init__.py +31 -0
  89. google/adk/models/anthropic_llm.py +243 -0
  90. google/adk/models/base_llm.py +87 -0
  91. google/adk/models/base_llm_connection.py +76 -0
  92. google/adk/models/gemini_llm_connection.py +200 -0
  93. google/adk/models/google_llm.py +331 -0
  94. google/adk/models/lite_llm.py +673 -0
  95. google/adk/models/llm_request.py +98 -0
  96. google/adk/models/llm_response.py +111 -0
  97. google/adk/models/registry.py +102 -0
  98. google/adk/planners/__init__.py +23 -0
  99. google/adk/planners/base_planner.py +66 -0
  100. google/adk/planners/built_in_planner.py +75 -0
  101. google/adk/planners/plan_re_act_planner.py +208 -0
  102. google/adk/runners.py +456 -0
  103. google/adk/sessions/__init__.py +41 -0
  104. google/adk/sessions/base_session_service.py +133 -0
  105. google/adk/sessions/database_session_service.py +522 -0
  106. google/adk/sessions/in_memory_session_service.py +206 -0
  107. google/adk/sessions/session.py +54 -0
  108. google/adk/sessions/state.py +71 -0
  109. google/adk/sessions/vertex_ai_session_service.py +356 -0
  110. google/adk/telemetry.py +189 -0
  111. google/adk/tests/__init__.py +14 -0
  112. google/adk/tests/integration/.env.example +10 -0
  113. google/adk/tests/integration/__init__.py +18 -0
  114. google/adk/tests/integration/conftest.py +119 -0
  115. google/adk/tests/integration/fixture/__init__.py +14 -0
  116. google/adk/tests/integration/fixture/agent_with_config/__init__.py +15 -0
  117. google/adk/tests/integration/fixture/agent_with_config/agent.py +88 -0
  118. google/adk/tests/integration/fixture/callback_agent/__init__.py +15 -0
  119. google/adk/tests/integration/fixture/callback_agent/agent.py +105 -0
  120. google/adk/tests/integration/fixture/context_update_test/OWNERS +1 -0
  121. google/adk/tests/integration/fixture/context_update_test/__init__.py +15 -0
  122. google/adk/tests/integration/fixture/context_update_test/agent.py +43 -0
  123. google/adk/tests/integration/fixture/context_update_test/successful_test.session.json +582 -0
  124. google/adk/tests/integration/fixture/context_variable_agent/__init__.py +15 -0
  125. google/adk/tests/integration/fixture/context_variable_agent/agent.py +115 -0
  126. google/adk/tests/integration/fixture/customer_support_ma/__init__.py +15 -0
  127. google/adk/tests/integration/fixture/customer_support_ma/agent.py +172 -0
  128. google/adk/tests/integration/fixture/ecommerce_customer_service_agent/__init__.py +15 -0
  129. google/adk/tests/integration/fixture/ecommerce_customer_service_agent/agent.py +338 -0
  130. google/adk/tests/integration/fixture/ecommerce_customer_service_agent/order_query.test.json +69 -0
  131. google/adk/tests/integration/fixture/ecommerce_customer_service_agent/test_config.json +6 -0
  132. google/adk/tests/integration/fixture/flow_complex_spark/__init__.py +15 -0
  133. google/adk/tests/integration/fixture/flow_complex_spark/agent.py +182 -0
  134. google/adk/tests/integration/fixture/flow_complex_spark/sample.debug.log +243 -0
  135. google/adk/tests/integration/fixture/flow_complex_spark/sample.session.json +190 -0
  136. google/adk/tests/integration/fixture/hello_world_agent/__init__.py +15 -0
  137. google/adk/tests/integration/fixture/hello_world_agent/agent.py +95 -0
  138. google/adk/tests/integration/fixture/hello_world_agent/roll_die.test.json +24 -0
  139. google/adk/tests/integration/fixture/hello_world_agent/test_config.json +6 -0
  140. google/adk/tests/integration/fixture/home_automation_agent/__init__.py +15 -0
  141. google/adk/tests/integration/fixture/home_automation_agent/agent.py +304 -0
  142. google/adk/tests/integration/fixture/home_automation_agent/simple_test.test.json +5 -0
  143. google/adk/tests/integration/fixture/home_automation_agent/simple_test2.test.json +5 -0
  144. google/adk/tests/integration/fixture/home_automation_agent/test_config.json +5 -0
  145. google/adk/tests/integration/fixture/home_automation_agent/test_files/dependent_tool_calls.test.json +18 -0
  146. google/adk/tests/integration/fixture/home_automation_agent/test_files/memorizing_past_events/eval_data.test.json +17 -0
  147. google/adk/tests/integration/fixture/home_automation_agent/test_files/memorizing_past_events/test_config.json +6 -0
  148. google/adk/tests/integration/fixture/home_automation_agent/test_files/simple_multi_turn_conversation.test.json +18 -0
  149. google/adk/tests/integration/fixture/home_automation_agent/test_files/simple_test.test.json +17 -0
  150. google/adk/tests/integration/fixture/home_automation_agent/test_files/simple_test2.test.json +5 -0
  151. google/adk/tests/integration/fixture/home_automation_agent/test_files/test_config.json +5 -0
  152. google/adk/tests/integration/fixture/tool_agent/__init__.py +15 -0
  153. google/adk/tests/integration/fixture/tool_agent/agent.py +218 -0
  154. google/adk/tests/integration/fixture/tool_agent/files/Agent_test_plan.pdf +0 -0
  155. google/adk/tests/integration/fixture/trip_planner_agent/__init__.py +15 -0
  156. google/adk/tests/integration/fixture/trip_planner_agent/agent.py +110 -0
  157. google/adk/tests/integration/fixture/trip_planner_agent/initial.session.json +13 -0
  158. google/adk/tests/integration/fixture/trip_planner_agent/test_config.json +5 -0
  159. google/adk/tests/integration/fixture/trip_planner_agent/test_files/initial.session.json +13 -0
  160. google/adk/tests/integration/fixture/trip_planner_agent/test_files/test_config.json +5 -0
  161. google/adk/tests/integration/fixture/trip_planner_agent/test_files/trip_inquiry_sub_agent.test.json +7 -0
  162. google/adk/tests/integration/fixture/trip_planner_agent/trip_inquiry.test.json +19 -0
  163. google/adk/tests/integration/models/__init__.py +14 -0
  164. google/adk/tests/integration/models/test_google_llm.py +65 -0
  165. google/adk/tests/integration/test_callback.py +70 -0
  166. google/adk/tests/integration/test_context_variable.py +67 -0
  167. google/adk/tests/integration/test_evalute_agent_in_fixture.py +76 -0
  168. google/adk/tests/integration/test_multi_agent.py +28 -0
  169. google/adk/tests/integration/test_multi_turn.py +42 -0
  170. google/adk/tests/integration/test_single_agent.py +23 -0
  171. google/adk/tests/integration/test_sub_agent.py +26 -0
  172. google/adk/tests/integration/test_system_instruction.py +177 -0
  173. google/adk/tests/integration/test_tools.py +287 -0
  174. google/adk/tests/integration/test_with_test_file.py +34 -0
  175. google/adk/tests/integration/tools/__init__.py +14 -0
  176. google/adk/tests/integration/utils/__init__.py +16 -0
  177. google/adk/tests/integration/utils/asserts.py +75 -0
  178. google/adk/tests/integration/utils/test_runner.py +97 -0
  179. google/adk/tests/unittests/__init__.py +14 -0
  180. google/adk/tests/unittests/agents/__init__.py +14 -0
  181. google/adk/tests/unittests/agents/test_base_agent.py +407 -0
  182. google/adk/tests/unittests/agents/test_langgraph_agent.py +191 -0
  183. google/adk/tests/unittests/agents/test_llm_agent_callbacks.py +138 -0
  184. google/adk/tests/unittests/agents/test_llm_agent_fields.py +231 -0
  185. google/adk/tests/unittests/agents/test_loop_agent.py +136 -0
  186. google/adk/tests/unittests/agents/test_parallel_agent.py +92 -0
  187. google/adk/tests/unittests/agents/test_sequential_agent.py +114 -0
  188. google/adk/tests/unittests/artifacts/__init__.py +14 -0
  189. google/adk/tests/unittests/artifacts/test_artifact_service.py +276 -0
  190. google/adk/tests/unittests/auth/test_auth_handler.py +575 -0
  191. google/adk/tests/unittests/conftest.py +73 -0
  192. google/adk/tests/unittests/fast_api/__init__.py +14 -0
  193. google/adk/tests/unittests/fast_api/test_fast_api.py +269 -0
  194. google/adk/tests/unittests/flows/__init__.py +14 -0
  195. google/adk/tests/unittests/flows/llm_flows/__init__.py +14 -0
  196. google/adk/tests/unittests/flows/llm_flows/_test_examples.py +142 -0
  197. google/adk/tests/unittests/flows/llm_flows/test_agent_transfer.py +311 -0
  198. google/adk/tests/unittests/flows/llm_flows/test_functions_long_running.py +244 -0
  199. google/adk/tests/unittests/flows/llm_flows/test_functions_request_euc.py +346 -0
  200. google/adk/tests/unittests/flows/llm_flows/test_functions_sequential.py +93 -0
  201. google/adk/tests/unittests/flows/llm_flows/test_functions_simple.py +258 -0
  202. google/adk/tests/unittests/flows/llm_flows/test_identity.py +66 -0
  203. google/adk/tests/unittests/flows/llm_flows/test_instructions.py +164 -0
  204. google/adk/tests/unittests/flows/llm_flows/test_model_callbacks.py +142 -0
  205. google/adk/tests/unittests/flows/llm_flows/test_other_configs.py +46 -0
  206. google/adk/tests/unittests/flows/llm_flows/test_tool_callbacks.py +269 -0
  207. google/adk/tests/unittests/models/__init__.py +14 -0
  208. google/adk/tests/unittests/models/test_google_llm.py +224 -0
  209. google/adk/tests/unittests/models/test_litellm.py +804 -0
  210. google/adk/tests/unittests/models/test_models.py +60 -0
  211. google/adk/tests/unittests/sessions/__init__.py +14 -0
  212. google/adk/tests/unittests/sessions/test_session_service.py +227 -0
  213. google/adk/tests/unittests/sessions/test_vertex_ai_session_service.py +246 -0
  214. google/adk/tests/unittests/streaming/__init__.py +14 -0
  215. google/adk/tests/unittests/streaming/test_streaming.py +50 -0
  216. google/adk/tests/unittests/tools/__init__.py +14 -0
  217. google/adk/tests/unittests/tools/apihub_tool/clients/test_apihub_client.py +499 -0
  218. google/adk/tests/unittests/tools/apihub_tool/test_apihub_toolset.py +204 -0
  219. google/adk/tests/unittests/tools/application_integration_tool/clients/test_connections_client.py +600 -0
  220. google/adk/tests/unittests/tools/application_integration_tool/clients/test_integration_client.py +630 -0
  221. google/adk/tests/unittests/tools/application_integration_tool/test_application_integration_toolset.py +345 -0
  222. google/adk/tests/unittests/tools/google_api_tool/__init__.py +13 -0
  223. google/adk/tests/unittests/tools/google_api_tool/test_googleapi_to_openapi_converter.py +657 -0
  224. google/adk/tests/unittests/tools/openapi_tool/auth/credential_exchangers/test_auto_auth_credential_exchanger.py +145 -0
  225. google/adk/tests/unittests/tools/openapi_tool/auth/credential_exchangers/test_base_auth_credential_exchanger.py +68 -0
  226. google/adk/tests/unittests/tools/openapi_tool/auth/credential_exchangers/test_oauth2_exchanger.py +153 -0
  227. google/adk/tests/unittests/tools/openapi_tool/auth/credential_exchangers/test_service_account_exchanger.py +196 -0
  228. google/adk/tests/unittests/tools/openapi_tool/auth/test_auth_helper.py +573 -0
  229. google/adk/tests/unittests/tools/openapi_tool/common/test_common.py +436 -0
  230. google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test.yaml +1367 -0
  231. google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_openapi_spec_parser.py +628 -0
  232. google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_openapi_toolset.py +139 -0
  233. google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_operation_parser.py +406 -0
  234. google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_rest_api_tool.py +966 -0
  235. google/adk/tests/unittests/tools/openapi_tool/openapi_spec_parser/test_tool_auth_handler.py +201 -0
  236. google/adk/tests/unittests/tools/retrieval/__init__.py +14 -0
  237. google/adk/tests/unittests/tools/retrieval/test_vertex_ai_rag_retrieval.py +147 -0
  238. google/adk/tests/unittests/tools/test_agent_tool.py +167 -0
  239. google/adk/tests/unittests/tools/test_base_tool.py +141 -0
  240. google/adk/tests/unittests/tools/test_build_function_declaration.py +277 -0
  241. google/adk/tests/unittests/utils.py +304 -0
  242. google/adk/tools/__init__.py +51 -0
  243. google/adk/tools/_automatic_function_calling_util.py +346 -0
  244. google/adk/tools/agent_tool.py +176 -0
  245. google/adk/tools/apihub_tool/__init__.py +19 -0
  246. google/adk/tools/apihub_tool/apihub_toolset.py +209 -0
  247. google/adk/tools/apihub_tool/clients/__init__.py +13 -0
  248. google/adk/tools/apihub_tool/clients/apihub_client.py +332 -0
  249. google/adk/tools/apihub_tool/clients/secret_client.py +115 -0
  250. google/adk/tools/application_integration_tool/__init__.py +19 -0
  251. google/adk/tools/application_integration_tool/application_integration_toolset.py +230 -0
  252. google/adk/tools/application_integration_tool/clients/connections_client.py +903 -0
  253. google/adk/tools/application_integration_tool/clients/integration_client.py +253 -0
  254. google/adk/tools/base_tool.py +144 -0
  255. google/adk/tools/built_in_code_execution_tool.py +59 -0
  256. google/adk/tools/crewai_tool.py +72 -0
  257. google/adk/tools/example_tool.py +62 -0
  258. google/adk/tools/exit_loop_tool.py +23 -0
  259. google/adk/tools/function_parameter_parse_util.py +307 -0
  260. google/adk/tools/function_tool.py +87 -0
  261. google/adk/tools/get_user_choice_tool.py +28 -0
  262. google/adk/tools/google_api_tool/__init__.py +14 -0
  263. google/adk/tools/google_api_tool/google_api_tool.py +59 -0
  264. google/adk/tools/google_api_tool/google_api_tool_set.py +107 -0
  265. google/adk/tools/google_api_tool/google_api_tool_sets.py +55 -0
  266. google/adk/tools/google_api_tool/googleapi_to_openapi_converter.py +521 -0
  267. google/adk/tools/google_search_tool.py +68 -0
  268. google/adk/tools/langchain_tool.py +86 -0
  269. google/adk/tools/load_artifacts_tool.py +113 -0
  270. google/adk/tools/load_memory_tool.py +58 -0
  271. google/adk/tools/load_web_page.py +41 -0
  272. google/adk/tools/long_running_tool.py +39 -0
  273. google/adk/tools/mcp_tool/__init__.py +42 -0
  274. google/adk/tools/mcp_tool/conversion_utils.py +161 -0
  275. google/adk/tools/mcp_tool/mcp_tool.py +113 -0
  276. google/adk/tools/mcp_tool/mcp_toolset.py +272 -0
  277. google/adk/tools/openapi_tool/__init__.py +21 -0
  278. google/adk/tools/openapi_tool/auth/__init__.py +19 -0
  279. google/adk/tools/openapi_tool/auth/auth_helpers.py +498 -0
  280. google/adk/tools/openapi_tool/auth/credential_exchangers/__init__.py +25 -0
  281. google/adk/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.py +105 -0
  282. google/adk/tools/openapi_tool/auth/credential_exchangers/base_credential_exchanger.py +55 -0
  283. google/adk/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.py +117 -0
  284. google/adk/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.py +97 -0
  285. google/adk/tools/openapi_tool/common/__init__.py +19 -0
  286. google/adk/tools/openapi_tool/common/common.py +300 -0
  287. google/adk/tools/openapi_tool/openapi_spec_parser/__init__.py +32 -0
  288. google/adk/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.py +231 -0
  289. google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py +144 -0
  290. google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py +260 -0
  291. google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +496 -0
  292. google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +268 -0
  293. google/adk/tools/preload_memory_tool.py +72 -0
  294. google/adk/tools/retrieval/__init__.py +36 -0
  295. google/adk/tools/retrieval/base_retrieval_tool.py +37 -0
  296. google/adk/tools/retrieval/files_retrieval.py +33 -0
  297. google/adk/tools/retrieval/llama_index_retrieval.py +41 -0
  298. google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +107 -0
  299. google/adk/tools/tool_context.py +90 -0
  300. google/adk/tools/toolbox_tool.py +46 -0
  301. google/adk/tools/transfer_to_agent_tool.py +21 -0
  302. google/adk/tools/vertex_ai_search_tool.py +96 -0
  303. google/adk/version.py +16 -0
  304. google_adk-0.0.1.dist-info/LICENSE.txt → google_adk-0.0.2.dist-info/LICENSE +32 -0
  305. google_adk-0.0.2.dist-info/METADATA +73 -0
  306. google_adk-0.0.2.dist-info/RECORD +308 -0
  307. {google_adk-0.0.1.dist-info → google_adk-0.0.2.dist-info}/WHEEL +1 -2
  308. google_adk-0.0.2.dist-info/entry_points.txt +3 -0
  309. agent_kit/__init__.py +0 -0
  310. google_adk-0.0.1.dist-info/METADATA +0 -15
  311. google_adk-0.0.1.dist-info/RECORD +0 -6
  312. google_adk-0.0.1.dist-info/top_level.txt +0 -1
@@ -0,0 +1,46 @@
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 typing import Any
16
+
17
+ from . import _automatic_function_calling_util
18
+ from .langchain_tool import LangchainTool
19
+
20
+
21
+ class ToolboxTool:
22
+ """A class that provides access to toolbox tools.
23
+
24
+ Example:
25
+ ```python
26
+ toolbox = ToolboxTool("http://127.0.0.1:8080")
27
+ tool = toolbox.get_tool("tool_name")
28
+ toolset = toolbox.get_toolset("toolset_name")
29
+ ```
30
+ """
31
+
32
+ toolbox_client: Any
33
+ """The toolbox client."""
34
+
35
+ def __init__(self, url: str):
36
+ from toolbox_langchain import ToolboxClient
37
+
38
+ self.toolbox_client = ToolboxClient(url)
39
+
40
+ def get_tool(self, tool_name: str) -> LangchainTool:
41
+ tool = self.toolbox_client.load_tool(tool_name)
42
+ return LangchainTool(tool)
43
+
44
+ def get_toolset(self, toolset_name: str) -> list[LangchainTool]:
45
+ tools = self.toolbox_client.load_toolset(toolset_name)
46
+ return [LangchainTool(tool) for tool in tools]
@@ -0,0 +1,21 @@
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 .tool_context import ToolContext
16
+
17
+
18
+ # TODO: make this internal, since user doesn't need to use this tool directly.
19
+ def transfer_to_agent(agent_name: str, tool_context: ToolContext):
20
+ """Transfer the question to another agent."""
21
+ tool_context.actions.transfer_to_agent = agent_name
@@ -0,0 +1,96 @@
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 __future__ import annotations
16
+
17
+ from typing import Optional
18
+ from typing import TYPE_CHECKING
19
+
20
+ from google.genai import types
21
+ from typing_extensions import override
22
+
23
+ from .base_tool import BaseTool
24
+ from .tool_context import ToolContext
25
+
26
+ if TYPE_CHECKING:
27
+ from ..models import LlmRequest
28
+
29
+
30
+ class VertexAiSearchTool(BaseTool):
31
+ """A built-in tool using Vertex AI Search.
32
+
33
+ Attributes:
34
+ data_store_id: The Vertex AI search data store resource ID.
35
+ search_engine_id: The Vertex AI search engine resource ID.
36
+ """
37
+
38
+ def __init__(
39
+ self,
40
+ *,
41
+ data_store_id: Optional[str] = None,
42
+ search_engine_id: Optional[str] = None,
43
+ ):
44
+ """Initializes the Vertex AI Search tool.
45
+
46
+ Args:
47
+ data_store_id: The Vertex AI search data store resource ID in the format
48
+ of
49
+ "projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}".
50
+ search_engine_id: The Vertex AI search engine resource ID in the format of
51
+ "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}".
52
+
53
+ Raises:
54
+ ValueError: If both data_store_id and search_engine_id are not specified
55
+ or both are specified.
56
+ """
57
+ # Name and description are not used because this is a model built-in tool.
58
+ super().__init__(name='vertex_ai_search', description='vertex_ai_search')
59
+ if (data_store_id is None and search_engine_id is None) or (
60
+ data_store_id is not None and search_engine_id is not None
61
+ ):
62
+ raise ValueError(
63
+ 'Either data_store_id or search_engine_id must be specified.'
64
+ )
65
+ self.data_store_id = data_store_id
66
+ self.search_engine_id = search_engine_id
67
+
68
+ @override
69
+ async def process_llm_request(
70
+ self,
71
+ *,
72
+ tool_context: ToolContext,
73
+ llm_request: LlmRequest,
74
+ ) -> None:
75
+ if llm_request.model and llm_request.model.startswith('gemini-'):
76
+ if llm_request.model.startswith('gemini-1') and llm_request.config.tools:
77
+ raise ValueError(
78
+ 'Vertex AI search tool can not be used with other tools in Gemini'
79
+ ' 1.x.'
80
+ )
81
+ llm_request.config = llm_request.config or types.GenerateContentConfig()
82
+ llm_request.config.tools = llm_request.config.tools or []
83
+ llm_request.config.tools.append(
84
+ types.Tool(
85
+ retrieval=types.Retrieval(
86
+ vertex_ai_search=types.VertexAISearch(
87
+ datastore=self.data_store_id, engine=self.search_engine_id
88
+ )
89
+ )
90
+ )
91
+ )
92
+ else:
93
+ raise ValueError(
94
+ 'Vertex AI search tool is not supported for model'
95
+ f' {llm_request.model}'
96
+ )
google/adk/version.py ADDED
@@ -0,0 +1,16 @@
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
+ # version: date+base_cl
16
+ __version__ = "0.0.2"
@@ -2,12 +2,17 @@
2
2
  Apache License
3
3
  Version 2.0, January 2004
4
4
  http://www.apache.org/licenses/
5
+
5
6
  TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
6
8
  1. Definitions.
9
+
7
10
  "License" shall mean the terms and conditions for use, reproduction,
8
11
  and distribution as defined by Sections 1 through 9 of this document.
12
+
9
13
  "Licensor" shall mean the copyright owner or entity authorized by
10
14
  the copyright owner that is granting the License.
15
+
11
16
  "Legal Entity" shall mean the union of the acting entity and all
12
17
  other entities that control, are controlled by, or are under common
13
18
  control with that entity. For the purposes of this definition,
@@ -15,19 +20,24 @@
15
20
  direction or management of such entity, whether by contract or
16
21
  otherwise, or (ii) ownership of fifty percent (50%) or more of the
17
22
  outstanding shares, or (iii) beneficial ownership of such entity.
23
+
18
24
  "You" (or "Your") shall mean an individual or Legal Entity
19
25
  exercising permissions granted by this License.
26
+
20
27
  "Source" form shall mean the preferred form for making modifications,
21
28
  including but not limited to software source code, documentation
22
29
  source, and configuration files.
30
+
23
31
  "Object" form shall mean any form resulting from mechanical
24
32
  transformation or translation of a Source form, including but
25
33
  not limited to compiled object code, generated documentation,
26
34
  and conversions to other media types.
35
+
27
36
  "Work" shall mean the work of authorship, whether in Source or
28
37
  Object form, made available under the License, as indicated by a
29
38
  copyright notice that is included in or attached to the work
30
39
  (an example is provided in the Appendix below).
40
+
31
41
  "Derivative Works" shall mean any work, whether in Source or Object
32
42
  form, that is based on (or derived from) the Work and for which the
33
43
  editorial revisions, annotations, elaborations, or other modifications
@@ -35,6 +45,7 @@
35
45
  of this License, Derivative Works shall not include works that remain
36
46
  separable from, or merely link (or bind by name) to the interfaces of,
37
47
  the Work and Derivative Works thereof.
48
+
38
49
  "Contribution" shall mean any work of authorship, including
39
50
  the original version of the Work and any modifications or additions
40
51
  to that Work or Derivative Works thereof, that is intentionally
@@ -48,15 +59,18 @@
48
59
  Licensor for the purpose of discussing and improving the Work, but
49
60
  excluding communication that is conspicuously marked or otherwise
50
61
  designated in writing by the copyright owner as "Not a Contribution."
62
+
51
63
  "Contributor" shall mean Licensor and any individual or Legal Entity
52
64
  on behalf of whom a Contribution has been received by Licensor and
53
65
  subsequently incorporated within the Work.
66
+
54
67
  2. Grant of Copyright License. Subject to the terms and conditions of
55
68
  this License, each Contributor hereby grants to You a perpetual,
56
69
  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
57
70
  copyright license to reproduce, prepare Derivative Works of,
58
71
  publicly display, publicly perform, sublicense, and distribute the
59
72
  Work and such Derivative Works in Source or Object form.
73
+
60
74
  3. Grant of Patent License. Subject to the terms and conditions of
61
75
  this License, each Contributor hereby grants to You a perpetual,
62
76
  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
@@ -72,19 +86,24 @@
72
86
  or contributory patent infringement, then any patent licenses
73
87
  granted to You under this License for that Work shall terminate
74
88
  as of the date such litigation is filed.
89
+
75
90
  4. Redistribution. You may reproduce and distribute copies of the
76
91
  Work or Derivative Works thereof in any medium, with or without
77
92
  modifications, and in Source or Object form, provided that You
78
93
  meet the following conditions:
94
+
79
95
  (a) You must give any other recipients of the Work or
80
96
  Derivative Works a copy of this License; and
97
+
81
98
  (b) You must cause any modified files to carry prominent notices
82
99
  stating that You changed the files; and
100
+
83
101
  (c) You must retain, in the Source form of any Derivative Works
84
102
  that You distribute, all copyright, patent, trademark, and
85
103
  attribution notices from the Source form of the Work,
86
104
  excluding those notices that do not pertain to any part of
87
105
  the Derivative Works; and
106
+
88
107
  (d) If the Work includes a "NOTICE" text file as part of its
89
108
  distribution, then any Derivative Works that You distribute must
90
109
  include a readable copy of the attribution notices contained
@@ -101,12 +120,14 @@
101
120
  or as an addendum to the NOTICE text from the Work, provided
102
121
  that such additional attribution notices cannot be construed
103
122
  as modifying the License.
123
+
104
124
  You may add Your own copyright statement to Your modifications and
105
125
  may provide additional or different license terms and conditions
106
126
  for use, reproduction, or distribution of Your modifications, or
107
127
  for any such Derivative Works as a whole, provided Your use,
108
128
  reproduction, and distribution of the Work otherwise complies with
109
129
  the conditions stated in this License.
130
+
110
131
  5. Submission of Contributions. Unless You explicitly state otherwise,
111
132
  any Contribution intentionally submitted for inclusion in the Work
112
133
  by You to the Licensor shall be under the terms and conditions of
@@ -114,10 +135,12 @@
114
135
  Notwithstanding the above, nothing herein shall supersede or modify
115
136
  the terms of any separate license agreement you may have executed
116
137
  with Licensor regarding such Contributions.
138
+
117
139
  6. Trademarks. This License does not grant permission to use the trade
118
140
  names, trademarks, service marks, or product names of the Licensor,
119
141
  except as required for reasonable and customary use in describing the
120
142
  origin of the Work and reproducing the content of the NOTICE file.
143
+
121
144
  7. Disclaimer of Warranty. Unless required by applicable law or
122
145
  agreed to in writing, Licensor provides the Work (and each
123
146
  Contributor provides its Contributions) on an "AS IS" BASIS,
@@ -127,6 +150,7 @@
127
150
  PARTICULAR PURPOSE. You are solely responsible for determining the
128
151
  appropriateness of using or redistributing the Work and assume any
129
152
  risks associated with Your exercise of permissions under this License.
153
+
130
154
  8. Limitation of Liability. In no event and under no legal theory,
131
155
  whether in tort (including negligence), contract, or otherwise,
132
156
  unless required by applicable law (such as deliberate and grossly
@@ -138,6 +162,7 @@
138
162
  work stoppage, computer failure or malfunction, or any and all
139
163
  other commercial damages or losses), even if such Contributor
140
164
  has been advised of the possibility of such damages.
165
+
141
166
  9. Accepting Warranty or Additional Liability. While redistributing
142
167
  the Work or Derivative Works thereof, You may choose to offer,
143
168
  and charge a fee for, acceptance of support, warranty, indemnity,
@@ -148,8 +173,11 @@
148
173
  defend, and hold each Contributor harmless for any liability
149
174
  incurred by, or claims asserted against, such Contributor by reason
150
175
  of your accepting any such warranty or additional liability.
176
+
151
177
  END OF TERMS AND CONDITIONS
178
+
152
179
  APPENDIX: How to apply the Apache License to your work.
180
+
153
181
  To apply the Apache License to your work, attach the following
154
182
  boilerplate notice, with the fields enclosed by brackets "[]"
155
183
  replaced with your own identifying information. (Don't include
@@ -158,11 +186,15 @@
158
186
  file or class name and description of purpose be included on the
159
187
  same "printed page" as the copyright notice for easier
160
188
  identification within third-party archives.
189
+
161
190
  Copyright [yyyy] [name of copyright owner]
191
+
162
192
  Licensed under the Apache License, Version 2.0 (the "License");
163
193
  you may not use this file except in compliance with the License.
164
194
  You may obtain a copy of the License at
195
+
165
196
  http://www.apache.org/licenses/LICENSE-2.0
197
+
166
198
  Unless required by applicable law or agreed to in writing, software
167
199
  distributed under the License is distributed on an "AS IS" BASIS,
168
200
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -0,0 +1,73 @@
1
+ Metadata-Version: 2.3
2
+ Name: google-adk
3
+ Version: 0.0.2
4
+ Summary:
5
+ Author-email: Google LLC <googleapis-packages@google.com>
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/markdown
8
+ Classifier: Typing :: Typed
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: License :: OSI Approved :: Apache Software License
21
+ Requires-Dist: authlib>=1.5.1
22
+ Requires-Dist: click>=8.1.8
23
+ Requires-Dist: fastapi>=0.115.0
24
+ Requires-Dist: google-api-python-client>=2.157.0
25
+ Requires-Dist: google-cloud-aiplatform>=1.87.0
26
+ Requires-Dist: google-cloud-secret-manager>=2.22.0
27
+ Requires-Dist: google-cloud-speech>=2.30.0
28
+ Requires-Dist: google-cloud-storage>=2.18.0, <3.0.0
29
+ Requires-Dist: google-genai>=1.9.0
30
+ Requires-Dist: graphviz>=0.20.2
31
+ Requires-Dist: mcp>=1.5.0;python_version>='3.10'
32
+ Requires-Dist: opentelemetry-api>=1.31.0
33
+ Requires-Dist: opentelemetry-exporter-gcp-trace>=1.9.0
34
+ Requires-Dist: opentelemetry-sdk>=1.31.0
35
+ Requires-Dist: pydantic>=2.0, <3.0.0
36
+ Requires-Dist: python-dotenv>=1.0.0
37
+ Requires-Dist: PyYAML>=6.0.2
38
+ Requires-Dist: sqlalchemy>=2.0
39
+ Requires-Dist: tzlocal>=5.3
40
+ Requires-Dist: uvicorn>=0.34.0
41
+ Requires-Dist: flit>=3.10.0 ; extra == "dev"
42
+ Requires-Dist: isort>=6.0.0 ; extra == "dev"
43
+ Requires-Dist: pyink>=24.10.0 ; extra == "dev"
44
+ Requires-Dist: pylint>=2.6.0 ; extra == "dev"
45
+ Requires-Dist: autodoc_pydantic ; extra == "docs"
46
+ Requires-Dist: furo ; extra == "docs"
47
+ Requires-Dist: myst-parser ; extra == "docs"
48
+ Requires-Dist: sphinx ; extra == "docs"
49
+ Requires-Dist: sphinx-autodoc-typehints ; extra == "docs"
50
+ Requires-Dist: sphinx-rtd-theme ; extra == "docs"
51
+ Requires-Dist: google-cloud-aiplatform[evaluation]>=1.87.0 ; extra == "eval"
52
+ Requires-Dist: pandas>=2.2.3 ; extra == "eval"
53
+ Requires-Dist: tabulate>=0.9.0 ; extra == "eval"
54
+ Requires-Dist: anthropic>=0.43.0 ; extra == "extensions"
55
+ Requires-Dist: beautifulsoup4>=3.2.2 ; extra == "extensions"
56
+ Requires-Dist: crewai[tools] ; extra == "extensions" and (python_version>='3.10')
57
+ Requires-Dist: docker>=7.0.0 ; extra == "extensions"
58
+ Requires-Dist: langgraph>=0.2.60 ; extra == "extensions"
59
+ Requires-Dist: litellm>=1.63.11 ; extra == "extensions"
60
+ Requires-Dist: llama-index-readers-file>=0.4.0 ; extra == "extensions"
61
+ Requires-Dist: lxml>=5.3.0 ; extra == "extensions"
62
+ Requires-Dist: langchain-community>=0.3.17 ; extra == "test"
63
+ Requires-Dist: pytest-asyncio>=0.25.0 ; extra == "test"
64
+ Requires-Dist: pytest-mock>=3.14.0 ; extra == "test"
65
+ Requires-Dist: pytest-xdist>=3.6.1 ; extra == "test"
66
+ Requires-Dist: pytest>=8.3.4 ; extra == "test"
67
+ Provides-Extra: dev
68
+ Provides-Extra: docs
69
+ Provides-Extra: eval
70
+ Provides-Extra: extensions
71
+ Provides-Extra: test
72
+
73
+ hello world