agent-starter-pack 0.3.0__py3-none-any.whl → 0.3.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: CLI tool to create GCP-based AI agent projects from templates
5
5
  Author-email: Google LLC <agent-starter-pack@google.com>
6
6
  License: Apache-2.0
@@ -70,7 +70,7 @@ agent-starter-pack create my-agent -d agent_engine -a adk_base
70
70
 
71
71
  | Agent Name | Description |
72
72
  |-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
73
- | `adk_base` | An agent implementing a base ReAct agent using Google's [Agent Development Kit](https://github.com/google/adk-python)
73
+ | `adk_base` | A base ReAct agent implemented using Google's [Agent Development Kit](https://github.com/google/adk-python) |
74
74
  | `agentic_rag` | A RAG agent for document retrieval and Q&A. Supporting [Vertex AI Search](https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction) and [Vector Search](https://cloud.google.com/vertex-ai/docs/vector-search/overview). |
75
75
  | `langgraph_base_react` | An agent implementing a base ReAct agent using LangGraph |
76
76
  | `crewai_coding_crew` | A multi-agent system implemented with CrewAI created to support coding activities |
@@ -1,14 +1,14 @@
1
- agents/adk_base/README.md,sha256=4_VlWQI0HU_rvaKZ59Qs7P5VYklWoEJr9pSV-m_BADc,852
1
+ agents/adk_base/README.md,sha256=eLf-F9Z4u_mQOchAnUaSrOAHXRSx8wUQN29kkwz1SF4,894
2
2
  agents/adk_base/app/agent.py,sha256=Dm7dcELj0RbALNI20R9-uEay_RHgej0dPOdQRHA7E-8,2187
3
- agents/adk_base/notebooks/adk_app_testing.ipynb,sha256=7qZmhssPoJCfT0DA2WpT3uwHgLBIu1EGoFyUDkjaVio,8198
4
- agents/adk_base/template/.templateconfig.yaml,sha256=JNQsR2s2oOOCaycp_5FEy5MU3xsj4SyOKScUNI7teMg,856
3
+ agents/adk_base/notebooks/adk_app_testing.ipynb,sha256=sHaW9s1PiclJILKBK5j-W6nx_-g60UVnvITKgZFraME,8591
4
+ agents/adk_base/template/.templateconfig.yaml,sha256=m8Qkm1maDIQRDk5GmJlk7_tZT_1ZCn7Cxzo00TzMYmI,836
5
5
  agents/adk_base/tests/integration/test_agent.py,sha256=1VyshBu44p_PUAQQxV0QROmv6OUGt_m0nDLyaTI77po,1964
6
6
  agents/agentic_rag/README.md,sha256=mxMLkq6tAghFaDmc2sc2sEQ5vn9kGWdiRxfTykwpLz0,2268
7
7
  agents/agentic_rag/app/agent.py,sha256=EkbMIjEeyXqK49wIkoW6uWotxyXCIfJpeLCizw2QDZM,3959
8
8
  agents/agentic_rag/app/retrievers.py,sha256=qfxwSEixMddvAu4FvUTZAFh1Gdp3RPY65s0Wp6gEFVk,4561
9
9
  agents/agentic_rag/app/templates.py,sha256=8N_uRchwiN7hlH9Y8rdJ1CAtOhpHUWZkXZZ7IU-YJJk,867
10
- agents/agentic_rag/notebooks/adk_app_testing.ipynb,sha256=7qZmhssPoJCfT0DA2WpT3uwHgLBIu1EGoFyUDkjaVio,8198
11
- agents/agentic_rag/template/.templateconfig.yaml,sha256=gaDURx4tBI3620txEFAE8zJSmHL9qtZjlARCEZnBpi0,1120
10
+ agents/agentic_rag/notebooks/adk_app_testing.ipynb,sha256=sHaW9s1PiclJILKBK5j-W6nx_-g60UVnvITKgZFraME,8591
11
+ agents/agentic_rag/template/.templateconfig.yaml,sha256=6wznpR27bt_brW0DCT7rq_J5AaLVo6M--dcoG_uFtsU,1111
12
12
  agents/agentic_rag/tests/integration/test_agent.py,sha256=HbEv2gzC77jrse3RZ0ra_Bcu6zW_7YlrxYWcYfei63M,2107
13
13
  agents/crewai_coding_crew/README.md,sha256=4No7sfHQVHELARGiT3fWANJzDR0NP48ow4ct3FoPwlA,1672
14
14
  agents/crewai_coding_crew/app/agent.py,sha256=GcmNrOyRPhnI7LICIV6GvBvcDfA_PKqPsQcOEzAORmY,3269
@@ -38,7 +38,7 @@ src/base_template/Makefile,sha256=vxOfXc3ZH2re_AYbWVjOBAMPeOgEtjGTOHMhEwAMs_c,36
38
38
  src/base_template/README.md,sha256=0dHYVT8IlG0eMd7dEelAaPyuyk5ZDHnKAvNV8x7TBEA,10397
39
39
  src/base_template/pyproject.toml,sha256=pLw8q6j3qQWcu6A3HUpwsT2p3BzfmM2RDxjwUgZ2ulQ,2865
40
40
  src/base_template/app/__init__.py,sha256=UyAgc2l8nkVIUPUzL9hKR7EgzCsc2jSYcOcjHNNmpMU,59
41
- src/base_template/app/utils/tracing.py,sha256=sYN_zSaIrOSSc4YTewKp3FNkKXj0Ksk79ZT_Ftv5QrY,6046
41
+ src/base_template/app/utils/tracing.py,sha256=2rv1Ukh2jTBENDwoghCItJ28l-Sjz9gMlzdojlVgJa4,6052
42
42
  src/base_template/app/utils/typing.py,sha256=DP5OZC3IGvqA1XbvWt8kI3gyAK3ZjzUSL5Ca17wNeLI,4249
43
43
  src/base_template/deployment/README.md,sha256=XjRRcEiyoobi0YEXybfvtaOi9ecNDU2bVKczv0MUBac,5255
44
44
  src/base_template/deployment/cd/deploy-to-prod.yaml,sha256=Vzt83DunPF64wVsY96KTGvhxZFHAF5Tze_88KW4O-oo,4297
@@ -70,7 +70,7 @@ src/cli/utils/cicd.py,sha256=tlz50wI0unRosRZsDpZ5Oh5haMJmNjc9dV0-TPWawKE,27443
70
70
  src/cli/utils/datastores.py,sha256=gv1V6eDcOEKx4MRNG5C3Y-VfixYq1AzQuaYMLp8QRNo,1058
71
71
  src/cli/utils/gcp.py,sha256=gVak73MD74sZTXvchZB59KFpoqp-aTIsvcMKvYMkXJE,4062
72
72
  src/cli/utils/logging.py,sha256=0lHe4EPi1A8sOx9xkA7gS4UNl0GsIyp2ahydkkuCzLY,1570
73
- src/cli/utils/template.py,sha256=iIRh6hNP-na7j9UcxE8r6ZwukXq_WLIwv-VbQ9U2Oxk,28931
73
+ src/cli/utils/template.py,sha256=HQg_SIruiL52LrjeVr9Nxw7zqq9CC96l78DIGPIJjHw,29099
74
74
  src/cli/utils/version.py,sha256=F4udQmzniPStqWZFIgnv3Qg3l9non4mfy2An-Oveqmc,2916
75
75
  src/data_ingestion/README.md,sha256=LNxSQoJW9JozK-TbyGQLj5L_MGWNwrfLk6V6RmQ2oBQ,4032
76
76
  src/data_ingestion/pyproject.toml,sha256=-1Mf2QB8K70ICQV5UPZDpf-fN3UwEQLVzQyxfakCSTY,445
@@ -80,7 +80,7 @@ src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py,sha256=tWGqL0zUB3V
80
80
  src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py,sha256=QbPmk6V7JPGo5Yc1BhL-1W_t9CXEN0iY5NKaGWlfSbM,10667
81
81
  src/data_ingestion/data_ingestion_pipeline/components/process_data.py,sha256=3D4CaUV9pBaIU10MogJMQAR00JPVzqjFHN6eL7WM_5Y,22045
82
82
  src/deployment_targets/agent_engine/deployment_metadata.json,sha256=G_t_n-UNrFsBgH1Xrw5-ZqYzUGwZ4X6ipsIm_yiSq-w,72
83
- src/deployment_targets/agent_engine/app/agent_engine_app.py,sha256=hRzFSAjaxMJzahJ0CYypWjV1SMAFok3UsAly4jMScTk,11334
83
+ src/deployment_targets/agent_engine/app/agent_engine_app.py,sha256=ZBER9DVyVfG6R4IyukgFaVVL-AsbqLmvvBsXAwgv2jk,12032
84
84
  src/deployment_targets/agent_engine/app/utils/gcs.py,sha256=jKblaWOGQEigw3esaawcfX178shhZi2Fyk0fJSA4T68,1501
85
85
  src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb,sha256=RE6Gp-bu4bHtNBngfkt_CF5emy5YcOWQ5rMYW_Cv8_w,48809
86
86
  src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py,sha256=3mEHdnenqT1RrQpndnQWZSMnn8kSLH85rPDhbxH6_lk,5978
@@ -166,8 +166,8 @@ src/resources/setup_cicd/providers.tf,sha256=Km4z6IJt7x7PLaa0kyZbBrO2m3lpuIJZFD5
166
166
  src/utils/generate_locks.py,sha256=xu5IAhGGBPkVQGSJX4kk7_JNDwWJUEaXAHbmaQIohbg,4386
167
167
  src/utils/lock_utils.py,sha256=_QdzQtgIbCmJ87s046_i1g966slVNmvr3bJDeHbRQSM,2419
168
168
  src/utils/watch_and_rebuild.py,sha256=vP4yIiA7E_lj5sfQdJUl8TXas6V7msDg8XWUutAC05Q,6679
169
- agent_starter_pack-0.3.0.dist-info/METADATA,sha256=gqs2okJC9y34nuxb4SmgELfSO3Juldd8O_-GzDzyicA,8026
170
- agent_starter_pack-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
171
- agent_starter_pack-0.3.0.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
172
- agent_starter_pack-0.3.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
173
- agent_starter_pack-0.3.0.dist-info/RECORD,,
169
+ agent_starter_pack-0.3.2.dist-info/METADATA,sha256=JDgsTYFzAC-s_GsOXtQe6IcaUsUnZoeQFvI5hUCE1R4,8018
170
+ agent_starter_pack-0.3.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
171
+ agent_starter_pack-0.3.2.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
172
+ agent_starter_pack-0.3.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
173
+ agent_starter_pack-0.3.2.dist-info/RECORD,,
agents/adk_base/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ADK: Minimal Agent Example
2
2
 
3
- [![ADK Logo](./../../docs/images/adk_logo.png)](https://google.github.io/adk-docs/)
3
+ <img src="https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/adk_logo.png?raw=true" width="400">
4
4
 
5
5
  A basic agent built using the **[Google Agent Development Kit (ADK)](https://google.github.io/adk-docs/)**. This example demonstrates core ADK concepts like agent creation and tool integration in a minimal setup.
6
6
 
@@ -106,6 +106,22 @@
106
106
  " print(event)"
107
107
  ]
108
108
  },
109
+ {
110
+ "cell_type": "code",
111
+ "execution_count": null,
112
+ "metadata": {},
113
+ "outputs": [],
114
+ "source": [
115
+ "remote_agent_engine.register_feedback(\n",
116
+ " feedback={\n",
117
+ " \"score\": 5,\n",
118
+ " \"text\": \"Great response!\",\n",
119
+ " \"invocation_id\": \"test-invocation-123\",\n",
120
+ " \"user_id\": \"test\",\n",
121
+ " }\n",
122
+ ")"
123
+ ]
124
+ },
109
125
  {
110
126
  "cell_type": "markdown",
111
127
  "metadata": {},
@@ -12,10 +12,10 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- description: "An agent implementing a base ReAct agent using Google's Agent Development Kit"
15
+ description: "A base ReAct agent built with Google's Agent Development Kit (ADK)"
16
16
  settings:
17
17
  requires_data_ingestion: false
18
18
  deployment_targets: ["agent_engine", "cloud_run"]
19
19
  extra_dependencies: ["google-adk~=0.1.0"]
20
20
  tags: ["adk"]
21
- frontend_type: "streamlit_adk"
21
+ frontend_type: "None"
@@ -106,6 +106,22 @@
106
106
  " print(event)"
107
107
  ]
108
108
  },
