agent-starter-pack 0.18.1__py3-none-any.whl → 0.19.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.

Potentially problematic release.


This version of agent-starter-pack might be problematic. Click here for more details.

Files changed (46) hide show
  1. agent_starter_pack/agents/adk_a2a_base/.template/templateconfig.yaml +22 -0
  2. agent_starter_pack/agents/adk_a2a_base/README.md +22 -0
  3. agent_starter_pack/agents/adk_a2a_base/app/__init__.py +17 -0
  4. agent_starter_pack/agents/adk_a2a_base/app/agent.py +70 -0
  5. agent_starter_pack/agents/adk_a2a_base/notebooks/adk_a2a_app_testing.ipynb +600 -0
  6. agent_starter_pack/agents/adk_a2a_base/notebooks/evaluating_adk_agent.ipynb +1535 -0
  7. agent_starter_pack/agents/adk_a2a_base/tests/integration/test_agent.py +58 -0
  8. agent_starter_pack/base_template/.gitignore +1 -1
  9. agent_starter_pack/base_template/Makefile +11 -11
  10. agent_starter_pack/base_template/README.md +1 -1
  11. agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +10 -2
  12. agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +26 -5
  13. agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +18 -3
  14. agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +34 -3
  15. agent_starter_pack/cli/utils/cicd.py +20 -4
  16. agent_starter_pack/cli/utils/register_gemini_enterprise.py +79 -84
  17. agent_starter_pack/cli/utils/template.py +2 -0
  18. agent_starter_pack/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +104 -2
  19. agent_starter_pack/deployment_targets/agent_engine/tests/load_test/load_test.py +144 -0
  20. agent_starter_pack/deployment_targets/agent_engine/tests/{% if cookiecutter.is_adk_a2a %}helpers.py{% else %}unused_helpers.py{% endif %} +138 -0
  21. agent_starter_pack/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/agent_engine_app.py +88 -4
  22. agent_starter_pack/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/utils/deployment.py +4 -0
  23. agent_starter_pack/deployment_targets/cloud_run/Dockerfile +3 -0
  24. agent_starter_pack/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +7 -0
  25. agent_starter_pack/deployment_targets/cloud_run/deployment/terraform/service.tf +16 -2
  26. agent_starter_pack/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +218 -1
  27. agent_starter_pack/deployment_targets/cloud_run/tests/load_test/README.md +2 -2
  28. agent_starter_pack/deployment_targets/cloud_run/tests/load_test/load_test.py +51 -4
  29. agent_starter_pack/deployment_targets/cloud_run/{{cookiecutter.agent_directory}}/server.py +66 -0
  30. agent_starter_pack/resources/locks/uv-adk_a2a_base-agent_engine.lock +4224 -0
  31. agent_starter_pack/resources/locks/uv-adk_a2a_base-cloud_run.lock +4819 -0
  32. agent_starter_pack/resources/locks/uv-adk_base-agent_engine.lock +230 -236
  33. agent_starter_pack/resources/locks/uv-adk_base-cloud_run.lock +290 -296
  34. agent_starter_pack/resources/locks/uv-adk_live-agent_engine.lock +230 -236
  35. agent_starter_pack/resources/locks/uv-adk_live-cloud_run.lock +290 -296
  36. agent_starter_pack/resources/locks/uv-agentic_rag-agent_engine.lock +234 -239
  37. agent_starter_pack/resources/locks/uv-agentic_rag-cloud_run.lock +294 -299
  38. agent_starter_pack/resources/locks/uv-crewai_coding_crew-agent_engine.lock +221 -228
  39. agent_starter_pack/resources/locks/uv-crewai_coding_crew-cloud_run.lock +279 -286
  40. agent_starter_pack/resources/locks/uv-langgraph_base_react-agent_engine.lock +226 -233
  41. agent_starter_pack/resources/locks/uv-langgraph_base_react-cloud_run.lock +298 -305
  42. {agent_starter_pack-0.18.1.dist-info → agent_starter_pack-0.19.0.dist-info}/METADATA +2 -1
  43. {agent_starter_pack-0.18.1.dist-info → agent_starter_pack-0.19.0.dist-info}/RECORD +46 -36
  44. {agent_starter_pack-0.18.1.dist-info → agent_starter_pack-0.19.0.dist-info}/WHEEL +0 -0
  45. {agent_starter_pack-0.18.1.dist-info → agent_starter_pack-0.19.0.dist-info}/entry_points.txt +0 -0
  46. {agent_starter_pack-0.18.1.dist-info → agent_starter_pack-0.19.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,22 @@
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
+ description: "A base ReAct agent built with Google's Agent Development Kit (ADK) and Agent2Agent (A2A) Protocol. #experimental"
16
+ example_question: "What's the weather in San Francisco?"
17
+ settings:
18
+ requires_data_ingestion: false
19
+ deployment_targets: ["agent_engine", "cloud_run"]
20
+ extra_dependencies: ["google-adk>=1.16.0,<2.0.0", "a2a-sdk~=0.3.9"]
21
+ tags: ["adk", "a2a"]
22
+ frontend_type: "None"
@@ -0,0 +1,22 @@
1
+ # ADK with Agent2Agent (A2A) Protocol: Minimal Agent Example
2
+
3
+ <p align="center">
4
+ <img src="https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/adk_logo.png?raw=true" width="200" alt="ADK Logo" style="margin-right: 40px; vertical-align: middle;">
5
+ <img src="https://github.com/a2aproject/A2A/blob/main/docs/assets/a2a-logo-white.svg?raw=true" width="200" alt="A2A Logo" style="vertical-align: middle;">
6
+ </p>
7
+
8
+ A basic agent built using the **[Google Agent Development Kit (ADK)](https://google.github.io/adk-docs/)** with **[Agent2Agent (A2A) Protocol](https://a2a-protocol.org/)** support. This example demonstrates core ADK concepts like agent creation and tool integration, while enabling distributed agent communication through the A2A protocol for interoperability with agents across different frameworks and languages.
9
+
10
+ This agent uses the `gemini-2.5-flash` model and is equipped with two simple tools:
11
+ * `get_weather`: Simulates fetching weather (hardcoded for SF).
12
+ * `get_current_time`: Simulates fetching the time (hardcoded for SF).
13
+
14
+ ## Additional Resources
15
+
16
+ ### ADK Resources
17
+ - **ADK Documentation**: Learn more about ADK concepts and capabilities in the [official documentation](https://google.github.io/adk-docs/)
18
+ - **ADK Samples**: Explore more examples and use cases in the [official ADK Samples Repository](https://github.com/google/adk-samples)
19
+
20
+ ### A2A Resources
21
+ - **A2A Documentation**: Learn about the Agent2Agent protocol and distributed agent communication in the [official A2A documentation](https://a2a-protocol.org/latest/specification/)
22
+ - **A2A Samples**: Explore A2A agent implementations and integration examples in the [A2A Samples Repository](https://github.com/a2aproject/a2a-samples)
@@ -0,0 +1,17 @@
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 .agent import app
16
+
17
+ __all__ = ["app"]
@@ -0,0 +1,70 @@
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 datetime
16
+ import os
17
+ from zoneinfo import ZoneInfo
18
+
19
+ import google.auth
20
+ from google.adk.agents import Agent
21
+ from google.adk.apps.app import App
22
+
23
+ _, project_id = google.auth.default()
24
+ os.environ.setdefault("GOOGLE_CLOUD_PROJECT", project_id)
25
+ os.environ.setdefault("GOOGLE_CLOUD_LOCATION", "global")
26
+ os.environ.setdefault("GOOGLE_GENAI_USE_VERTEXAI", "True")
27
+
28
+
29
+ def get_weather(query: str) -> str:
30
+ """Simulates a web search. Use it get information on weather.
31
+
32
+ Args:
33
+ query: A string containing the location to get weather information for.
34
+
35
+ Returns:
36
+ A string with the simulated weather information for the queried location.
37
+ """
38
+ if "sf" in query.lower() or "san francisco" in query.lower():
39
+ return "It's 60 degrees and foggy."
40
+ return "It's 90 degrees and sunny."
41
+
42
+
43
+ def get_current_time(query: str) -> str:
44
+ """Simulates getting the current time for a city.
45
+
46
+ Args:
47
+ city: The name of the city to get the current time for.
48
+
49
+ Returns:
50
+ A string with the current time information.
51
+ """
52
+ if "sf" in query.lower() or "san francisco" in query.lower():
53
+ tz_identifier = "America/Los_Angeles"
54
+ else:
55
+ return f"Sorry, I don't have timezone information for query: {query}."
56
+
57
+ tz = ZoneInfo(tz_identifier)
58
+ now = datetime.datetime.now(tz)
59
+ return f"The current time for query {query} is {now.strftime('%Y-%m-%d %H:%M:%S %Z%z')}"
60
+
61
+
62
+ root_agent = Agent(
63
+ name="root_agent",
64
+ model="gemini-2.5-flash",
65
+ description="An agent that can provide information about the weather and time.",
66
+ instruction="You are a helpful AI assistant designed to provide accurate and useful information.",
67
+ tools=[get_weather, get_current_time],
68
+ )
69
+
70
+ app = App(root_agent=root_agent, name="app")