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.
- {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/METADATA +17 -5
- {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/RECORD +24 -21
- agents/adk_base/README.md +1 -1
- agents/adk_base/notebooks/adk_app_testing.ipynb +16 -0
- agents/adk_base/template/.templateconfig.yaml +1 -1
- agents/agentic_rag/notebooks/adk_app_testing.ipynb +16 -0
- src/base_template/Makefile +1 -1
- src/base_template/pyproject.toml +2 -0
- src/deployment_targets/agent_engine/app/agent_engine_app.py +22 -2
- src/resources/idx/.idx/dev.nix +57 -0
- src/resources/idx/idx-template.json +21 -0
- src/resources/idx/idx-template.nix +26 -0
- src/resources/locks/uv-adk_base-agent_engine.lock +145 -142
- src/resources/locks/uv-adk_base-cloud_run.lock +181 -178
- src/resources/locks/uv-agentic_rag-agent_engine.lock +151 -148
- src/resources/locks/uv-agentic_rag-cloud_run.lock +187 -184
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +151 -148
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +187 -184
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock +145 -142
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock +181 -178
- src/resources/locks/uv-live_api-cloud_run.lock +172 -169
- {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/WHEEL +0 -0
- {agent_starter_pack-0.3.1.dist-info → agent_starter_pack-0.3.3.dist-info}/entry_points.txt +0 -0
- {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.
|
|
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
|
-
 [](https://youtu.be/jHt-ZVD660g) [](./docs/README.md)
|
|
28
|
+
 [](https://youtu.be/jHt-ZVD660g) [](./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> 
|
|
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` |
|
|
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=
|
|
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=
|
|
4
|
-
agents/adk_base/template/.templateconfig.yaml,sha256=
|
|
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=
|
|
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=
|
|
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
|
|
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=
|
|
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/
|
|
155
|
-
src/resources/
|
|
156
|
-
src/resources/
|
|
157
|
-
src/resources/locks/uv-
|
|
158
|
-
src/resources/locks/uv-
|
|
159
|
-
src/resources/locks/uv-
|
|
160
|
-
src/resources/locks/uv-
|
|
161
|
-
src/resources/locks/uv-
|
|
162
|
-
src/resources/locks/uv-
|
|
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.
|
|
170
|
-
agent_starter_pack-0.3.
|
|
171
|
-
agent_starter_pack-0.3.
|
|
172
|
-
agent_starter_pack-0.3.
|
|
173
|
-
agent_starter_pack-0.3.
|
|
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
|
-
|
|
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: "
|
|
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": {},
|
src/base_template/Makefile
CHANGED
|
@@ -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
|
|
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
|
src/base_template/pyproject.toml
CHANGED
|
@@ -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(
|
|
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,
|
|
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
|
+
}
|