109
+ {
110
+ "cell_type": "code",
111
+ "execution_count": null,
112
+ "metadata": {},
113
+ "outputs": [],
114
+ "source": [
115
+ "remote_agent_engine.register_feedback(\n",
116
+ " feedback={\n",
117
+ " \"score\": 5,\n",
118
+ " \"text\": \"Great response!\",\n",
119
+ " \"invocation_id\": \"test-invocation-123\",\n",
120
+ " \"user_id\": \"test\",\n",
121
+ " }\n",
122
+ ")"
123
+ ]
124
+ },
109
125
  {
110
126
  "cell_type": "markdown",
111
127
  "metadata": {},
@@ -25,4 +25,4 @@ settings:
25
25
  "langchain-google-community[vertexaisearch]~=2.0.7",
26
26
  ]
27
27
  tags: ["adk"]
28
- frontend_type: "streamlit_adk"
28
+ frontend_type: "None"
@@ -17,8 +17,8 @@ import logging
17
17
  from collections.abc import Sequence
18
18
  from typing import Any
19
19
 
20
+ import google.cloud.storage as storage
20
21
  from google.cloud import logging as google_cloud_logging
21
- from google.cloud import storage
22
22
  from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter
23
23
  from opentelemetry.sdk.trace import ReadableSpan
