google-adk 0.4.0__py3-none-any.whl → 0.5.0__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 (64) hide show
  1. google/adk/agents/active_streaming_tool.py +1 -0
  2. google/adk/agents/base_agent.py +27 -29
  3. google/adk/agents/callback_context.py +4 -4
  4. google/adk/agents/invocation_context.py +1 -0
  5. google/adk/agents/langgraph_agent.py +1 -0
  6. google/adk/agents/live_request_queue.py +1 -0
  7. google/adk/agents/llm_agent.py +51 -6
  8. google/adk/agents/run_config.py +4 -0
  9. google/adk/agents/transcription_entry.py +1 -0
  10. google/adk/artifacts/base_artifact_service.py +5 -10
  11. google/adk/artifacts/gcs_artifact_service.py +8 -8
  12. google/adk/artifacts/in_memory_artifact_service.py +5 -5
  13. google/adk/auth/auth_credential.py +4 -5
  14. google/adk/cli/browser/index.html +1 -1
  15. google/adk/cli/browser/{main-HWIBUY2R.js → main-ULN5R5I5.js} +40 -39
  16. google/adk/cli/cli_eval.py +13 -11
  17. google/adk/cli/cli_tools_click.py +8 -6
  18. google/adk/cli/fast_api.py +11 -11
  19. google/adk/cli/fast_api.py.orig +728 -0
  20. google/adk/evaluation/agent_evaluator.py +3 -3
  21. google/adk/evaluation/evaluation_constants.py +1 -0
  22. google/adk/evaluation/evaluation_generator.py +5 -5
  23. google/adk/evaluation/response_evaluator.py +1 -1
  24. google/adk/events/event.py +1 -0
  25. google/adk/events/event_actions.py +1 -0
  26. google/adk/examples/example.py +1 -0
  27. google/adk/flows/__init__.py +0 -1
  28. google/adk/flows/llm_flows/_code_execution.py +10 -10
  29. google/adk/flows/llm_flows/base_llm_flow.py +40 -15
  30. google/adk/flows/llm_flows/basic.py +3 -0
  31. google/adk/flows/llm_flows/functions.py +1 -1
  32. google/adk/flows/llm_flows/instructions.py +17 -6
  33. google/adk/memory/base_memory_service.py +4 -2
  34. google/adk/memory/in_memory_memory_service.py +2 -2
  35. google/adk/memory/vertex_ai_rag_memory_service.py +2 -2
  36. google/adk/models/anthropic_llm.py +20 -2
  37. google/adk/models/base_llm.py +45 -4
  38. google/adk/models/gemini_llm_connection.py +14 -1
  39. google/adk/models/google_llm.py +0 -42
  40. google/adk/models/lite_llm.py +17 -17
  41. google/adk/models/llm_request.py +1 -1
  42. google/adk/models/llm_response.py +1 -1
  43. google/adk/runners.py +5 -5
  44. google/adk/sessions/_session_util.py +14 -0
  45. google/adk/sessions/base_session_service.py +3 -0
  46. google/adk/sessions/database_session_service.py +7 -3
  47. google/adk/sessions/in_memory_session_service.py +3 -3
  48. google/adk/sessions/session.py +1 -0
  49. google/adk/tools/agent_tool.py +7 -4
  50. google/adk/tools/application_integration_tool/clients/connections_client.py +9 -25
  51. google/adk/tools/load_artifacts_tool.py +4 -4
  52. google/adk/tools/load_memory_tool.py +4 -2
  53. google/adk/tools/mcp_tool/conversion_utils.py +1 -1
  54. google/adk/tools/mcp_tool/mcp_session_manager.py +14 -0
  55. google/adk/tools/openapi_tool/common/common.py +2 -5
  56. google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py +13 -3
  57. google/adk/tools/preload_memory_tool.py +1 -1
  58. google/adk/tools/tool_context.py +4 -4
  59. google/adk/version.py +1 -1
  60. {google_adk-0.4.0.dist-info → google_adk-0.5.0.dist-info}/METADATA +2 -2
  61. {google_adk-0.4.0.dist-info → google_adk-0.5.0.dist-info}/RECORD +64 -63
  62. {google_adk-0.4.0.dist-info → google_adk-0.5.0.dist-info}/WHEEL +0 -0
  63. {google_adk-0.4.0.dist-info → google_adk-0.5.0.dist-info}/entry_points.txt +0 -0
  64. {google_adk-0.4.0.dist-info → google_adk-0.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -20,7 +20,7 @@ import os
20
20
  import sys
21
21
  import traceback
22
22
  from typing import Any
23
- from typing import Generator
23
+ from typing import AsyncGenerator
24
24
  from typing import Optional
25
25
  import uuid
26
26
 
@@ -146,7 +146,7 @@ def parse_and_get_evals_to_run(
146
146
  return eval_set_to_evals
147
147
 
148
148
 
149
- def run_evals(
149
+ async def run_evals(
150
150
  eval_set_to_evals: dict[str, list[str]],
151
151
  root_agent: Agent,
152
152
  reset_func: Optional[Any],
@@ -154,7 +154,7 @@ def run_evals(
154
154
  session_service=None,
155
155
  artifact_service=None,
156
156
  print_detailed_results=False,
157
- ) -> Generator[EvalResult, None, None]:
157
+ ) -> AsyncGenerator[EvalResult, None]:
158
158
  try:
159
159
  from ..evaluation.agent_evaluator import EvaluationGenerator
160
160
  from ..evaluation.response_evaluator import ResponseEvaluator
@@ -181,14 +181,16 @@ def run_evals(
181
181
  print(f"Running Eval: {eval_set_file}:{eval_name}")
182
182
  session_id = f"{EVAL_SESSION_ID_PREFIX}{str(uuid.uuid4())}"
183
183
 
184
- scrape_result = EvaluationGenerator._process_query_with_root_agent(
185
- data=eval_data,
186
- root_agent=root_agent,
187
- reset_func=reset_func,
188
- initial_session=initial_session,
189
- session_id=session_id,
190
- session_service=session_service,
191
- artifact_service=artifact_service,
184
+ scrape_result = (
185
+ await EvaluationGenerator._process_query_with_root_agent(
186
+ data=eval_data,
187
+ root_agent=root_agent,
188
+ reset_func=reset_func,
189
+ initial_session=initial_session,
190
+ session_id=session_id,
191
+ session_service=session_service,
192
+ artifact_service=artifact_service,
193
+ )
192
194
  )
193
195
 
194
196
  eval_metric_results = []
@@ -258,12 +258,14 @@ def cli_eval(
258
258
 
259
259
  try:
260
260
  eval_results = list(
261
- run_evals(
262
- eval_set_to_evals,
263
- root_agent,
264
- reset_func,
265
- eval_metrics,
266
- print_detailed_results=print_detailed_results,
261
+ asyncio.run(
262
+ run_evals(
263
+ eval_set_to_evals,
264
+ root_agent,
265
+ reset_func,
266
+ eval_metrics,
267
+ print_detailed_results=print_detailed_results,
268
+ )
267
269
  )
268
270
  )
269
271
  except ModuleNotFoundError:
@@ -467,7 +467,7 @@ def get_fast_api_app(
467
467
  )
468
468
  root_agent = await _get_root_agent_async(app_name)
469
469
  eval_results = list(
470
- run_evals(
470
+ await run_evals(
471
471
  eval_set_to_evals,
472
472
  root_agent,
473
473
  getattr(root_agent, "reset_data", None),
@@ -503,7 +503,7 @@ def get_fast_api_app(
503
503
  "/apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{artifact_name}",
504
504
  response_model_exclude_none=True,
505
505
  )
506
- def load_artifact(
506
+ async def load_artifact(
507
507
  app_name: str,
508
508
  user_id: str,
509
509
  session_id: str,
@@ -511,7 +511,7 @@ def get_fast_api_app(
511
511
  version: Optional[int] = Query(None),
512
512
  ) -> Optional[types.Part]:
513
513
  app_name = agent_engine_id if agent_engine_id else app_name
514
- artifact = artifact_service.load_artifact(
514
+ artifact = await artifact_service.load_artifact(
515
515
  app_name=app_name,
516
516
  user_id=user_id,
517
517
  session_id=session_id,
@@ -526,7 +526,7 @@ def get_fast_api_app(
526
526
  "/apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{artifact_name}/versions/{version_id}",
527
527
  response_model_exclude_none=True,
528
528
  )
529
- def load_artifact_version(
529
+ async def load_artifact_version(
530
530
  app_name: str,
531
531
  user_id: str,
532
532
  session_id: str,
@@ -534,7 +534,7 @@ def get_fast_api_app(
534
534
  version_id: int,
535
535
  ) -> Optional[types.Part]:
536
536
  app_name = agent_engine_id if agent_engine_id else app_name
537
- artifact = artifact_service.load_artifact(
537
+ artifact = await artifact_service.load_artifact(
538
538
  app_name=app_name,
539
539
  user_id=user_id,
540
540
  session_id=session_id,
@@ -549,11 +549,11 @@ def get_fast_api_app(
549
549
  "/apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts",
550
550
  response_model_exclude_none=True,
551
551
  )
552
- def list_artifact_names(
552
+ async def list_artifact_names(
553
553
  app_name: str, user_id: str, session_id: str
554
554
  ) -> list[str]:
555
555
  app_name = agent_engine_id if agent_engine_id else app_name
556
- return artifact_service.list_artifact_keys(
556
+ return await artifact_service.list_artifact_keys(
557
557
  app_name=app_name, user_id=user_id, session_id=session_id
558
558
  )
559
559
 
@@ -561,11 +561,11 @@ def get_fast_api_app(
561
561
  "/apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{artifact_name}/versions",
562
562
  response_model_exclude_none=True,
563
563
  )
564
- def list_artifact_versions(
564
+ async def list_artifact_versions(
565
565
  app_name: str, user_id: str, session_id: str, artifact_name: str
566
566
  ) -> list[int]:
567
567
  app_name = agent_engine_id if agent_engine_id else app_name
568
- return artifact_service.list_versions(
568
+ return await artifact_service.list_versions(
569
569
  app_name=app_name,
570
570
  user_id=user_id,
571
571
  session_id=session_id,
@@ -575,11 +575,11 @@ def get_fast_api_app(
575
575
  @app.delete(
576
576
  "/apps/{app_name}/users/{user_id}/sessions/{session_id}/artifacts/{artifact_name}",
577
577
  )
578
- def delete_artifact(
578
+ async def delete_artifact(
579
579
  app_name: str, user_id: str, session_id: str, artifact_name: str
580
580
  ):
581
581
  app_name = agent_engine_id if agent_engine_id else app_name
582
- artifact_service.delete_artifact(
582
+ await artifact_service.delete_artifact(
583
583
  app_name=app_name,
584
584
  user_id=user_id,
585
585
  session_id=session_id,