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

Potentially problematic release.


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

Files changed (24) hide show
  1. {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/METADATA +17 -5
  2. {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/RECORD +24 -21
  3. agents/adk_base/README.md +1 -1
  4. agents/adk_base/notebooks/adk_app_testing.ipynb +16 -0
  5. agents/adk_base/template/.templateconfig.yaml +1 -1
  6. agents/agentic_rag/notebooks/adk_app_testing.ipynb +16 -0
  7. src/base_template/Makefile +1 -1
  8. src/base_template/pyproject.toml +2 -0
  9. src/deployment_targets/agent_engine/app/agent_engine_app.py +22 -2
  10. src/resources/idx/.idx/dev.nix +57 -0
  11. src/resources/idx/idx-template.json +21 -0
  12. src/resources/idx/idx-template.nix +26 -0
  13. src/resources/locks/uv-adk_base-agent_engine.lock +145 -142
  14. src/resources/locks/uv-adk_base-cloud_run.lock +181 -178
  15. src/resources/locks/uv-agentic_rag-agent_engine.lock +151 -148
  16. src/resources/locks/uv-agentic_rag-cloud_run.lock +187 -184
  17. src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +151 -148
  18. src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +187 -184
  19. src/resources/locks/uv-langgraph_base_react-agent_engine.lock +145 -142
  20. src/resources/locks/uv-langgraph_base_react-cloud_run.lock +181 -178
  21. src/resources/locks/uv-live_api-cloud_run.lock +172 -169
  22. {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/WHEEL +0 -0
  23. {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/entry_points.txt +0 -0
  24. {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.3.1
3
+ Version: 0.3.3
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
@@ -25,7 +25,20 @@ Description-Content-Type: text/markdown
25
25
 
26
26
  # 🚀 Agent Starter Pack
27
27
 
28
- ![Version](https://img.shields.io/pypi/v/agent-starter-pack?color=blue) [![1-Minute Video Overview](https://img.shields.io/badge/1--Minute%20Overview-gray)](https://youtu.be/jHt-ZVD660g) [![Docs](https://img.shields.io/badge/Documentation-gray)](./docs/README.md) ![Stars](https://img.shields.io/github/stars/GoogleCloudPlatform/agent-starter-pack?color=yellow)
28
+ ![Version](https://img.shields.io/pypi/v/agent-starter-pack?color=blue) [![1-Minute Video Overview](https://img.shields.io/badge/1--Minute%20Overview-gray)](https://youtu.be/jHt-ZVD660g) [![Docs](https://img.shields.io/badge/Documentation-gray)](./docs/README.md) <a href="https://studio.firebase.google.com/new?template=https%3A%2F%2Fgithub.com%2FGoogleCloudPlatform%2Fagent-starter-pack%2Ftree%2Ffeat-add-firebase-studio-resources%2Fsrc%2Fresources%2Fidx">
29
+ <picture>
30
+ <source
31
+ media="(prefers-color-scheme: dark)"
32
+ srcset="https://cdn.firebasestudio.dev/btn/try_light_20.svg">
33
+ <source
34
+ media="(prefers-color-scheme: light)"
35
+ srcset="https://cdn.firebasestudio.dev/btn/try_dark_20.svg">
36
+ <img
37
+ height="20"
38
+ alt="Try in Firebase Studio"
39
+ src="https://cdn.firebasestudio.dev/btn/try_blue_20.svg">
40
+ </picture>
41
+ </a> ![Stars](https://img.shields.io/github/stars/GoogleCloudPlatform/agent-starter-pack?color=yellow)
29
42
 
30
43
 
31
44
  The `agent-starter-pack` is a collection of production-ready Generative AI Agent templates built for Google Cloud. <br>
@@ -53,7 +66,7 @@ agent-starter-pack create my-awesome-agent
53
66
  ```
54
67
 
55
68
  **That's it!** You now have a fully functional agent project—complete with backend, frontend, and deployment infrastructure—ready for you to explore and customize.
56
- For more installation options, see the [Installation Guide](docs/installation.md).
69
+ For more installation options, see the [Installation Guide](docs/installation.md). You can also [try it in Firebase Studio](https://studio.firebase.google.com/new?template=https%3A%2F%2Fgithub.com%2FGoogleCloudPlatform%2Fagent-starter-pack%2Ftree%2Fmain%2Fsrc%2Fresources%2Fidx) with zero setup.
57
70
 
58
71
  ---
59
72
 
@@ -63,14 +76,13 @@ For more installation options, see the [Installation Guide](docs/installation.md
63
76
  agent-starter-pack create my-agent -d agent_engine -a adk_base
64
77
  ```
65
78
 
66
-
67
79
  *See the [full list of options](docs/cli/create.md) for details.*
68
80
 
69
81
  ## 🤖 Agents
70
82
 
71
83
  | Agent Name | Description |
72
84
  |-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
73
- | `adk_base` | An agent implementing a base ReAct agent using Google's [Agent Development Kit](https://github.com/google/adk-python)
85
+ | `adk_base` | A base ReAct agent implemented using Google's [Agent Development Kit](https://github.com/google/adk-python) |
74
86
  | `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
87
  | `langgraph_base_react` | An agent implementing a base ReAct agent using LangGraph |
76
88
  | `crewai_coding_crew` | A multi-agent system implemented with CrewAI created to support coding activities |
@@ -1,13 +1,13 @@
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=a0GO7kgM2g5fxPW_KZtdfBS8l4Sl0p7G_vzAvKQXtv0,847
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
10
+ agents/agentic_rag/notebooks/adk_app_testing.ipynb,sha256=sHaW9s1PiclJILKBK5j-W6nx_-g60UVnvITKgZFraME,8591
11
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
@@ -34,9 +34,9 @@ agents/live_api/tests/integration/test_server_e2e.py,sha256=D2VETDIyTD2fQyQ6DXwL
34
34
  agents/live_api/tests/load_test/load_test.py,sha256=HHZyfC4gqiQtZVF_CbbxENGgWQccMLpwMv0IdoQ6cbQ,1275
35
35
  agents/live_api/tests/unit/test_server.py,sha256=_TjlgQgNkjerIaBGnu8P8_KB8ZlSolDcivALpUOn_Rw,4786
36
36
  src/base_template/.gitignore,sha256=mJKTZIcVdAFiIUQicRfPNGUg6WvwcfTEC2xbmAaU34g,2579
37
- src/base_template/Makefile,sha256=vxOfXc3ZH2re_AYbWVjOBAMPeOgEtjGTOHMhEwAMs_c,3690
37
+ src/base_template/Makefile,sha256=3fFwDiasX0KBjxO17jqwvXY9IcWZyTBftr-d5wpwiTg,3725
38
38
  src/base_template/README.md,sha256=0dHYVT8IlG0eMd7dEelAaPyuyk5ZDHnKAvNV8x7TBEA,10397
39
- src/base_template/pyproject.toml,sha256=pLw8q6j3qQWcu6A3HUpwsT2p3BzfmM2RDxjwUgZ2ulQ,2865
39
+ src/base_template/pyproject.toml,sha256=-B1gk9Yx1OxL88bGH4oklCcSo0zOTm7IxaUbPcIS5rg,2959
40
40
  src/base_template/app/__init__.py,sha256=UyAgc2l8nkVIUPUzL9hKR7EgzCsc2jSYcOcjHNNmpMU,59
41
41
  src/base_template/app/utils/tracing.py,sha256=2rv1Ukh2jTBENDwoghCItJ28l-Sjz9gMlzdojlVgJa4,6052
42
42
  src/base_template/app/utils/typing.py,sha256=DP5OZC3IGvqA1XbvWt8kI3gyAK3ZjzUSL5Ca17wNeLI,4249
@@ -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
@@ -151,23 +151,26 @@ src/frontends/streamlit_adk/frontend/utils/stream_handler.py,sha256=xKwiY1KLWQdD
151
151
  src/frontends/streamlit_adk/frontend/utils/title_summary.py,sha256=lmYJUIz99jWY1dTziUao554GJBHFQTzQBRvoEl-x020,4347
152
152
  src/resources/containers/data_processing/Dockerfile,sha256=VoB9d5yZiiWnqRfWrIq0gGNMzZg-eVy733OgP72ZgO0,950
153
153
  src/resources/containers/e2e-tests/Dockerfile,sha256=Q_aTyX_iaFY8j06XZkpMuggJnNO5daiLmmrvqaZHMxw,1611
154
- src/resources/locks/uv-adk_base-agent_engine.lock,sha256=syI9vNoQn5E82OuKH2XyPMjxd5NiaBdXjzARp-CP6u0,628425
155
- src/resources/locks/uv-adk_base-cloud_run.lock,sha256=TyGqfTb65fw2Dri6KH6SYQMDu4pOcMDqyERY0kn0K_Y,797636
156
- src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=hEJuGbmoOBqlyU3-cZ-bAtBMP4WPD92ap8vVi34nqyM,638035
157
- src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=3oJiJ1Ac7DRawQ6Hl6TzsU4FhRD383158RokHOxEGeo,807246
158
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=OqYAP4kYOXwiFRrOFBeB593rU_U1eI2TQuFgI5gAy9E,734457
159
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=4_6ZNQ7Q45lSmIVnWL8BRMSfPedkS9WSyk8ORoA6vpY,911344
160
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=r7vPXAjYM7Lk_J-Qnp590PCEtNsWYXNDLKGSEBGSZpA,611193
161
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=BiZP9gsmrlQ4ludBaXb14-_P0wbKp5ra9Nwn8QbYmJA,781686
162
- src/resources/locks/uv-live_api-cloud_run.lock,sha256=_iSIEzx3Wjq4OtsZFcQ7IYsOIHyvBc7YCy1Qta9jRH4,784743
154
+ src/resources/idx/idx-template.json,sha256=cLt7jXQ5-16AGl9vxEoXALI6HVUFwGWG5i3v7fGqPvo,792
155
+ src/resources/idx/idx-template.nix,sha256=sesHGev_PYtVDg0J5tHkg0OO7IR1Bz2iAtl_if3Ar3M,892
156
+ src/resources/idx/.idx/dev.nix,sha256=rT_eW3cp7BluMQakqy_V_RGUu2yoZjymiZmfyN3_PnI,1927
157
+ src/resources/locks/uv-adk_base-agent_engine.lock,sha256=G5NhnUl9Tr0X-GbBr21jTdDf5MVGxmWF_OI4AqC4wBM,629284
158
+ src/resources/locks/uv-adk_base-cloud_run.lock,sha256=Dq2F08qkB3s2oqazqmLrnNLmgzqNb0UbJdChV0Fq4l0,798495
159
+ src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=NUXZvdoJgzEI5NLoB_hoXgwVimEbXl0ByTMm-yNfNuM,638894
160
+ src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=f8P14yRwvJWB3lyfWCEZzkFpq51WyLYIGa386S3_khE,808105
161
+ src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=cCOpHuY2BK8how94MRgw4EF1q-iBo5aXTv3V1Fr2w90,735316
162
+ src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=yu2Iu6ODcRFKJJ6FLHarsKuyFNOjh1EL6WOIg6fLP3I,912203
163
+ src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=jYVXjvTeQ7ppxcmoUvQpjuh5dA9vgNifstKaD2WPsR8,612052
164
+ src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=NlN4eNWymUxGAmOJ2rZVPBdicMllXvheS-_foJPe2fU,782545
165
+ src/resources/locks/uv-live_api-cloud_run.lock,sha256=0DSriJlsVuTDIiTAqYOHW3yclNyVr-eZUOFTBM47pLQ,785602
163
166
  src/resources/setup_cicd/cicd_variables.tf,sha256=PMflYe1TzQi63LORHkmeCktTYzXFplJgxffNH4DtuAQ,1244
164
167
  src/resources/setup_cicd/github.tf,sha256=scTBgeZlCM74N-pzhVKsnTN0PX9a5GboNl1HN3-LlCM,2791
165
168
  src/resources/setup_cicd/providers.tf,sha256=Km4z6IJt7x7PLaa0kyZbBrO2m3lpuIJZFD5jB7QBfF0,1122
166
169
  src/utils/generate_locks.py,sha256=xu5IAhGGBPkVQGSJX4kk7_JNDwWJUEaXAHbmaQIohbg,4386
167
170
  src/utils/lock_utils.py,sha256=_QdzQtgIbCmJ87s046_i1g966slVNmvr3bJDeHbRQSM,2419
168
171
  src/utils/watch_and_rebuild.py,sha256=vP4yIiA7E_lj5sfQdJUl8TXas6V7msDg8XWUutAC05Q,6679
169
- agent_starter_pack-0.3.1.dist-info/METADATA,sha256=-LVL1SWUzRiDRsyD5ZYC0gsNtEa0GJAVrdkerxBhXoY,8026
170
- agent_starter_pack-0.3.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
171
- agent_starter_pack-0.3.1.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
172
- agent_starter_pack-0.3.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
173
- agent_starter_pack-0.3.1.dist-info/RECORD,,
172
+ agent_starter_pack-0.3.3.dist-info/METADATA,sha256=vib_OuCrbGy10-Yc1sK-wZWYJOrgXBPLDkLS_XsuIxk,8828
173
+ agent_starter_pack-0.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
174
+ agent_starter_pack-0.3.3.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
175
+ agent_starter_pack-0.3.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
176
+ agent_starter_pack-0.3.3.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,7 +12,7 @@
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"]
@@ -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": {},
@@ -1,6 +1,6 @@
1
1
  install:
2
2
  @command -v uv >/dev/null 2>&1 || { echo "uv is not installed. Installing uv..."; curl -LsSf https://astral.sh/uv/0.6.12/install.sh | sh; source ~/.bashrc; }
3
- uv sync --dev {% if cookiecutter.agent_name != 'live_api' %}--extra streamlit{%- endif %} --extra jupyter --frozen{% if cookiecutter.agent_name == 'live_api' %} && npm --prefix frontend install{%- endif %}
3
+ uv sync --dev{% if cookiecutter.agent_name != 'live_api' and "adk" not in cookiecutter.tags %} --extra streamlit{%- endif %} --extra jupyter --frozen{% if cookiecutter.agent_name == 'live_api' %} && npm --prefix frontend install{%- endif %}
4
4
 
5
5
  test:
6
6
  uv run pytest tests/unit && uv run pytest tests/integration
@@ -37,12 +37,14 @@ dev = [
37
37
  ]
38
38
 
39
39
  [project.optional-dependencies]
40
+ {% if cookiecutter.agent_name != 'live_api' and "adk" not in cookiecutter.tags %}
40
41
  streamlit = [
41
42
  "streamlit~=1.42.0",
42
43
  "streamlit-extras~=0.4.3",
43
44
  "extra-streamlit-components~=0.1.71",
44
45
  "streamlit-feedback~=0.1.3",
45
46
  ]
47
+ {% endif %}
46
48
  jupyter = [
47
49
  "jupyter~=1.0.0",
48
50
  ]
@@ -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)
@@ -0,0 +1,57 @@
1
+
2
+ # To learn more about how to use Nix to configure your environment
3
+ # see: https://firebase.google.com/docs/studio/customize-workspace
4
+ { pkgs, ... }: {
5
+ # Which nixpkgs channel to use.
6
+ channel = "stable-24.11"; # or "unstable"
7
+
8
+ # Use https://search.nixos.org/packages to find packages
9
+ packages = [
10
+ pkgs.python311
11
+ pkgs.python311Packages.pip
12
+ pkgs.python311Packages.uv
13
+ pkgs.gnumake
14
+ pkgs.terraform
15
+ pkgs.gh
16
+ ];
17
+ # Sets environment variables in the workspace
18
+ env = {};
19
+ idx = {
20
+ # Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
21
+ extensions = [
22
+ "ms-toolsai.jupyter"
23
+ "ms-python.python"
24
+ "krish-r.vscode-toggle-terminal"
25
+ ];
26
+ workspace = {
27
+ # Runs when a workspace is first created with this `dev.nix` file
28
+ onCreate = {
29
+ create-venv = ''
30
+ # Load environment variables from .env file if it exists
31
+ source .env
32
+ echo "Logging into gcloud..."
33
+ echo "Please authenticate with Google Cloud by following the prompts."
34
+ gcloud auth login --update-adc --brief --quiet
35
+
36
+ echo "Setting gcloud project..."
37
+ gcloud config set project $GOOGLE_CLOUD_PROJECT
38
+
39
+ echo "Creating Python virtual environment and installing packages..."
40
+ uv venv && uv pip install agent-starter-pack
41
+ echo "alias agent-starter-pack=\"~/$WS_NAME/.venv/bin/agent-starter-pack\"" >> ~/.bashrc
42
+ source ~/.bashrc
43
+
44
+ echo "Running agent starter pack creation..."
45
+ uv run agent-starter-pack create $AGENT_NAME
46
+ code ~/$WS_NAME/$AGENT_NAME/README.md
47
+ exec bash
48
+ '';
49
+ # Open editors for the following files by default, if they exist:
50
+ default.openFiles = [];
51
+ };
52
+ # To run something each time the workspace is (re)started, use the `onStart` hook
53
+ };
54
+ # Enable previews and customize configuration
55
+ previews = {};
56
+ };
57
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Agent Starter Pack",
3
+ "description": "Production-ready Gen AI Agent templates for Google Cloud. Addressing common challenges (Deployment & Operations, Evaluation, Customization, Observability) in building and deploying GenAI agents.",
4
+ "icon": "https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/icon.png?raw=true",
5
+ "params": [
6
+ {
7
+ "id": "agent_name",
8
+ "name": "Agent Name",
9
+ "description": "The name of the agent being created.",
10
+ "type": "string",
11
+ "required": true
12
+ },
13
+ {
14
+ "id": "google_cloud_project_id",
15
+ "name": "Your Goole Cloud Project ID",
16
+ "description": "The Google Cloud Platform Project ID where resources will be managed.",
17
+ "type": "string",
18
+ "required": true
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,26 @@
1
+ # No user-configurable parameters
2
+ # Accept additional arguments to this template corresponding to template
3
+ # parameter IDs
4
+ { pkgs, agent_name ? "", google_cloud_project_id ? "", ... }: {
5
+ # Shell script that produces the final environment
6
+ bootstrap = ''
7
+ # Copy the folder containing the `idx-template` files to the final
8
+ # project folder for the new workspace. ${./.} inserts the directory
9
+ # of the checked-out Git folder containing this template.
10
+ cp -rf ${./.} "$out"
11
+
12
+ # Set some permissions
13
+ chmod -R +w "$out"
14
+
15
+ # Create .env file with the parameter values
16
+ cat > "$out/.env" << EOF
17
+ AGENT_NAME=${agent_name}
18
+ GOOGLE_CLOUD_PROJECT=${google_cloud_project_id}
19
+ WS_NAME=$WS_NAME
20
+ EOF
21
+
22
+ # Remove the template files themselves and any connection to the template's
23
+ # Git repository
24
+ rm -rf "$out/.git" "$out/idx-template".{nix,json}
25
+ '';
26
+ }