24
24
  from opentelemetry.sdk.trace.export import SpanExportResult
src/cli/utils/template.py CHANGED
@@ -690,6 +690,11 @@ def copy_files(
690
690
 
691
691
  def copy_frontend_files(frontend_type: str, project_template: pathlib.Path) -> None:
692
692
  """Copy files from the specified frontend folder directly to project root."""
693
+ # Skip copying if frontend_type is "None"
694
+ if frontend_type == "None":
695
+ logging.debug("Frontend type is 'None', skipping frontend files")
696
+ return
697
+
693
698
  # Use default frontend if none specified
694
699
  frontend_type = frontend_type or DEFAULT_FRONTEND
695
700
 
@@ -14,9 +14,11 @@
14
14
 
15
15
  # mypy: disable-error-code="attr-defined"
16
16
  {%- if "adk" in cookiecutter.tags %}
17
+ import copy
17
18
  import datetime
18
19
  import json
19
20
  import logging
21
+ import os
20
22
  from collections.abc import Mapping, Sequence
21
23
  from typing import Any
22
24
 
@@ -41,7 +43,11 @@ class AgentEngineApp(AdkApp):
41
43
  logging_client = google_cloud_logging.Client()
42
44
  self.logger = logging_client.logger(__name__)
43
45
  provider = TracerProvider()
44
- processor = export.BatchSpanProcessor(CloudTraceLoggingSpanExporter())
46
+ processor = export.BatchSpanProcessor(
47
+ CloudTraceLoggingSpanExporter(
48
+ project_id=os.environ.get("GOOGLE_CLOUD_PROJECT")
49
+ )
50
+ )
45
51
  provider.add_span_processor(processor)
46
52
  trace.set_tracer_provider(provider)
47
53
 
@@ -58,6 +64,19 @@ class AgentEngineApp(AdkApp):
58
64
  operations = super().register_operations()
59
65
  operations[""] = operations[""] + ["register_feedback"]
60
66
  return operations
67
+
68
+ def clone(self) -> "AgentEngineApp":
69
+ """Returns a clone of the ADK application."""
70
+ template_attributes = self._tmpl_attrs
71
+ return self.__class__(
72
+ agent=copy.deepcopy(template_attributes.get("agent")),
73
+ enable_tracing=template_attributes.get("enable_tracing"),
74
+ session_service_builder=template_attributes.get("session_service_builder"),
75
+ artifact_service_builder=template_attributes.get(
76
+ "artifact_service_builder"
77
+ ),
78
+ env_vars=template_attributes.get("env_vars"),
79
+ )
61
80
  {%- else %}
62
81
  import datetime
63
82
  import json
@@ -211,7 +230,8 @@ def deploy_agent_engine_app(
211
230
  requirements = f.read().strip().split("\n")
212
231
  {% if "adk" in cookiecutter.tags %}
213
232
  agent_engine = AgentEngineApp(
214
- agent=root_agent, env_vars=env_vars, enable_tracing=True
233
+ agent=root_agent,
234
+ env_vars=env_vars,
215
235
  )
216
236
  {% else %}
217
237
  agent_engine = AgentEngineApp(project_id=project, env_vars=env_vars)