agent-starter-pack 0.6.4__py3-none-any.whl → 0.7.1__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.
- {agent_starter_pack-0.6.4.dist-info → agent_starter_pack-0.7.1.dist-info}/METADATA +15 -12
- {agent_starter_pack-0.6.4.dist-info → agent_starter_pack-0.7.1.dist-info}/RECORD +34 -31
- agents/adk_gemini_fullstack/app/agent.py +62 -8
- llm.txt +296 -0
- src/base_template/.gitignore +1 -1
- src/base_template/GEMINI.md +5 -0
- src/base_template/Makefile +20 -5
- src/base_template/README.md +3 -0
- src/base_template/deployment/cd/deploy-to-prod.yaml +3 -3
- src/base_template/deployment/cd/staging.yaml +4 -4
- src/base_template/deployment/ci/pr_checks.yaml +1 -1
- src/base_template/pyproject.toml +2 -2
- src/cli/utils/cicd.py +4 -1
- src/cli/utils/template.py +22 -18
- src/data_ingestion/uv.lock +97 -0
- src/frontends/adk_gemini_fullstack/frontend/package-lock.json +276 -0
- src/frontends/adk_gemini_fullstack/frontend/package.json +1 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +5 -4
- src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +4 -0
- src/resources/docs/adk-cheatsheet.md +1224 -0
- src/resources/locks/uv-adk_base-agent_engine.lock +14 -13
- src/resources/locks/uv-adk_base-cloud_run.lock +14 -13
- src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +14 -13
- src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +14 -13
- src/resources/locks/uv-agentic_rag-agent_engine.lock +78 -83
- src/resources/locks/uv-agentic_rag-cloud_run.lock +110 -119
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +130 -135
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +163 -172
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock +87 -92
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock +119 -128
- src/resources/locks/uv-live_api-cloud_run.lock +98 -107
- {agent_starter_pack-0.6.4.dist-info → agent_starter_pack-0.7.1.dist-info}/WHEEL +0 -0
- {agent_starter_pack-0.6.4.dist-info → agent_starter_pack-0.7.1.dist-info}/entry_points.txt +0 -0
- {agent_starter_pack-0.6.4.dist-info → agent_starter_pack-0.7.1.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
|
+
Version: 0.7.1
|
4
4
|
Summary: CLI to bootstrap production-ready Google Cloud GenAI agent projects from templates.
|
5
5
|
Author-email: Google LLC <agent-starter-pack@google.com>
|
6
6
|
License: Apache-2.0
|
@@ -46,7 +46,7 @@ It accelerates development by providing a holistic, production-ready solution, a
|
|
46
46
|
|
47
47
|
| ⚡️ Launch | 🧪 Experiment | ✅ Deploy | 🛠️ Customize |
|
48
48
|
|---|---|---|---|
|
49
|
-
| [Pre-built agent templates](./agents/) (ReAct, RAG, multi-agent, Live API). | [Vertex AI evaluation](https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview) and an interactive playground. | Production-ready infra with [monitoring, observability](https://googlecloudplatform.github.io/agent-starter-pack/guide/observability), and [CI/CD](https://googlecloudplatform.github.io/agent-starter-pack/guide/deployment) on [Cloud Run](https://cloud.google.com/run) or [Agent Engine](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview). | Extend and customize templates according to your needs. |
|
49
|
+
| [Pre-built agent templates](./agents/) (ReAct, RAG, multi-agent, Live API). | [Vertex AI evaluation](https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview) and an interactive playground. | Production-ready infra with [monitoring, observability](https://googlecloudplatform.github.io/agent-starter-pack/guide/observability), and [CI/CD](https://googlecloudplatform.github.io/agent-starter-pack/guide/deployment) on [Cloud Run](https://cloud.google.com/run) or [Agent Engine](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview). | Extend and customize templates according to your needs. 🆕 Now integrating with [Gemini CLI](https://github.com/google-gemini/gemini-cli) |
|
50
50
|
|
51
51
|
---
|
52
52
|
|
@@ -59,24 +59,27 @@ Ready to build your AI agent? Simply run this command:
|
|
59
59
|
python -m venv .venv && source .venv/bin/activate
|
60
60
|
|
61
61
|
# Install the agent starter pack
|
62
|
-
pip install agent-starter-pack
|
62
|
+
pip install --upgrade agent-starter-pack
|
63
63
|
|
64
64
|
# Create a new agent project
|
65
65
|
agent-starter-pack create my-awesome-agent
|
66
66
|
```
|
67
67
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
---
|
72
|
-
|
73
|
-
🆕 The starter pack offers full support for Agent Engine, a new fully managed solution to deploy agents. Simply run this command to get started:
|
68
|
+
<details>
|
69
|
+
<summary> ✨ Alternative: Using uv</summary>
|
74
70
|
|
71
|
+
If you have [`uv`](https://github.com/astral-sh/uv) installed, you can create and set up your project with a single command:
|
75
72
|
```bash
|
76
|
-
agent-starter-pack create my-agent
|
73
|
+
uvx agent-starter-pack create my-fullstack-agent
|
77
74
|
```
|
75
|
+
This command handles creating the project without needing to pre-install the package into a virtual environment.
|
76
|
+
</details>
|
78
77
|
|
79
|
-
|
78
|
+
**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.
|
79
|
+
|
80
|
+
See [Installation Guide](https://googlecloudplatform.github.io/agent-starter-pack/guide/installation) for more options, or try with zero setup in [Firebase Studio](https://studio.firebase.google.com/new?template=https%3A%2F%2Fgithub.com%2FGoogleCloudPlatform%2Fagent-starter-pack%2Ftree%2Fmain%2Fsrc%2Fresources%2Fidx) or [Cloud Shell](https://shell.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Feliasecchig%2Fasp-open-in-cloud-shell&cloudshell_print=open-in-cs).
|
81
|
+
|
82
|
+
---
|
80
83
|
|
81
84
|
## 🤖 Agents
|
82
85
|
|
@@ -100,7 +103,7 @@ Looking to explore more ADK examples? Check out the [ADK Samples Repository](htt
|
|
100
103
|
The `agent-starter-pack` offers two key features to accelerate and simplify the development of your agent:
|
101
104
|
- **🔄 [CI/CD Automation (Experimental)](https://googlecloudplatform.github.io/agent-starter-pack/cli/setup_cicd)** - One command to set up a complete GitHub + Cloud Build pipeline for all environments
|
102
105
|
- **📥 [Data Pipeline for RAG with Terraform/CI-CD](https://googlecloudplatform.github.io/agent-starter-pack/guide/data-ingestion)** - Seamlessly integrate a data pipeline to process embeddings for RAG into your agent system. 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).
|
103
|
-
|
106
|
+
* **🤖 Gemini CLI Integration** - Use the [Gemini CLI](https://github.com/google-gemini/gemini-cli) and the included `GEMINI.md` context file to ask questions about your template, agent architecture, and the path to production. Get instant guidance and code examples directly in your terminal.
|
104
107
|
|
105
108
|
## High-Level Architecture
|
106
109
|
|
@@ -5,7 +5,7 @@ agents/adk_base/notebooks/evaluating_adk_agent.ipynb,sha256=OMTiT3gAFWPvE9pPL8z7
|
|
5
5
|
agents/adk_base/template/.templateconfig.yaml,sha256=EWfw7zqlQsxKrmMdiqwSemIhx3ke6i6a5mqZ3z94KDI,893
|
6
6
|
agents/adk_base/tests/integration/test_agent.py,sha256=VypgpEWrQegJBgc58V-BlIsbqh-Hii-hwmkwcz5feFw,1969
|
7
7
|
agents/adk_gemini_fullstack/README.md,sha256=yQFFcESALj5Q6eweyIyPx__U74obUM88aCBJYNV2UWs,1674
|
8
|
-
agents/adk_gemini_fullstack/app/agent.py,sha256=
|
8
|
+
agents/adk_gemini_fullstack/app/agent.py,sha256=NXOkYFxDccJaSq55CTS-UYY8z5-WgBZqexII0Ybzk9c,22662
|
9
9
|
agents/adk_gemini_fullstack/app/config.py,sha256=x--axECPKWW3oLANKz2_4zzHEBIU7if8iYNZRjlTNV0,1563
|
10
10
|
agents/adk_gemini_fullstack/notebooks/adk_app_testing.ipynb,sha256=kWYd-ButNGemupiPDIzhlQO0elxWCwiea0nhmnsW8cg,9619
|
11
11
|
agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb,sha256=OMTiT3gAFWPvE9pPL8z7tsDwOU-l8wem5wH-OXPPlvk,56805
|
@@ -40,18 +40,20 @@ agents/live_api/template/.templateconfig.yaml,sha256=DD_hihMsuqmd5VWS18vVGZ3ZGVV
|
|
40
40
|
agents/live_api/tests/integration/test_server_e2e.py,sha256=D2VETDIyTD2fQyQ6DXwLr-POSYyVzzzcpIFLt5Ppyx4,8398
|
41
41
|
agents/live_api/tests/load_test/load_test.py,sha256=HHZyfC4gqiQtZVF_CbbxENGgWQccMLpwMv0IdoQ6cbQ,1275
|
42
42
|
agents/live_api/tests/unit/test_server.py,sha256=_TjlgQgNkjerIaBGnu8P8_KB8ZlSolDcivALpUOn_Rw,4786
|
43
|
-
|
44
|
-
src/base_template
|
45
|
-
src/base_template/
|
46
|
-
src/base_template/
|
43
|
+
llm.txt,sha256=695MseB6y34Cr3n6du3G2SdwKKa48JGq9KNMp0APHW4,13148
|
44
|
+
src/base_template/.gitignore,sha256=Fq0w34x4sfbwP4RqDqh6hdHNYRUEsFNI-9XONzLWBIs,2580
|
45
|
+
src/base_template/GEMINI.md,sha256=WzscHWlQeYkKORZ-453P8KM9IHuj1kAxW-69c7Ytuwk,133
|
46
|
+
src/base_template/Makefile,sha256=037wvhexHIZyWW451D4vkvNnldTznxDFZ0sleUvl8jU,6115
|
47
|
+
src/base_template/README.md,sha256=GrXssaJK-5Dm3C7-S_mvyPiiYEzQwRTbhbKYg1-Jdxw,10892
|
48
|
+
src/base_template/pyproject.toml,sha256=B7pnk8dhEWLEqPYQ0wqbbRGAVPZSjnPPP1imoFnilJw,2840
|
47
49
|
src/base_template/app/__init__.py,sha256=UyAgc2l8nkVIUPUzL9hKR7EgzCsc2jSYcOcjHNNmpMU,59
|
48
50
|
src/base_template/app/utils/gcs.py,sha256=jKblaWOGQEigw3esaawcfX178shhZi2Fyk0fJSA4T68,1501
|
49
51
|
src/base_template/app/utils/tracing.py,sha256=2rv1Ukh2jTBENDwoghCItJ28l-Sjz9gMlzdojlVgJa4,6052
|
50
52
|
src/base_template/app/utils/typing.py,sha256=DP5OZC3IGvqA1XbvWt8kI3gyAK3ZjzUSL5Ca17wNeLI,4249
|
51
53
|
src/base_template/deployment/README.md,sha256=qWTCWyEj1bZuny3XyCelXPgljh6yu_GDwfPNUeFoXBY,5245
|
52
|
-
src/base_template/deployment/cd/deploy-to-prod.yaml,sha256=
|
53
|
-
src/base_template/deployment/cd/staging.yaml,sha256=
|
54
|
-
src/base_template/deployment/ci/pr_checks.yaml,sha256=
|
54
|
+
src/base_template/deployment/cd/deploy-to-prod.yaml,sha256=3NslaDpk4dHNDC594Dsc7Ggboh_4jRixhZ5SYbBCdyM,4376
|
55
|
+
src/base_template/deployment/cd/staging.yaml,sha256=Fy_Qw2lvA35BQUeSjPsWWfYgOmtvSZSkS38RgT9dZmQ,8004
|
56
|
+
src/base_template/deployment/ci/pr_checks.yaml,sha256=VFdF6q_-zETCMlJkJ0znW8T7gCYE59BZNliNPz2Bh18,1517
|
55
57
|
src/base_template/deployment/terraform/apis.tf,sha256=98vqe53RLtFwnQq_9N1widR8J0c1SGqwhCXp_GohITA,1497
|
56
58
|
src/base_template/deployment/terraform/build_triggers.tf,sha256=_XDFj6kPd21NmEKKRjpqYIa48P8VHCMVG_6thLqrS0Y,6363
|
57
59
|
src/base_template/deployment/terraform/iam.tf,sha256=-KrOngRch4gKnPkZy0ybQQq0RW5-TI80tJ-VJLg-AdA,5597
|
@@ -74,15 +76,15 @@ src/cli/main.py,sha256=pMsSlNwkrFqHUHHA5U-WMZ4QRquaI_F7OXQt6yxuugE,1688
|
|
74
76
|
src/cli/commands/create.py,sha256=DuUtLsX4ltRhIgInjkLJ1ixIkfqgT9wBuI807M_KLIs,24766
|
75
77
|
src/cli/commands/setup_cicd.py,sha256=Lr0wLeKlRxROsRVFLAI3ygfIh_sTavvgQckDkzFEKMQ,31705
|
76
78
|
src/cli/utils/__init__.py,sha256=_cTmsXGPqOtK0q8UW5164QTltbJRJFR_Efxq_BRL1-o,1311
|
77
|
-
src/cli/utils/cicd.py,sha256=
|
79
|
+
src/cli/utils/cicd.py,sha256=YTEuyNCdiCHSsNK_EdU-bdlt8mzIOb4_NCAP2FLrvu8,26197
|
78
80
|
src/cli/utils/datastores.py,sha256=gv1V6eDcOEKx4MRNG5C3Y-VfixYq1AzQuaYMLp8QRNo,1058
|
79
81
|
src/cli/utils/gcp.py,sha256=cnuCyN144eiyYc9aJNEK9JnyWN66rdevugoMdDYC1UU,4032
|
80
82
|
src/cli/utils/logging.py,sha256=0lHe4EPi1A8sOx9xkA7gS4UNl0GsIyp2ahydkkuCzLY,1570
|
81
|
-
src/cli/utils/template.py,sha256=
|
83
|
+
src/cli/utils/template.py,sha256=FsWs9fd96Qi1S6Pi4LQ4eMZeYTKPAcASsJ1BejywQT4,29300
|
82
84
|
src/cli/utils/version.py,sha256=F4udQmzniPStqWZFIgnv3Qg3l9non4mfy2An-Oveqmc,2916
|
83
85
|
src/data_ingestion/README.md,sha256=LNxSQoJW9JozK-TbyGQLj5L_MGWNwrfLk6V6RmQ2oBQ,4032
|
84
86
|
src/data_ingestion/pyproject.toml,sha256=-1Mf2QB8K70ICQV5UPZDpf-fN3UwEQLVzQyxfakCSTY,445
|
85
|
-
src/data_ingestion/uv.lock,sha256=
|
87
|
+
src/data_ingestion/uv.lock,sha256=nzF1JbCYbbkkWEaFanR3WrZ6ql6CrFXkeieCTgFJUmg,162793
|
86
88
|
src/data_ingestion/data_ingestion_pipeline/pipeline.py,sha256=UAS6dxV954yARP0NdDbCf5kzap3NfmoX52eZ2mZtWXs,3331
|
87
89
|
src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py,sha256=tWGqL0zUB3V5JxR1SpX7LMjCW5r6JEGnvgF8tAxZ12s,7784
|
88
90
|
src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py,sha256=QbPmk6V7JPGo5Yc1BhL-1W_t9CXEN0iY5NKaGWlfSbM,10667
|
@@ -104,18 +106,18 @@ src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder,sha256=Zb
|
|
104
106
|
src/frontends/adk_gemini_fullstack/frontend/components.json,sha256=OUAALKbVpmIHQ16HcK1BgLBbVf_rV7s08PuGqgCFJ-o,423
|
105
107
|
src/frontends/adk_gemini_fullstack/frontend/eslint.config.js,sha256=3ADH23ANA4NNBKFy6nCVk65e8bx1DrVd_FIaYNnhuqA,734
|
106
108
|
src/frontends/adk_gemini_fullstack/frontend/index.html,sha256=cGmA25GOzciMX6ABt1SW_SqnrgPXGGf-1Pbkx2eMByQ,306
|
107
|
-
src/frontends/adk_gemini_fullstack/frontend/package-lock.json,sha256=
|
108
|
-
src/frontends/adk_gemini_fullstack/frontend/package.json,sha256=
|
109
|
+
src/frontends/adk_gemini_fullstack/frontend/package-lock.json,sha256=DMSGcDHDWvcxRVbgaPqI2O0Z7HJk5PAiZmLfAVifPns,218303
|
110
|
+
src/frontends/adk_gemini_fullstack/frontend/package.json,sha256=bUzgvwGx8oVL2wHYbSNizO0EI1CjLd0jcWirJI-cxwA,1312
|
109
111
|
src/frontends/adk_gemini_fullstack/frontend/tsconfig.json,sha256=LtqiCB6w68AjbIegDnbXa1YXKM_RQZZVVkAjfUNxyBo,753
|
110
112
|
src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json,sha256=1BewvjsiZMJqSGXTqe94jo5yKdpi7yqI7UGoHgTv9mg,593
|
111
|
-
src/frontends/adk_gemini_fullstack/frontend/vite.config.ts,sha256=
|
113
|
+
src/frontends/adk_gemini_fullstack/frontend/vite.config.ts,sha256=nmeV8oQoQe7SxIVNalYeR8Dw9LOQrcxTWyBUYxLr_Ns,1359
|
112
114
|
src/frontends/adk_gemini_fullstack/frontend/src/App.tsx,sha256=X624JJ2LaDm1ztjb23r15f2fRzilVp6CNpw80HtuCAg,21473
|
113
115
|
src/frontends/adk_gemini_fullstack/frontend/src/global.css,sha256=uNpkk45y9XVsmQs84D0KHN8B2i55ElSFZxHu6zml5E8,5037
|
114
116
|
src/frontends/adk_gemini_fullstack/frontend/src/main.tsx,sha256=WYYxbfb0WHrY1BW7KB-pCxb3jslb1UeCDa26l9Ve0SQ,328
|
115
117
|
src/frontends/adk_gemini_fullstack/frontend/src/utils.ts,sha256=Utm02hSGixxQ_T4hqlZqpdc8BuK1B2Mgk5X0vNK3V_4,170
|
116
118
|
src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts,sha256=ZZlpNvuwQpFfe3SiAPzd5-QQ8ypmmxq5WXz6pLD63bU,38
|
117
119
|
src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx,sha256=FfDYEJyBc5vZYOBATcLyJRl1IYjb1B-0qv79dN8DqBI,9616
|
118
|
-
src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx,sha256=
|
120
|
+
src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx,sha256=pRyJ9NJedSVL_58mYyy4ENKfjmcFs9IxdMzVmci5F4I,14517
|
119
121
|
src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx,sha256=8YjXJ2251qAunm5nEgVSto70pe3yoxGGqbU3hDSIB30,1875
|
120
122
|
src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx,sha256=cs3ogNX5U4_divL_3AA_75PPh5m7JqkfO8upemcPEQk,2064
|
121
123
|
src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx,sha256=RK5qi9QBQLZRULdg46yX_sdQ05NTBq4EkuegeLa6I4A,1627
|
@@ -174,28 +176,29 @@ src/frontends/streamlit/frontend/utils/stream_handler.py,sha256=-XVRfLH6ck1KP6NS
|
|
174
176
|
src/frontends/streamlit/frontend/utils/title_summary.py,sha256=B0cadS_KPW-tsbABauI4J681aqjEtuKFDa25e9R1WKc,3030
|
175
177
|
src/resources/containers/data_processing/Dockerfile,sha256=VoB9d5yZiiWnqRfWrIq0gGNMzZg-eVy733OgP72ZgO0,950
|
176
178
|
src/resources/containers/e2e-tests/Dockerfile,sha256=Q_aTyX_iaFY8j06XZkpMuggJnNO5daiLmmrvqaZHMxw,1611
|
179
|
+
src/resources/docs/adk-cheatsheet.md,sha256=SHtckZqDg60Bz_Id7qc2TY6ftz_X2bh88RQi4gCYb4E,58717
|
177
180
|
src/resources/idx/idx-template.json,sha256=07OQZCPp45Iqor2O7Tm1e1Gmsdd-AmmUofSvA7y-oRs,793
|
178
181
|
src/resources/idx/idx-template.nix,sha256=sesHGev_PYtVDg0J5tHkg0OO7IR1Bz2iAtl_if3Ar3M,892
|
179
182
|
src/resources/idx/.idx/dev.nix,sha256=XQ4T1xt5I-8SVwnI37v56RFFlxa58Ko-a9G2-oelYAI,1602
|
180
|
-
src/resources/locks/uv-adk_base-agent_engine.lock,sha256=
|
181
|
-
src/resources/locks/uv-adk_base-cloud_run.lock,sha256=
|
182
|
-
src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock,sha256=
|
183
|
-
src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock,sha256=
|
184
|
-
src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=
|
185
|
-
src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=
|
186
|
-
src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=
|
187
|
-
src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=
|
188
|
-
src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=
|
189
|
-
src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=
|
190
|
-
src/resources/locks/uv-live_api-cloud_run.lock,sha256=
|
183
|
+
src/resources/locks/uv-adk_base-agent_engine.lock,sha256=0OrJhKC_JVKgX-S9fFxRujnKEvmOEpd8vCyfkesqLAs,359057
|
184
|
+
src/resources/locks/uv-adk_base-cloud_run.lock,sha256=itu4YI-tXc1hN7ncu0_uK2qbEhFY3Wu2tO4GoysGfSA,444902
|
185
|
+
src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock,sha256=0OrJhKC_JVKgX-S9fFxRujnKEvmOEpd8vCyfkesqLAs,359057
|
186
|
+
src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock,sha256=itu4YI-tXc1hN7ncu0_uK2qbEhFY3Wu2tO4GoysGfSA,444902
|
187
|
+
src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=TAMmD1WW_Ge35kKaY4w1FdN3aEih7_kRSWc7kXQobOA,523699
|
188
|
+
src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=5IM5puIbWmY4a3PGTcaIiG-Iu6E-QillJh5b105pDL4,681704
|
189
|
+
src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=jZVg40hOaiMhCF4dB6BMpQ8WanHPhGFYVRMqPX_Hg8I,813314
|
190
|
+
src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=QX5ZQX9c7s9FnPyCXfVdBFDfz8rsQ___iDcZvuukZ34,1045488
|
191
|
+
src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=D3N9GNNKiX8pK2Yivw6f77oID4wRAs1MhUIoSXGv-3g,671381
|
192
|
+
src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=dATDd1pQguY0Mo_2MCKn24cRzk7ZtAK0DG7_08RkLNY,873288
|
193
|
+
src/resources/locks/uv-live_api-cloud_run.lock,sha256=aFvPKu0r23qSH2V9_1rTUuJNBG9UseDLnT6QM_g3nfo,795390
|
191
194
|
src/resources/setup_cicd/cicd_variables.tf,sha256=PMflYe1TzQi63LORHkmeCktTYzXFplJgxffNH4DtuAQ,1244
|
192
195
|
src/resources/setup_cicd/github.tf,sha256=scTBgeZlCM74N-pzhVKsnTN0PX9a5GboNl1HN3-LlCM,2791
|
193
196
|
src/resources/setup_cicd/providers.tf,sha256=Km4z6IJt7x7PLaa0kyZbBrO2m3lpuIJZFD5jB7QBfF0,1122
|
194
197
|
src/utils/generate_locks.py,sha256=6V1B8V2BEuevWnXUsxZVTrLjXwFRII8UfsIGrQqZxVs,4320
|
195
198
|
src/utils/lock_utils.py,sha256=RSE6n3hBkH64xNm3Q5wrR0Pqbeo-oc7xaTOhA9yzHjk,2275
|
196
199
|
src/utils/watch_and_rebuild.py,sha256=vP4yIiA7E_lj5sfQdJUl8TXas6V7msDg8XWUutAC05Q,6679
|
197
|
-
agent_starter_pack-0.
|
198
|
-
agent_starter_pack-0.
|
199
|
-
agent_starter_pack-0.
|
200
|
-
agent_starter_pack-0.
|
201
|
-
agent_starter_pack-0.
|
200
|
+
agent_starter_pack-0.7.1.dist-info/METADATA,sha256=aXLTLLtk8pTjy7V52_Cw0_VOcqTd7H4ETnluJyMW4DM,11146
|
201
|
+
agent_starter_pack-0.7.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
202
|
+
agent_starter_pack-0.7.1.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
|
203
|
+
agent_starter_pack-0.7.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
204
|
+
agent_starter_pack-0.7.1.dist-info/RECORD,,
|
@@ -182,12 +182,33 @@ class EscalationChecker(BaseAgent):
|
|
182
182
|
plan_generator = LlmAgent(
|
183
183
|
model=config.worker_model,
|
184
184
|
name="plan_generator",
|
185
|
-
description="Generates
|
185
|
+
description="Generates or refine the existing 5 line action-oriented research plan, using minimal search only for topic clarification.",
|
186
186
|
instruction=f"""
|
187
|
-
You are a research strategist. Your job is to create a high-level RESEARCH PLAN, not a summary.
|
188
|
-
|
189
|
-
|
187
|
+
You are a research strategist. Your job is to create a high-level RESEARCH PLAN, not a summary. If there is already a RESEARCH PLAN in the session state,
|
188
|
+
improve upon it based on the user feedback.
|
189
|
+
|
190
|
+
RESEARCH PLAN(SO FAR):
|
191
|
+
{{ research_plan? }}
|
192
|
+
|
193
|
+
**GENERAL INSTRUCTION: CLASSIFY TASK TYPES**
|
194
|
+
Your plan must clearly classify each goal for downstream execution. Each bullet point should start with a task type prefix:
|
195
|
+
- **`[RESEARCH]`**: For goals that primarily involve information gathering, investigation, analysis, or data collection (these require search tool usage by a researcher).
|
196
|
+
- **`[DELIVERABLE]`**: For goals that involve synthesizing collected information, creating structured outputs (e.g., tables, charts, summaries, reports), or compiling final output artifacts (these are executed AFTER research tasks, often without further search).
|
197
|
+
|
198
|
+
**INITIAL RULE: Your initial output MUST start with a bulleted list of 5 action-oriented research goals or key questions, followed by any *inherently implied* deliverables.**
|
199
|
+
- All initial 5 goals will be classified as `[RESEARCH]` tasks.
|
200
|
+
- A good goal for `[RESEARCH]` starts with a verb like "Analyze," "Identify," "Investigate."
|
190
201
|
- A bad output is a statement of fact like "The event was in April 2024."
|
202
|
+
- **Proactive Implied Deliverables (Initial):** If any of your initial 5 `[RESEARCH]` goals inherently imply a standard output or deliverable (e.g., a comparative analysis suggesting a comparison table, or a comprehensive review suggesting a summary document), you MUST add these as additional, distinct goals immediately after the initial 5. Phrase these as *synthesis or output creation actions* (e.g., "Create a summary," "Develop a comparison," "Compile a report") and prefix them with `[DELIVERABLE][IMPLIED]`.
|
203
|
+
|
204
|
+
**REFINEMENT RULE**:
|
205
|
+
- **Integrate Feedback & Mark Changes:** When incorporating user feedback, make targeted modifications to existing bullet points. Add `[MODIFIED]` to the existing task type and status prefix (e.g., `[RESEARCH][MODIFIED]`). If the feedback introduces new goals:
|
206
|
+
- If it's an information gathering task, prefix it with `[RESEARCH][NEW]`.
|
207
|
+
- If it's a synthesis or output creation task, prefix it with `[DELIVERABLE][NEW]`.
|
208
|
+
- **Proactive Implied Deliverables (Refinement):** Beyond explicit user feedback, if the nature of an existing `[RESEARCH]` goal (e.g., requiring a structured comparison, deep dive analysis, or broad synthesis) or a `[DELIVERABLE]` goal inherently implies an additional, standard output or synthesis step (e.g., a detailed report following a summary, or a visual representation of complex data), proactively add this as a new goal. Phrase these as *synthesis or output creation actions* and prefix them with `[DELIVERABLE][IMPLIED]`.
|
209
|
+
- **Maintain Order:** Strictly maintain the original sequential order of existing bullet points. New bullets, whether `[NEW]` or `[IMPLIED]`, should generally be appended to the list, unless the user explicitly instructs a specific insertion point.
|
210
|
+
- **Flexible Length:** The refined plan is no longer constrained by the initial 5-bullet limit and may comprise more goals as needed to fully address the feedback and implied deliverables.
|
211
|
+
|
191
212
|
**TOOL USE IS STRICTLY LIMITED:**
|
192
213
|
Your goal is to create a generic, high-quality plan *without searching*.
|
193
214
|
Only use `google_search` if a topic is ambiguous or time-sensitive and you absolutely cannot create a plan without a key piece of identifying information.
|
@@ -204,6 +225,7 @@ section_planner = LlmAgent(
|
|
204
225
|
description="Breaks down the research plan into a structured markdown outline of report sections.",
|
205
226
|
instruction="""
|
206
227
|
You are an expert report architect. Using the research topic and the plan from the 'research_plan' state key, design a logical structure for the final report.
|
228
|
+
Note: Ignore all the tag nanes ([MODIFIED], [NEW], [RESEARCH], [DELIVERABLE]) in the research plan.
|
207
229
|
Your task is to create a markdown outline with 4-6 distinct sections that cover the topic comprehensively without overlap.
|
208
230
|
You can use any markdown format you prefer, but here's a suggested structure:
|
209
231
|
# Section Name
|
@@ -224,10 +246,42 @@ section_researcher = LlmAgent(
|
|
224
246
|
thinking_config=genai_types.ThinkingConfig(include_thoughts=True)
|
225
247
|
),
|
226
248
|
instruction="""
|
227
|
-
You are a diligent and
|
228
|
-
|
229
|
-
|
230
|
-
|
249
|
+
You are a highly capable and diligent research and synthesis agent. Your comprehensive task is to execute a provided research plan with **absolute fidelity**, first by gathering necessary information, and then by synthesizing that information into specified outputs.
|
250
|
+
|
251
|
+
You will be provided with a sequential list of research plan goals, stored in the `research_plan` state key. Each goal will be clearly prefixed with its primary task type: `[RESEARCH]` or `[DELIVERABLE]`.
|
252
|
+
|
253
|
+
Your execution process must strictly adhere to these two distinct and sequential phases:
|
254
|
+
|
255
|
+
---
|
256
|
+
|
257
|
+
**Phase 1: Information Gathering (`[RESEARCH]` Tasks)**
|
258
|
+
|
259
|
+
* **Execution Directive:** You **MUST** systematically process every goal prefixed with `[RESEARCH]` before proceeding to Phase 2.
|
260
|
+
* For each `[RESEARCH]` goal:
|
261
|
+
* **Query Generation:** Formulate a comprehensive set of 4-5 targeted search queries. These queries must be expertly designed to broadly cover the specific intent of the `[RESEARCH]` goal from multiple angles.
|
262
|
+
* **Execution:** Utilize the `google_search` tool to execute **all** generated queries for the current `[RESEARCH]` goal.
|
263
|
+
* **Summarization:** Synthesize the search results into a detailed, coherent summary that directly addresses the objective of the `[RESEARCH]` goal.
|
264
|
+
* **Internal Storage:** Store this summary, clearly tagged or indexed by its corresponding `[RESEARCH]` goal, for later and exclusive use in Phase 2. You **MUST NOT** lose or discard any generated summaries.
|
265
|
+
|
266
|
+
---
|
267
|
+
|
268
|
+
**Phase 2: Synthesis and Output Creation (`[DELIVERABLE]` Tasks)**
|
269
|
+
|
270
|
+
* **Execution Prerequisite:** This phase **MUST ONLY COMMENCE** once **ALL** `[RESEARCH]` goals from Phase 1 have been fully completed and their summaries are internally stored.
|
271
|
+
* **Execution Directive:** You **MUST** systematically process **every** goal prefixed with `[DELIVERABLE]`. For each `[DELIVERABLE]` goal, your directive is to **PRODUCE** the artifact as explicitly described.
|
272
|
+
* For each `[DELIVERABLE]` goal:
|
273
|
+
* **Instruction Interpretation:** You will interpret the goal's text (following the `[DELIVERABLE]` tag) as a **direct and non-negotiable instruction** to generate a specific output artifact.
|
274
|
+
* *If the instruction details a table (e.g., "Create a Detailed Comparison Table in Markdown format"), your output for this step **MUST** be a properly formatted Markdown table utilizing columns and rows as implied by the instruction and the prepared data.*
|
275
|
+
* *If the instruction states to prepare a summary, report, or any other structured output, your output for this step **MUST** be that precise artifact.*
|
276
|
+
* **Data Consolidation:** Access and utilize **ONLY** the summaries generated during Phase 1 (`[RESEARCH]` tasks`) to fulfill the requirements of the current `[DELIVERABLE]` goal. You **MUST NOT** perform new searches.
|
277
|
+
* **Output Generation:** Based on the specific instruction of the `[DELIVERABLE]` goal:
|
278
|
+
* Carefully extract, organize, and synthesize the relevant information from your previously gathered summaries.
|
279
|
+
* Must always produce the specified output artifact (e.g., a concise summary, a structured comparison table, a comprehensive report, a visual representation, etc.) with accuracy and completeness.
|
280
|
+
* **Output Accumulation:** Maintain and accumulate **all** the generated `[DELIVERABLE]` artifacts. These are your final outputs.
|
281
|
+
|
282
|
+
---
|
283
|
+
|
284
|
+
**Final Output:** Your final output will comprise the complete set of processed summaries from `[RESEARCH]` tasks AND all the generated artifacts from `[DELIVERABLE]` tasks, presented clearly and distinctly.
|
231
285
|
""",
|
232
286
|
tools=[google_search],
|
233
287
|
output_key="section_research_findings",
|
llm.txt
ADDED
@@ -0,0 +1,296 @@
|
|
1
|
+
---
|
2
|
+
**llm.txt** documents the "Agent Starter Pack" repository, providing a source of truth on its purpose, features, and usage.
|
3
|
+
---
|
4
|
+
|
5
|
+
### Section 1: Project Overview
|
6
|
+
|
7
|
+
* **Project Name:** Agent Starter Pack
|
8
|
+
* **Purpose:** Accelerate development of production-ready GenAI Agents on Google Cloud.
|
9
|
+
* **Tagline:** Production-Ready Agents on Google Cloud, faster.
|
10
|
+
|
11
|
+
**The "Production Gap":**
|
12
|
+
While prototyping GenAI agents is quick, production deployment often takes 3-9 months.
|
13
|
+
|
14
|
+
**Key Challenges Addressed:**
|
15
|
+
* **Customization:** Business logic, data grounding, security/compliance.
|
16
|
+
* **Evaluation:** Metrics, quality assessment, test datasets.
|
17
|
+
* **Deployment:** Cloud infrastructure, CI/CD, UI integration.
|
18
|
+
* **Observability:** Performance tracking, user feedback.
|
19
|
+
|
20
|
+
**Solution: Agent Starter Pack**
|
21
|
+
Provides MLOps and infrastructure templates so developers focus on agent logic.
|
22
|
+
|
23
|
+
* **You Build:** Prompts, LLM interactions, business logic, agent orchestration.
|
24
|
+
* **We Provide:**
|
25
|
+
* Deployment infrastructure, CI/CD, testing
|
26
|
+
* Logging, monitoring
|
27
|
+
* Evaluation tools
|
28
|
+
* Data connections, UI playground
|
29
|
+
* Security best practices
|
30
|
+
|
31
|
+
Establishes production patterns from day one, saving setup time.
|
32
|
+
|
33
|
+
---
|
34
|
+
### Section 2: Creating a New Agent Project
|
35
|
+
|
36
|
+
Start by creating a new agent project from a predefined template. This process supports both interactive and fully automated setup.
|
37
|
+
|
38
|
+
**Prerequisites:**
|
39
|
+
Before you begin, ensure you have `uv`/`uvx`, `gcloud` CLI, `terraform`, `git`, and `gh` CLI (for automated CI/CD setup) installed and authenticated.
|
40
|
+
|
41
|
+
**Installing the `agent-starter-pack` CLI:**
|
42
|
+
Choose one method to get the `agent-starter-pack` command:
|
43
|
+
|
44
|
+
1. **`uvx` (Recommended for Zero-Install/Automation):** Run directly without prior installation.
|
45
|
+
```bash
|
46
|
+
uvx agent-starter-pack create ...
|
47
|
+
```
|
48
|
+
2. **Virtual Environment (`pip` or `uv`):**
|
49
|
+
```bash
|
50
|
+
pip install agent-starter-pack
|
51
|
+
```
|
52
|
+
3. **Persistent CLI Install (`pipx` or `uv tool`):** Installs globally in an isolated environment.
|
53
|
+
|
54
|
+
---
|
55
|
+
### `agent-starter-pack create` Command
|
56
|
+
|
57
|
+
Generates a new agent project directory based on a chosen template and configuration.
|
58
|
+
|
59
|
+
**Usage:**
|
60
|
+
```bash
|
61
|
+
agent-starter-pack create PROJECT_NAME [OPTIONS]
|
62
|
+
```
|
63
|
+
|
64
|
+
**Arguments:**
|
65
|
+
* `PROJECT_NAME`: Name for your new project directory and base for GCP resource naming.
|
66
|
+
|
67
|
+
**Key Options:**
|
68
|
+
* `-a, --agent`: Agent template (e.g., `adk_base`, `agentic_rag`).
|
69
|
+
* `-d, --deployment-target`: Target deployment environment (`cloud_run` or `agent_engine`).
|
70
|
+
* `-ds, --datastore`: For RAG agents, the datastore (`vertex_ai_search` or `vertex_ai_vector_search`).
|
71
|
+
* `-i, --include-data-ingestion`: Include data ingestion pipeline scaffolding.
|
72
|
+
* `--region`: GCP region (e.g., `us-central1`).
|
73
|
+
* `--auto-approve`: **Skips all interactive prompts (crucial for automation).**
|
74
|
+
* `--debug`: Enables debug logging during creation.
|
75
|
+
|
76
|
+
**Automated Creation Example:**
|
77
|
+
```bash
|
78
|
+
uvx agent-starter-pack create my-automated-agent \
|
79
|
+
-a adk_base \
|
80
|
+
-d cloud_run \
|
81
|
+
--region us-central1 \
|
82
|
+
--auto-approve
|
83
|
+
```
|
84
|
+
|
85
|
+
---
|
86
|
+
|
87
|
+
### Available Agent Templates
|
88
|
+
|
89
|
+
Templates for the `create` command (via `-a` or `--agent`):
|
90
|
+
|
91
|
+
| Agent Name | Description |
|
92
|
+
| :--------------------- | :------------------------------------------- |
|
93
|
+
| `adk_base` | Base ReAct agent (ADK) |
|
94
|
+
| `adk_gemini_fullstack` | Production-ready fullstack research agent |
|
95
|
+
| `agentic_rag` | RAG agent for document retrieval & Q&A |
|
96
|
+
| `langgraph_base_react` | Base ReAct agent (LangGraph) |
|
97
|
+
| `crewai_coding_crew` | Multi-agent collaborative coding assistance |
|
98
|
+
| `live_api` | Real-time multimodal RAG agent |
|
99
|
+
|
100
|
+
---
|
101
|
+
|
102
|
+
### Including a Data Ingestion Pipeline (for RAG agents)
|
103
|
+
|
104
|
+
For RAG agents needing custom document search, enabling this option automates loading, chunking, embedding documents with Vertex AI, and storing them in a vector database.
|
105
|
+
|
106
|
+
**How to enable:**
|
107
|
+
```bash
|
108
|
+
uvx agent-starter-pack create my-rag-agent \
|
109
|
+
-a agentic_rag \
|
110
|
+
-d cloud_run \
|
111
|
+
-i \
|
112
|
+
-ds vertex_ai_search \
|
113
|
+
--auto-approve
|
114
|
+
```
|
115
|
+
**Post-creation:** Follow your new project's `data_ingestion/README.md` to deploy the necessary infrastructure.
|
116
|
+
|
117
|
+
---
|
118
|
+
### Section 3: Development & Automated Deployment Workflow
|
119
|
+
---
|
120
|
+
|
121
|
+
This section describes the end-to-end lifecycle of an agent, with emphasis on automation.
|
122
|
+
|
123
|
+
|
124
|
+
### 1. Local Development & Iteration
|
125
|
+
|
126
|
+
Once your project is created, navigate into its directory to begin development.
|
127
|
+
|
128
|
+
**First, install dependencies (run once):**
|
129
|
+
```bash
|
130
|
+
make install
|
131
|
+
```
|
132
|
+
|
133
|
+
**Next, test your agent. The recommended method is to use a programmatic script.**
|
134
|
+
|
135
|
+
#### Programmatic Testing (Recommended Workflow)
|
136
|
+
|
137
|
+
This method allows for quick, automated validation of your agent's logic.
|
138
|
+
|
139
|
+
1. **Create a script:** In the project's root directory, create a Python script named `run_agent.py`.
|
140
|
+
2. **Invoke the agent:** In the script, write code to programmatically call your agent with sample input and `print()` the output for inspection.
|
141
|
+
* **Guidance:** If you're unsure or no guidance exists, you can look at files in the `tests/` directory for examples of how to import and call the agent's main function.
|
142
|
+
* **Important:** This script is for simple validation. **Assertions are not required**, and you should not create a formal `pytest` file.
|
143
|
+
3. **Run the test:** Execute your script from the terminal using `uv`.
|
144
|
+
```bash
|
145
|
+
uv run python run_agent.py
|
146
|
+
```
|
147
|
+
You can keep the test file for future testing.
|
148
|
+
|
149
|
+
#### Manual Testing with the UI Playground (Optional)
|
150
|
+
|
151
|
+
If the user needs to interact with your agent manually in a chat interface for debugging:
|
152
|
+
|
153
|
+
1. Run the following command to start the local web UI:
|
154
|
+
```bash
|
155
|
+
make playground
|
156
|
+
```
|
157
|
+
This is useful for human-in-the-loop testing and features hot-reloading.
|
158
|
+
|
159
|
+
### 2. Deploying to a Cloud Development Environment
|
160
|
+
Before setting up full CI/CD, you can deploy to a personal cloud dev environment.
|
161
|
+
|
162
|
+
1. **Set Project:** `gcloud config set project YOUR_DEV_PROJECT_ID`
|
163
|
+
2. **Provision Resources:** `make setup-dev-env` (uses Terraform).
|
164
|
+
3. **Deploy Backend:** `make backend` (builds and deploys the agent).
|
165
|
+
|
166
|
+
### 3. Automated Production-Ready Deployment with CI/CD
|
167
|
+
For reliable deployments, the `setup-cicd` command streamlines the entire process. It creates a GitHub repo, connects it to Cloud Build, provisions staging/prod infrastructure, and configures deployment triggers.
|
168
|
+
|
169
|
+
**Automated CI/CD Setup Example (Recommended):**
|
170
|
+
```bash
|
171
|
+
# Run from the project root. This command will guide you or can be automated with flags.
|
172
|
+
uvx agent-starter-pack setup-cicd
|
173
|
+
```
|
174
|
+
|
175
|
+
**CI/CD Workflow Logic:**
|
176
|
+
* **On Pull Request:** CI pipeline runs tests.
|
177
|
+
* **On Merge to `main`:** CD pipeline deploys to staging.
|
178
|
+
* **Manual Approval:** A manual approval step triggers the production deployment.
|
179
|
+
|
180
|
+
---
|
181
|
+
### Section 4: Key Features & Customization
|
182
|
+
---
|
183
|
+
|
184
|
+
### Deploying with a User Interface (UI)
|
185
|
+
* **Unified Deployment (for Dev/Test):** The backend and frontend can be packaged and served from a single Cloud Run service, secured with Identity-Aware Proxy (IAP).
|
186
|
+
* **Deploying with UI:** `make backend IAP=true`
|
187
|
+
* **Access Control:** After deploying with IAP, grant users the `IAP-secured Web App User` role in IAM to give them access.
|
188
|
+
|
189
|
+
### Monitoring & Observability
|
190
|
+
* **Technology:** Uses OpenTelemetry to emit events to Google Cloud Trace and Logging.
|
191
|
+
* **Custom Tracer:** A custom tracer in `app/utils/tracing.py` handles large payloads by linking to GCS, overcoming default service limits.
|
192
|
+
* **Infrastructure:** A Log Router to sink data to BigQuery is provisioned by Terraform.
|
193
|
+
|
194
|
+
---
|
195
|
+
### Section 5: CLI Reference for CI/CD Setup
|
196
|
+
---
|
197
|
+
|
198
|
+
### `agent-starter-pack setup-cicd`
|
199
|
+
Automates the entire CI/CD setup for a project on GitHub.
|
200
|
+
|
201
|
+
**Usage:**
|
202
|
+
```bash
|
203
|
+
uvx agent-starter-pack setup-cicd [OPTIONS]
|
204
|
+
```
|
205
|
+
**Prerequisites:** Run from the project root. `uv`, `gh` CLI, `gcloud` CLI, and `terraform` must be installed and authenticated. Requires `Owner` role on the GCP projects.
|
206
|
+
|
207
|
+
**Automated CI/CD Setup Options:**
|
208
|
+
* `--staging-project`: (REQUIRED) The Google Cloud Project ID for your staging environment.
|
209
|
+
* `--prod-project`: (REQUIRED) The Google Cloud Project ID for your production environment.
|
210
|
+
* `--repository-name`: (REQUIRED) The name for the new GitHub repository that will be created.
|
211
|
+
* `--repository-owner`: (REQUIRED) Your GitHub username or organization where the repo will be created.
|
212
|
+
* `--git-provider`: (REQUIRED) The Git provider to use (github, gitlab, etc.). Only "github" is supported.
|
213
|
+
* `--auto-approve`: Skips all interactive confirmation prompts.
|
214
|
+
|
215
|
+
|
216
|
+
**Automated Example:**
|
217
|
+
```bash
|
218
|
+
uvx agent-starter-pack setup-cicd \
|
219
|
+
--staging-project the-user-staging-project \
|
220
|
+
--prod-project the-user-prod-project \
|
221
|
+
--repository-name the-user-repo-name \
|
222
|
+
--repository-owner the-username \
|
223
|
+
--git-provider github \
|
224
|
+
--auto-approve
|
225
|
+
```
|
226
|
+
* Note: As a coding agent, you must run this command non-interactively. Before executing, you must ask the user to provide the following required flags: `--staging-project`, `--prod-project`, `--repository-name`, `--repository-owner`, and `--git-provider`. Once you have these values, you can construct and run the command with the `--auto-approve` flag.
|
227
|
+
* Note: If the user tells that `setup-cicd` is not a viable option or it wants to use a different git provider, you must not use this command. Instead, you should look at the `deployment/README.md` to get instructions on how to manually deploy the agent.
|
228
|
+
---
|
229
|
+
### Section 6: Operational Guidelines for Coding Agents
|
230
|
+
|
231
|
+
These guidelines are essential for interacting with the Agent Starter Pack project effectively.
|
232
|
+
|
233
|
+
---
|
234
|
+
|
235
|
+
### Principle 1: Code Preservation & Isolation
|
236
|
+
|
237
|
+
When executing code modifications using tools like `replace` or `write_file`, your paramount objective is surgical precision. You **must alter only the code segments directly targeted** by the user's request, while **strictly preserving all surrounding and unrelated code.**
|
238
|
+
|
239
|
+
**Mandatory Pre-Execution Verification:**
|
240
|
+
|
241
|
+
Before finalizing any `new_string` for a `replace` operation, meticulously verify the following:
|
242
|
+
|
243
|
+
1. **Target Identification:** Clearly define the exact lines or expressions to be changed, based *solely* on the user's explicit instructions.
|
244
|
+
2. **Preservation Check:** Compare your proposed `new_string` against the `old_string`. Ensure all code, configuration values (e.g., `model`, `version`, `api_key`), comments, and formatting *outside* the identified target remain identical and verbatim.
|
245
|
+
|
246
|
+
**Example: Adhering to Preservation**
|
247
|
+
|
248
|
+
* **User Request:** "Change the agent's instruction to be a recipe suggester."
|
249
|
+
* **Original Code Snippet:**
|
250
|
+
```python
|
251
|
+
root_agent = Agent(
|
252
|
+
name="root_agent",
|
253
|
+
model="gemini-2.5-flash",
|
254
|
+
instruction="You are a helpful AI assistant."
|
255
|
+
)
|
256
|
+
```
|
257
|
+
* **Incorrect Modification (VIOLATION):**
|
258
|
+
```python
|
259
|
+
root_agent = Agent(
|
260
|
+
name="recipe_suggester",
|
261
|
+
model="gemini-1.5-flash", # UNINTENDED MUTATION - model was not requested to change
|
262
|
+
instruction="You are a recipe suggester."
|
263
|
+
)
|
264
|
+
```
|
265
|
+
* **Correct Modification (COMPLIANT):**
|
266
|
+
```python
|
267
|
+
root_agent = Agent(
|
268
|
+
name="recipe_suggester", # OK, related to new purpose
|
269
|
+
model="gemini-2.5-flash", # MUST be preserved
|
270
|
+
instruction="You are a recipe suggester." # OK, the direct target
|
271
|
+
)
|
272
|
+
```
|
273
|
+
|
274
|
+
**Critical Error:** Failure to adhere to this preservation principle is a critical error. Always prioritize the integrity of existing, unchanged code over the convenience of rewriting entire blocks.
|
275
|
+
|
276
|
+
---
|
277
|
+
|
278
|
+
### Principle 2: Workflow & Execution Best Practices
|
279
|
+
|
280
|
+
* **Standard Workflow:**
|
281
|
+
The validated end-to-end process is: `create` → `test` → `setup-cicd` → push to deploy. Trust this high-level workflow as the default for developing and shipping agents.
|
282
|
+
|
283
|
+
* **Agent Testing:**
|
284
|
+
* **Avoid `make playground`** unless specifically instructed; it is designed for human interaction. Focus on programmatic testing.
|
285
|
+
|
286
|
+
* **Model Selection:**
|
287
|
+
* **When using Gemini, prefer the 2.5 model family** for optimal performance and capabilities: "gemini-2.5-pro" and "gemini-2.5-flash"
|
288
|
+
|
289
|
+
* **Running Python Commands:**
|
290
|
+
* Always use `uv` to execute Python commands within this repository (e.g., `uv run run_agent.py`).
|
291
|
+
* Ensure project dependencies are installed by running `make install` before executing scripts.
|
292
|
+
* Consult the project's `Makefile` and `README.md` for other useful development commands.
|
293
|
+
|
294
|
+
* **Further Reading & Troubleshooting:**
|
295
|
+
* For questions about specific frameworks (e.g., LangGraph) or Google Cloud products (e.g., Cloud Run), their official documentation and online resources are the best source of truth.
|
296
|
+
* **When encountering persistent errors or if you're unsure how to proceed after initial troubleshooting, a targeted Google Search is strongly recommended.** It is often the fastest way to find relevant documentation, community discussions, or direct solutions to your problem.
|
src/base_template/.gitignore
CHANGED