agent-starter-pack 0.6.2__py3-none-any.whl → 0.6.4__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.
Files changed (27) hide show
  1. {agent_starter_pack-0.6.2.dist-info → agent_starter_pack-0.6.4.dist-info}/METADATA +2 -1
  2. {agent_starter_pack-0.6.2.dist-info → agent_starter_pack-0.6.4.dist-info}/RECORD +26 -27
  3. agents/adk_base/app/agent.py +1 -1
  4. agents/adk_base/template/.templateconfig.yaml +1 -1
  5. agents/adk_gemini_fullstack/README.md +2 -147
  6. agents/adk_gemini_fullstack/template/.templateconfig.yaml +1 -1
  7. agents/agentic_rag/app/agent.py +1 -1
  8. agents/agentic_rag/template/.templateconfig.yaml +1 -1
  9. agents/crewai_coding_crew/app/agent.py +1 -1
  10. agents/langgraph_base_react/app/agent.py +1 -1
  11. agents/live_api/app/agent.py +8 -4
  12. src/base_template/Makefile +1 -1
  13. src/resources/locks/uv-adk_base-agent_engine.lock +109 -59
  14. src/resources/locks/uv-adk_base-cloud_run.lock +150 -81
  15. src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +109 -59
  16. src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +150 -81
  17. src/resources/locks/uv-agentic_rag-agent_engine.lock +122 -80
  18. src/resources/locks/uv-agentic_rag-cloud_run.lock +163 -102
  19. src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +470 -219
  20. src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +570 -221
  21. src/resources/locks/uv-langgraph_base_react-agent_engine.lock +120 -83
  22. src/resources/locks/uv-langgraph_base_react-cloud_run.lock +161 -105
  23. src/resources/locks/uv-live_api-cloud_run.lock +142 -87
  24. src/frontends/adk_gemini_fullstack/frontend/public/vite.svg +0 -1
  25. {agent_starter_pack-0.6.2.dist-info → agent_starter_pack-0.6.4.dist-info}/WHEEL +0 -0
  26. {agent_starter_pack-0.6.2.dist-info → agent_starter_pack-0.6.4.dist-info}/entry_points.txt +0 -0
  27. {agent_starter_pack-0.6.2.dist-info → agent_starter_pack-0.6.4.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.6.2
3
+ Version: 0.6.4
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
@@ -83,6 +83,7 @@ agent-starter-pack create my-agent -d agent_engine -a adk_base
83
83
  | Agent Name | Description |
84
84
  |-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
85
85
  | `adk_base` | A base ReAct agent implemented using Google's [Agent Development Kit](https://github.com/google/adk-python) |
86
+ | `adk_gemini_fullstack` | A production-ready fullstack research agent with Gemini that demonstrates complex agentic workflows, modular agent design, and Human-in-the-Loop steps. [ADK Samples](https://github.com/google/adk-samples/tree/main/python/agents/gemini-fullstack) |
86
87
  | `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). |
87
88
  | `langgraph_base_react` | An agent implementing a base ReAct agent using LangGraph |
88
89
  | `crewai_coding_crew` | A multi-agent system implemented with CrewAI created to support coding activities |
@@ -1,26 +1,26 @@
1
1
  agents/adk_base/README.md,sha256=eLf-F9Z4u_mQOchAnUaSrOAHXRSx8wUQN29kkwz1SF4,894
2
- agents/adk_base/app/agent.py,sha256=Kt-0TQM4g9NLs7Q2KmRWPfPWWgyQEODVo0uCepLkqDw,2182
2
+ agents/adk_base/app/agent.py,sha256=6Q6QegQDxEaAck989DPIb3ArHMZtw_YJBqhHFqg-UjQ,2182
3
3
  agents/adk_base/notebooks/adk_app_testing.ipynb,sha256=kWYd-ButNGemupiPDIzhlQO0elxWCwiea0nhmnsW8cg,9619
4
4
  agents/adk_base/notebooks/evaluating_adk_agent.ipynb,sha256=OMTiT3gAFWPvE9pPL8z7tsDwOU-l8wem5wH-OXPPlvk,56805
5
- agents/adk_base/template/.templateconfig.yaml,sha256=d6f_11cA0m6VMUzVPXETSoCViQe5b49ImzJAlkhskHw,893
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
- agents/adk_gemini_fullstack/README.md,sha256=57Th3Mv2o0x2_6XnWMLnmZz_gNVaSY8te3--TfV9r_A,8147
7
+ agents/adk_gemini_fullstack/README.md,sha256=yQFFcESALj5Q6eweyIyPx__U74obUM88aCBJYNV2UWs,1674
8
8
  agents/adk_gemini_fullstack/app/agent.py,sha256=bk67bpAge8_b-reI1VuF4PNTXFHqnD92hdVTVXslS4s,16402
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
12
- agents/adk_gemini_fullstack/template/.templateconfig.yaml,sha256=0vwRirGXHFw7RUVjS8umiMNu3TXvTKk9smufIOhDJn4,1658
12
+ agents/adk_gemini_fullstack/template/.templateconfig.yaml,sha256=yRLZdEON4faicYe9hklktxv06OCx1sdP9ihuniKuPfU,1658
13
13
  agents/adk_gemini_fullstack/tests/integration/test_agent.py,sha256=VypgpEWrQegJBgc58V-BlIsbqh-Hii-hwmkwcz5feFw,1969
14
14
  agents/agentic_rag/README.md,sha256=mxMLkq6tAghFaDmc2sc2sEQ5vn9kGWdiRxfTykwpLz0,2268
15
- agents/agentic_rag/app/agent.py,sha256=thaU0njJ3W90DI54EVrFe4lwx9yMWZT4jSGRMnUSdY8,3987
15
+ agents/agentic_rag/app/agent.py,sha256=tKtzez7vGu6JgMWmZN7QrKkyLBvHu1ondAuICjKoC-g,3983
16
16
  agents/agentic_rag/app/retrievers.py,sha256=qfxwSEixMddvAu4FvUTZAFh1Gdp3RPY65s0Wp6gEFVk,4561
17
17
  agents/agentic_rag/app/templates.py,sha256=8N_uRchwiN7hlH9Y8rdJ1CAtOhpHUWZkXZZ7IU-YJJk,867
18
18
  agents/agentic_rag/notebooks/adk_app_testing.ipynb,sha256=kWYd-ButNGemupiPDIzhlQO0elxWCwiea0nhmnsW8cg,9619
19
19
  agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb,sha256=OMTiT3gAFWPvE9pPL8z7tsDwOU-l8wem5wH-OXPPlvk,56805
20
- agents/agentic_rag/template/.templateconfig.yaml,sha256=k86nWTpBRnQPe3i9LS_KD1gK6vGXzllAlCHI6u4gQ0w,1223
20
+ agents/agentic_rag/template/.templateconfig.yaml,sha256=xZlSDarlNwppW6gjHXdxQMbUZAVpXwHPalVTS4Zbln8,1223
21
21
  agents/agentic_rag/tests/integration/test_agent.py,sha256=mxsKFyZrwXzIvAoxlqZv2JndM3VTVTKcugRYdF3APr4,2112
22
22
  agents/crewai_coding_crew/README.md,sha256=4No7sfHQVHELARGiT3fWANJzDR0NP48ow4ct3FoPwlA,1672
23
- agents/crewai_coding_crew/app/agent.py,sha256=axa-prJ7N8Gi8ASUSjokLeWCE-Z_cU0A99WwuLGsZyQ,3264
23
+ agents/crewai_coding_crew/app/agent.py,sha256=yd-P2Jzx3Do4FQuhwDsok-YRNYFi9Vl8OTqSlbdn4Sw,3260
24
24
  agents/crewai_coding_crew/app/crew/crew.py,sha256=pqeeJ4txP-gcVT3PKEAw2zZ4x8g4cDlnFFbf0_zZRr4,2000
25
25
  agents/crewai_coding_crew/app/crew/config/agents.yaml,sha256=Cn9zTcP3C-8MvlV19cYdlxR0iIs2_FOy2gKOJLUpNRo,1154
26
26
  agents/crewai_coding_crew/app/crew/config/tasks.yaml,sha256=SSFuiSQPhi4dM0V5HdNuMqtN7JJr5RUCMhhBzUkPBpc,1511
@@ -29,19 +29,19 @@ agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb,sha256=PlW4
29
29
  agents/crewai_coding_crew/template/.templateconfig.yaml,sha256=4SLcpHgDcf_6mjJCxPVciQ002QVz09V04uvbtMLZs4A,1051
30
30
  agents/crewai_coding_crew/tests/integration/test_agent.py,sha256=0uvfmM3FSdESIU7ICb2oqABsQqylQU2PE3UBwbpif-A,1629
31
31
  agents/langgraph_base_react/README.md,sha256=KZQ0e8q9CqnIEiItH9Tc2Ceb2mC3sBcyQUo-ZAmO-zs,482
32
- agents/langgraph_base_react/app/agent.py,sha256=srxiOT-NIM87WnUvP0PXuZGryEG9S33Z_4orHl3D_0A,2509
32
+ agents/langgraph_base_react/app/agent.py,sha256=yzCc5JaOJgItoBiZOzHPiSy9aD2HGeGI_pH7nrysSmg,2505
33
33
  agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb,sha256=PlW41fL-ji9NKkimW6u25YRLGWN2pgoX2G8w5nzIEPE,58737
34
34
  agents/langgraph_base_react/template/.templateconfig.yaml,sha256=jHh3WDNT70KMbA2zy3Da_J_jIWeGfeiqIKfUs5B8OBk,1049
35
35
  agents/langgraph_base_react/tests/integration/test_agent.py,sha256=wg2Y8V4l7dh7rhWy7Z8zioDW5ILRsz7RZJ-mz0AhK3U,1619
36
36
  agents/live_api/README.md,sha256=c3lu5WguOUBc5hO_UtNZfVhfYxvSzMXuGFICn9M38mU,2897
37
- agents/live_api/app/agent.py,sha256=FBsmCYI_dmBIbFD1uojcPxJfozGNc-0rg1fW2PhEyFw,2298
37
+ agents/live_api/app/agent.py,sha256=dYE2qd64OhL-fOgwzrjqN50LYXAgJ1TWbx6ohqtV5Rc,2434
38
38
  agents/live_api/app/server.py,sha256=ZXriNDl_zo7WDRBke85lyzMsy66qGzPaRXY1FMy4Fdw,7793
39
39
  agents/live_api/template/.templateconfig.yaml,sha256=DD_hihMsuqmd5VWS18vVGZ3ZGVVpFWVXJ2dU07eKb6k,964
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
43
  src/base_template/.gitignore,sha256=mJKTZIcVdAFiIUQicRfPNGUg6WvwcfTEC2xbmAaU34g,2579
44
- src/base_template/Makefile,sha256=TNwXFxOPuaQ7_GXB68R4uIiZpK5uKLWmQc8p2Imov-Q,5448
44
+ src/base_template/Makefile,sha256=b1LwWHtHziYNB8vTsnnhe8KbcYkP3lIsdWXh59lRnIU,5459
45
45
  src/base_template/README.md,sha256=d9vGHGZzpgbcgu-J-9gHr3NOV7nuRzgFzdSxSzwY3xs,10694
46
46
  src/base_template/pyproject.toml,sha256=0fM80KjqgmbiNxfM5jSXTnrze41nlPsYvFUEsKhlF08,2840
47
47
  src/base_template/app/__init__.py,sha256=UyAgc2l8nkVIUPUzL9hKR7EgzCsc2jSYcOcjHNNmpMU,59
@@ -109,7 +109,6 @@ src/frontends/adk_gemini_fullstack/frontend/package.json,sha256=fsPrhf27JfN35B80
109
109
  src/frontends/adk_gemini_fullstack/frontend/tsconfig.json,sha256=LtqiCB6w68AjbIegDnbXa1YXKM_RQZZVVkAjfUNxyBo,753
110
110
  src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json,sha256=1BewvjsiZMJqSGXTqe94jo5yKdpi7yqI7UGoHgTv9mg,593
111
111
  src/frontends/adk_gemini_fullstack/frontend/vite.config.ts,sha256=hxnoqbvxU6kljtTYOE49jhzurHiyr0cZvxugWSPvKsM,1150
112
- src/frontends/adk_gemini_fullstack/frontend/public/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
113
112
  src/frontends/adk_gemini_fullstack/frontend/src/App.tsx,sha256=X624JJ2LaDm1ztjb23r15f2fRzilVp6CNpw80HtuCAg,21473
114
113
  src/frontends/adk_gemini_fullstack/frontend/src/global.css,sha256=uNpkk45y9XVsmQs84D0KHN8B2i55ElSFZxHu6zml5E8,5037
115
114
  src/frontends/adk_gemini_fullstack/frontend/src/main.tsx,sha256=WYYxbfb0WHrY1BW7KB-pCxb3jslb1UeCDa26l9Ve0SQ,328
@@ -178,25 +177,25 @@ src/resources/containers/e2e-tests/Dockerfile,sha256=Q_aTyX_iaFY8j06XZkpMuggJnNO
178
177
  src/resources/idx/idx-template.json,sha256=07OQZCPp45Iqor2O7Tm1e1Gmsdd-AmmUofSvA7y-oRs,793
179
178
  src/resources/idx/idx-template.nix,sha256=sesHGev_PYtVDg0J5tHkg0OO7IR1Bz2iAtl_if3Ar3M,892
180
179
  src/resources/idx/.idx/dev.nix,sha256=XQ4T1xt5I-8SVwnI37v56RFFlxa58Ko-a9G2-oelYAI,1602
181
- src/resources/locks/uv-adk_base-agent_engine.lock,sha256=vpeialGn8PplTrsqx8uQYmUiwD_uDN7B5tP0-GuEXB8,352603
182
- src/resources/locks/uv-adk_base-cloud_run.lock,sha256=RSUnPpuhLBE4YJlw1W7JBp4dpQk_aUtvi99yQaqHOOY,433430
183
- src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock,sha256=vpeialGn8PplTrsqx8uQYmUiwD_uDN7B5tP0-GuEXB8,352603
184
- src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock,sha256=RSUnPpuhLBE4YJlw1W7JBp4dpQk_aUtvi99yQaqHOOY,433430
185
- src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=zWr9BhACA9f4WPmLxWgbG_m1bDpnhymY8q0IQnW3l0k,519313
186
- src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=njY24B2k7YE5nzZTpnpHMwZ0ogKHxgliK1i10velm0k,673291
187
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=bULo05BZdi_4xV1YXU2wTRi1Ujah-Cs5JS8VGdLqqGA,779718
188
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=jBbTXM6EC6LZ1_-a2dhnR3K2S1uKrZvsGm5rleuK2yQ,991649
189
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=C3WgRwzeH0jymFj8EfNuUwYs94E1e0s3UEbMGEsYls8,667131
190
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=sQmg4vv8bdZN9VEeNiX1CWfYHhLJMfyy-8QzvzW4xnE,865011
191
- src/resources/locks/uv-live_api-cloud_run.lock,sha256=-htrBaFgKW0dmx-Q7Ez0Vbe8r8A1hgq1IMsVzDiomDs,787143
180
+ src/resources/locks/uv-adk_base-agent_engine.lock,sha256=teMKoCsUYEmuMTgTGQj6RkdoNTUdg4qEKQSJx-iEthI,359032
181
+ src/resources/locks/uv-adk_base-cloud_run.lock,sha256=HrQCBGDXVPIqeAO2nAl09cEqcvWe8x7fNBP8M8c7bro,444877
182
+ src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock,sha256=teMKoCsUYEmuMTgTGQj6RkdoNTUdg4qEKQSJx-iEthI,359032
183
+ src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock,sha256=HrQCBGDXVPIqeAO2nAl09cEqcvWe8x7fNBP8M8c7bro,444877
184
+ src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=tUtdkyWYAqJQxY3A83MJpBO4ob-nyOphZtd8Ye9w6nA,525204
185
+ src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=NcYrDEWNG37mLSd14UDFY9x5m2jCjoS943L_NMvaeGc,684231
186
+ src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=nep-Xh1bP0lSWGfZBwBdkichQ6NzDY04Zhg9-1u-K4E,814819
187
+ src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=NmYdb4pV-2gRdtN-wERDPabbSieDkREBizkmbkJcsTg,1048015
188
+ src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=E2XpgMFHufviXXwJcyqNu8aLQ-pmVKy3b8151vy1Hlw,672886
189
+ src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=Rcr6mBYO1SB8vYwN257CQOvnQ3xpW8brJKMbPmHKREc,875815
190
+ src/resources/locks/uv-live_api-cloud_run.lock,sha256=y1quwN7HpuFL3CVZ58dsnQ-c4kX0S9w9MBwhfbaYQGE,797917
192
191
  src/resources/setup_cicd/cicd_variables.tf,sha256=PMflYe1TzQi63LORHkmeCktTYzXFplJgxffNH4DtuAQ,1244
193
192
  src/resources/setup_cicd/github.tf,sha256=scTBgeZlCM74N-pzhVKsnTN0PX9a5GboNl1HN3-LlCM,2791
194
193
  src/resources/setup_cicd/providers.tf,sha256=Km4z6IJt7x7PLaa0kyZbBrO2m3lpuIJZFD5jB7QBfF0,1122
195
194
  src/utils/generate_locks.py,sha256=6V1B8V2BEuevWnXUsxZVTrLjXwFRII8UfsIGrQqZxVs,4320
196
195
  src/utils/lock_utils.py,sha256=RSE6n3hBkH64xNm3Q5wrR0Pqbeo-oc7xaTOhA9yzHjk,2275
197
196
  src/utils/watch_and_rebuild.py,sha256=vP4yIiA7E_lj5sfQdJUl8TXas6V7msDg8XWUutAC05Q,6679
198
- agent_starter_pack-0.6.2.dist-info/METADATA,sha256=-d0y3Ev6PpkXjlulqO676U5XhPjLB1Y-aWXaMgbJD_8,10454
199
- agent_starter_pack-0.6.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
200
- agent_starter_pack-0.6.2.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
201
- agent_starter_pack-0.6.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
202
- agent_starter_pack-0.6.2.dist-info/RECORD,,
197
+ agent_starter_pack-0.6.4.dist-info/METADATA,sha256=x7-k1tV6DfP6Clfd08rcW98Fb6VTOhl3dGrXO-a1cCM,10729
198
+ agent_starter_pack-0.6.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
199
+ agent_starter_pack-0.6.4.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
200
+ agent_starter_pack-0.6.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
201
+ agent_starter_pack-0.6.4.dist-info/RECORD,,
@@ -60,7 +60,7 @@ def get_current_time(query: str) -> str:
60
60
 
61
61
  root_agent = Agent(
62
62
  name="root_agent",
63
- model="gemini-2.0-flash",
63
+ model="gemini-2.5-flash",
64
64
  instruction="You are a helpful AI assistant designed to provide accurate and useful information.",
65
65
  tools=[get_weather, get_current_time],
66
66
  )
@@ -17,6 +17,6 @@ example_question: "What's the weather in San Francisco?"
17
17
  settings:
18
18
  requires_data_ingestion: false
19
19
  deployment_targets: ["agent_engine", "cloud_run"]
20
- extra_dependencies: ["google-adk~=1.3.0"]
20
+ extra_dependencies: ["google-adk~=1.4.2"]
21
21
  tags: ["adk"]
22
22
  frontend_type: "None"
@@ -1,5 +1,7 @@
1
1
  # Gemini Fullstack Agent Development Kit (ADK) Quickstart
2
2
 
3
+ > 🔍 **Sample Agent**: This agent is part of the [ADK Samples](https://github.com/google/adk-samples/tree/main/python/agents/gemini-fullstack) collection, showcasing agent implementations using the Agent Development Kit.
4
+
3
5
  The **Gemini Fullstack Agent Development Kit (ADK) Quickstart** is a production-ready blueprint for building a sophisticated, fullstack research agent with Gemini. It's built to demonstrate how the ADK helps structure complex agentic workflows, build modular agents, and incorporate critical Human-in-the-Loop (HITL) steps.
4
6
 
5
7
  <table>
@@ -23,150 +25,3 @@ The **Gemini Fullstack Agent Development Kit (ADK) Quickstart** is a production-
23
25
  </tr>
24
26
  </tbody>
25
27
  </table>
26
-
27
- <img src="../../docs/images/adk_gemini_fullstack_preview.png" alt="Gemini Fullstack ADK Preview">
28
-
29
- This project adapts concepts from the [Gemini FullStack LangGraph Quickstart](https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart) for the frontend app.
30
-
31
- ## 🚀 Getting Started: From Zero to Running Agent in 1 Minute
32
-
33
- **Prerequisites:**
34
-
35
- * **[Python 3.10+](https://www.python.org/downloads/)**
36
- * **[Node.js and npm](https://nodejs.org/)**
37
- * **[Google Cloud SDK](https://cloud.google.com/sdk/docs/install)**
38
-
39
- ### Step 1: Create Your Agent Project
40
-
41
-
42
- This command uses the [Agent Starter Pack](goo.gle/agent-starter-pack) to create a new directory (`my-fullstack-agent`) with all the necessary code.
43
- ```bash
44
- # Create and activate a virtual environment
45
- python -m venv .venv && source .venv/bin/activate # On Windows: .venv\Scripts\activate
46
-
47
- # Install the starter pack and create your project
48
- pip install --upgrade agent-starter-pack
49
- agent-starter-pack create my-fullstack-agent -a adk_gemini_fullstack
50
- ```
51
-
52
- <details>
53
- <summary>⚡️ Alternative: Using uv</summary>
54
-
55
- If you have [`uv`](https://github.com/astral-sh/uv) installed, you can create and set up your project with a single command:
56
-
57
- ```bash
58
- uvx agent-starter-pack create my-fullstack-agent -a adk_gemini_fullstack
59
- ```
60
- This command handles creating the project without needing to pre-install the package into a virtual environment.
61
-
62
- </details>
63
-
64
- You'll be prompted to select a deployment option (Agent Engine or Cloud Run) and verify your Google Cloud credentials.
65
-
66
- ### Step 2: Install Dependencies & Run the Agent
67
-
68
- Now, navigate into your new project, install the dependencies, and start the servers with a single command.
69
-
70
- ```bash
71
- cd my-fullstack-agent && make install && make dev
72
- ```
73
-
74
- Your agent should now be running!
75
- * Backend API: `http://localhost:8000`
76
- * Frontend UI: `http://localhost:5173`
77
-
78
- ## 🔑 Using Google AI Studio API Keys
79
-
80
- If you prefer to use [AI Studio](https://aistudio.google.com/) API keys:
81
-
82
- 1. Create a `.env` file in the `/app` directory with:
83
- ```
84
- GOOGLE_GENAI_USE_VERTEXAI=FALSE
85
- GOOGLE_API_KEY=YOUR_AI_STUDIO_API_KEY
86
- ```
87
-
88
- <details>
89
- <summary>Or export the variables directly</summary>
90
-
91
- ```bash
92
- export GOOGLE_GENAI_USE_VERTEXAI=FALSE
93
- export GOOGLE_API_KEY=YOUR_AI_STUDIO_API_KEY
94
- ```
95
- </details>
96
-
97
-
98
- 2. Replace `YOUR_AI_STUDIO_API_KEY` with your actual key from [AI Studio](https://aistudio.google.com/app/apikey)
99
-
100
- 3. This setting will use your API key instead of the default Vertex AI configuration.
101
-
102
- ## ☁️ Deployment
103
-
104
- You can quickly deploy your agent to a **development environment** on Google Cloud. You can deploy your latest code at any time with:
105
-
106
- ```bash
107
- # Replace YOUR_DEV_PROJECT_ID with your actual Google Cloud Project ID
108
- gcloud config set project YOUR_DEV_PROJECT_ID
109
- make backend
110
- ```
111
-
112
- For robust, **production-ready deployments** with automated CI/CD, please follow the detailed instructions in the **[Agent Starter Pack Development Guide](https://googlecloudplatform.github.io/agent-starter-pack/guide/development-guide.html#b-production-ready-deployment-with-ci-cd)**.
113
-
114
- ## How the Agent Thinks: A Two-Phase Workflow
115
-
116
- The backend agent, defined in `app/agent.py`, follows a sophisticated workflow to move from a simple topic to a fully-researched report.
117
-
118
- The following diagram illustrates the agent's architecture and workflow:
119
-
120
- ![ADK Gemini Fullstack Architecture](../../docs/images/adk_gemini_fullstack_architecture.png)
121
-
122
- This process is broken into two main phases:
123
-
124
- ### Phase 1: Plan & Refine (Human-in-the-Loop)
125
-
126
- This is the collaborative brainstorming phase.
127
-
128
- 1. **You provide a research topic.**
129
- 2. The agent generates a high-level research plan with several key goals (e.g., "Analyze the market impact," "Identify key competitors").
130
- 3. The plan is presented to **you**. You can approve it, or chat with the agent to add, remove, or change goals until you're satisfied. Nothing happens without your explicit approval.
131
-
132
- ### Phase 2: Execute Autonomous Research
133
-
134
- Once you approve the plan, the agent's `research_pipeline` takes over and works autonomously.
135
-
136
- 1. **Outlining:** It first converts the approved plan into a structured report outline (like a table of contents).
137
- 2. **Iterative Research & Critique Loop:** For each section of the outline, it repeats a cycle:
138
- * **Search:** It performs web searches to gather information.
139
- * **Critique:** A "critic" model evaluates the findings for gaps or weaknesses.
140
- * **Refine:** If the critique finds weaknesses, the agent generates more specific follow-up questions and searches again. This loop continues until the research meets a high-quality bar.
141
- 3. **Compose Final Report:** After the research loop is complete, a final agent takes all the verified findings and writes a polished report, automatically adding inline citations that link back to the original sources.
142
-
143
- You can edit key parameters (Gemini models, research loop iterations) in the `ResearchConfiguration` dataclass within `app/config.py`.
144
-
145
- ## 🔄 Frontend-Backend Integration
146
-
147
- The frontend UI integrates with the backend through specific agent names that:
148
-
149
- 1. **Process agent outputs** - Different outputs are handled in specific ways (research findings vs. final report)
150
- 2. **Update the activity timeline** - Each agent's activity appears with appropriate titles and icons
151
- 3. **Track research metrics** - Website counts and progress indicators are based on agent activities
152
-
153
- Important agent names for frontend functionality:
154
-
155
- - `section_researcher` & `enhanced_search_executor`: Track websites consulted
156
- - `report_composer_with_citations`: Processes final report with citations
157
- - `interactive_planner_agent`: Updates AI messages during planning
158
- - Other agents (`plan_generator`, `section_planner`, etc.): Used for timeline labels
159
-
160
- If you modify agent names in `app/agent.py`, update the frontend code accordingly to maintain functionality.
161
-
162
- ## 🛠️ Technologies Used
163
-
164
- ### Backend
165
- * [**Agent Development Kit (ADK)**](https://github.com/google/adk-python): The core framework for building the stateful, multi-turn agent.
166
- * [**FastAPI**](https://fastapi.tiangolo.com/): High-performance web framework for the backend API.
167
- * [**Google Gemini**](https://cloud.google.com/vertex-ai/generative-ai/docs): Used for planning, reasoning, search query generation, and final synthesis.
168
-
169
- ### Frontend
170
- * [**React**](https://reactjs.org/) (with [Vite](https://vitejs.dev/)): For building the interactive user interface.
171
- * [**Tailwind CSS**](https://tailwindcss.com/): For utility-first styling.
172
- * [**Shadcn UI**](https://ui.shadcn.com/): A set of beautifully designed, accessible components.
@@ -17,7 +17,7 @@ example_question: "A report on the latest Google I/O event"
17
17
  settings:
18
18
  requires_data_ingestion: false
19
19
  deployment_targets: ["agent_engine", "cloud_run"]
20
- extra_dependencies: ["google-adk~=1.3.0"]
20
+ extra_dependencies: ["google-adk~=1.4.2"]
21
21
  tags: ["adk"]
22
22
  frontend_type: "adk_gemini_fullstack"
23
23
  commands:
@@ -26,7 +26,7 @@ from app.templates import format_docs
26
26
  EMBEDDING_MODEL = "text-embedding-005"
27
27
  LLM_LOCATION = "global"
28
28
  LOCATION = "us-central1"
29
- LLM = "gemini-2.0-flash-001"
29
+ LLM = "gemini-2.5-flash"
30
30
 
31
31
  credentials, project_id = google.auth.default()
32
32
  os.environ.setdefault("GOOGLE_CLOUD_PROJECT", project_id)
@@ -18,7 +18,7 @@ settings:
18
18
  requires_data_ingestion: true
19
19
  deployment_targets: ["agent_engine", "cloud_run"]
20
20
  extra_dependencies: [
21
- "google-adk~=1.3.0",
21
+ "google-adk~=1.4.2",
22
22
  "langchain-google-vertexai~=2.0.7",
23
23
  "langchain~=0.3.24",
24
24
  "langchain-core~=0.3.55",
@@ -23,7 +23,7 @@ from langgraph.prebuilt import ToolNode
23
23
  from .crew.crew import DevCrew
24
24
 
25
25
  LOCATION = "global"
26
- LLM = "gemini-2.0-flash-001"
26
+ LLM = "gemini-2.5-flash"
27
27
 
28
28
 
29
29
  @tool
@@ -21,7 +21,7 @@ from langgraph.graph import END, MessagesState, StateGraph
21
21
  from langgraph.prebuilt import ToolNode
22
22
 
23
23
  LOCATION = "global"
24
- LLM = "gemini-2.0-flash-001"
24
+ LLM = "gemini-2.5-flash"
25
25
 
26
26
 
27
27
  # 1. Define tools
@@ -22,7 +22,7 @@ from google.genai import types
22
22
  # Constants
23
23
  VERTEXAI = os.getenv("VERTEXAI", "true").lower() == "true"
24
24
  LOCATION = "us-central1"
25
- MODEL_ID = "gemini-2.0-flash-live-preview-04-09"
25
+ MODEL_ID = "gemini-live-2.5-flash-preview-native-audio"
26
26
 
27
27
  # Initialize Google Cloud clients
28
28
  credentials, project_id = google.auth.default()
@@ -56,13 +56,17 @@ tool_functions = {"get_weather": get_weather}
56
56
  live_connect_config = types.LiveConnectConfig(
57
57
  response_modalities=[types.Modality.AUDIO],
58
58
  tools=list(tool_functions.values()),
59
- # Change to desired language code (e.g., "es-ES" for Spanish, "fr-FR" for French)
60
- speech_config=types.SpeechConfig(language_code="en-US"),
61
59
  system_instruction=types.Content(
62
60
  parts=[
63
61
  types.Part(
64
- text="""You are a helpful AI assistant designed to provide accurate and useful information."""
62
+ text="""You are a helpful AI assistant designed to provide accurate and useful information. You are able to accommodate different languages and tones of voice."""
65
63
  )
66
64
  ]
67
65
  ),
66
+ speech_config=types.SpeechConfig(
67
+ voice_config=types.VoiceConfig(
68
+ prebuilt_voice_config=types.PrebuiltVoiceConfig(voice_name="Kore")
69
+ )
70
+ ),
71
+ enable_affective_dialog=True,
68
72
  )
@@ -1,5 +1,5 @@
1
1
  install:
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; }
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 $HOME/.local/bin/env; }
3
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
  {%- if cookiecutter.settings.get("commands", {}).get("override", {}).get("install") %} && {{cookiecutter.settings.get("commands", {}).get("override", {}).get("install")}}{%- endif %}
5
5
  {%- if cookiecutter.settings.get("commands", {}).get("extra", {}) %}