1. 개요
이 Codelab에서는 재미있는 것을 빌드해 보겠습니다. AI 에이전트가 가장 똑똑하고 재치 있는 상인인 디지털 시장을 상상해 보세요.
새로운 AI 상점 주인인 Raju를 만나보세요. 놀라운 디지털 유물을 판매하지만, 유물을 얻으려면 그와 흥정해야 합니다.
Gemini 3 (브레인), ADK (에이전트 개발 키트 - 바디), Google Cloud Run (매장 위치)을 사용하여 Raju를 구현합니다.

학습할 내용
최신 에이전트형 애플리케이션의 전체 스택을 빌드합니다.

- The Shop (Cloud Run): 앱이 인터넷에 있는 위치입니다.
- 브레인 (Gemini 3): Raju를 지원하는 인텔리전스입니다.
- 본체 (ADK): 두뇌를 도구에 연결하는 프레임워크입니다.
- 인벤토리 (도구): Raju가 재고를 확인하는 데 사용하는 Python 코드입니다.
- 스토어 (UI): 고객에게 표시되는 인터페이스입니다.
다음을 수행하는 방법을 배우게 됩니다.
- 'Digital Dukaan' (Google Cloud 환경)을 설정합니다.
- 라주 '고용'(Gemini 3 API 키 받기)
- 라주에게 흥정하는 방법을 알려 줘 (시스템 안내 및 페르소나).
- Raju에게 인벤토리를 제공해 줘 (ADK 도구).
- 상점 (프런트엔드 UI)을 빌드합니다.
- 비즈니스용으로 열기 (Cloud Run에 배포)
필요한 항목
- Google Cloud 프로젝트입니다.
- 유머 감각 (협상용)
- 기본적인 Python 지식
2. Dukaan (클라우드 프로젝트) 설정
Raju를 빌드하기 전에 매장 위치가 필요합니다. 클라우드에서는 결제 계정이 있는 프로젝트를 의미합니다.
1단계: 결제 활성화하기

- 시크릿 창에서 사용 링크를 엽니다.
- 개인 Gmail 계정으로 로그인합니다.
- 버튼을 클릭하여 크레딧에 액세스합니다.
- 이메일을 확인하고 약관에 동의하여 무료 체험을 활성화합니다.
2단계: 프로젝트 만들기

- 프로젝트 만들기 페이지로 이동합니다.
- 고유한 프로젝트 이름을 입력합니다 (예:
raju-shop-agent) - '결제 계정' 드롭다운에서 무료 체험 결제 계정을 선택합니다.
- 만들기를 클릭하고 프로젝트가 준비될 때까지 기다립니다.
3단계: 결제 링크 확인

- 연결된 결제 계정 페이지로 이동합니다.
- '결제 계정 연결' 옵션이 표시되면 클릭합니다.
- 무료 체험판 결제 계정이 선택되어 있는지 확인합니다.
- 이제 빌드할 준비가 되었습니다.
요약
이 단계에서는 Google Cloud 프로젝트와 결제 계정을 설정하여 애플리케이션의 기반을 만듭니다.
다음으로 환경 준비에서 코드를 빌드할 작업공간을 설정합니다.
3. 스톨 빌드 (환경 설정)
코드를 실행할 위치가 필요합니다. 다음 두 가지 중에서 선택할 수 있습니다.

옵션 1: Google Cloud Shell (권장)
Cloud Shell은 필요한 모든 항목 (Python, gcloud CLI, git)이 사전 설치된 브라우저 기반 터미널입니다. 영구 스토리지가 있으며 어디서나 작동합니다.
1. Cloud Shell 활성화
Google Cloud 콘솔 헤더의 오른쪽 상단에 있는 'Cloud Shell 활성화' 아이콘 (터미널 기호)을 클릭합니다.

이제 Cloud Shell이 초기화됩니다. 여기에는 다음 항목이 포함됩니다.
- 승인: 메시지가 표시되면 승인을 클릭하여 Cloud Shell이 사용자를 대신하여 Google Cloud API를 호출할 수 있도록 허용합니다.
- 프로비저닝: Cloud Shell은 세션에 임시 가상 머신을 프로비저닝합니다.
- 연결: 그런 다음 이 VM에 연결됩니다. 이 전체 과정은 1~2분 정도 걸릴 수 있습니다.
명령 프롬프트 (user@cloudshell:~ $)가 표시될 때까지 기다립니다.
2. 프로젝트 설정 확인
Cloud Shell은 일반적으로 현재 프로젝트를 자동으로 선택합니다. 만약을 대비해 다음을 확인하세요.
gcloud config get-value project
프로젝트 ID (raju-shop-agent)를 반환하지 않는 경우 수동으로 설정합니다.
gcloud config set project raju-shop-agent
옵션 2: 로컬 터미널
자체 노트북의 터미널 (iTerm, PowerShell 등)을 선호하는 경우 설정해야 할 사항이 약간 더 많습니다.
1. 기본 요건 설치
다음이 설치되어 있는지 확인합니다.
2. 로그인 및 gcloud 구성
Google Cloud CLI를 초기화하고 계정에 로그인합니다.
gcloud auth login
프로젝트를 설정합니다 (raju-shop-agent를 실제 프로젝트 ID로 바꿈).
gcloud config set project raju-shop-agent
애플리케이션 기본 사용자 인증 정보를 설정합니다 (이를 통해 로컬 도구가 Google Cloud와 통신할 수 있음).
gcloud auth application-default login
요약
이 단계에서는 개발 환경 (Cloud Shell 또는 로컬)을 선택하고 구성했습니다.
다음으로 Meeting Gemini CLI에서 더 빠르게 빌드하는 데 도움이 되는 도구를 살펴보겠습니다.
4. 어시스턴트 만나기 (Gemini CLI)
이제 AI 개발을 위한 새로운 친구인 Gemini CLI를 만나보세요.

Gemini CLI는 다음 작업을 지원하는 강력한 명령줄 인터페이스입니다.
- 워크플로 자동화: AI 프로젝트를 효율적으로 관리합니다.
- 코드 생성: 코드, UI, 전체 파일을 생성합니다.
- 확장 프로그램 생태계: 다양한 확장 프로그램 (나중에 사용할 Cloud Run 확장 프로그램 등)으로 기능을 확장합니다.
1. Gemini CLI 설치 (로컬 터미널만 해당)
로컬 노트북 터미널을 사용하는 경우:
npm install -g @google/gemini-cli
Google Cloud Shell을 사용하는 경우:
Gemini CLI는 Cloud Shell에 사전 설치되어 있으므로 별도로 설치할 필요가 없습니다.
2. 실행 및 인증
Cloud Shell (또는 로컬 터미널)에서 새 터미널 창 (또는 탭)을 열고 Gemini CLI를 실행합니다.
gemini
첫 실행 설정: 처음 실행하는 경우 CLI에서 빠른 설정 프로세스를 안내합니다.
- 인증: 로그인하라는 메시지가 표시됩니다. Gemini 모델에 제공되는 넉넉한 무료 할당량을 활용하려면 개인 Gmail 계정을 사용하는 것이 좋습니다.
- 프로젝트 컨텍스트:
gemini가 코드 컨텍스트를 이해할 수 있도록 프로젝트 폴더 내에서 실행하는 것이 좋습니다. (아직 폴더를 만들지 않았으므로 지금은 홈 디렉터리에서 실행해도 됩니다.)
3. 인사를 나눠보세요.
gemini> 프롬프트가 표시되면 테스트를 통해 뇌가 연결되어 있는지 확인합니다.
Hi
모델로부터 친근한 대답을 받게 됩니다.
4. 필수 명령어
/quit: Gemini CLI를 종료하고 표준 터미널로 돌아가려면 이를 입력합니다./help: 사용 가능한 모든 명령어의 목록을 확인합니다.
요약
이 단계에서는 Gemini CLI를 설치하고 인증하고 확인했습니다.
다음으로 에이전트 개발 키트 (ADK)를 사용하여 매장 열기 (코드)에서 매장의 스켈레톤을 빌드합니다.
5. 진열대 채우기 (프로젝트 설정)
처음부터 빌드하지 않습니다 (스마트한 상인은 시간을 절약합니다). 에이전트 개발 키트 (ADK)를 사용합니다.
ADK란 무엇인가요?

ADK는 '매장 관리 시스템'입니다. 다음과 같은 작업을 처리하는 유연한 프레임워크입니다.
- 오케스트레이션: 복잡한 작업 관리 (예: Raju가 고객과 대화하는 동안 인벤토리를 확인).
- 상태 관리: 고객의 이름과 5분 전에 요청한 내용을 기억합니다.
- 도구: 외부 시스템 (예: 인벤토리 데이터베이스)에 연결
에이전트 스타터 팩을 사용하여 프로덕션 준비가 완료된 'Dukaan'을 즉시 설정합니다. 판매에 집중할 수 있도록 안전하고 확장 가능한 기반을 제공합니다.
Cloud Shell 터미널 (또는 로컬 터미널)에서 다음 명령어를 실행하여 에이전트를 생성합니다.
uvx agent-starter-pack create raju-shop
CLI에서 스토어를 구성하기 위한 몇 가지 질문을 합니다. 다음 옵션을 선택합니다 (번호를 입력하고 Enter 키를 누름).
- 상담사 유형:
1(adk_base- 기본 ReAct 상담사)을 선택합니다. - 배포 대상:
2(Cloud Run- 서버리스 컨테이너 실행)을 선택합니다. - 세션 유형:
1(In-memory session- 간단하고 빠름)을 선택합니다. - CI/CD 러너:
3를 선택합니다 (Skip- 지금은 수동으로 배포합니다).
프로세스가 완료될 때까지 기다립니다. 완료되면 매장 디렉터리를 입력하고 종속 항목을 설치합니다.
cd raju-shop
make install
source .venv/bin/activate
에이전트 살펴보기 및 구성
이제 시작 팩이 설정되었으므로 구조를 검토합니다.
1. 폴더 구조 확인하기
다음 명령어를 실행하여 매장이 어떻게 구성되어 있는지 확인합니다.
tree .
다음과 같은 구조가 표시됩니다.
.
├── app
│ ├── __init__.py
│ ├── agent.py
│ ├── app_utils
│ │ ├── telemetry.py
│ │ └── typing.py
│ └── fast_api_app.py
├── Dockerfile
├── GEMINI.md
├── Makefile
├── pyproject.toml
├── README.md
├── tests
│ ├── integration
│ │ ├── test_agent.py
│ │ └── test_server_e2e.py
│ └── unit
│ └── test_dummy.py
└── uv.lock
가장 중요한 파일은 app/agent.py입니다. 여기에 Raju의 브레인이 있습니다.
2. 코드 살펴보기
Cloud Shell 편집기 (또는 로컬 IDE)에서 app/agent.py을 열고 간단히 살펴봅니다.
root_agent = Agent(...): AI를 정의합니다.model(두뇌)와tools(손)가 있습니다.- 도구:
get_weather와 같은 Python 함수가 표시됩니다. 이는 에이전트가 사용할 수 있는 도구입니다. app = App(...): 에이전트를 웹 서버로 래핑하여 에이전트와 통신할 수 있도록 합니다.
로컬에서 테스트
Cloud Shell 터미널 (또는 로컬 터미널)에서 에이전트를 실행합니다.
adk web
이 명령어는 포트 8000에서 로컬 웹 서버를 시작합니다.
Cloud Shell을 사용하는 경우:
- 웹 미리보기 버튼 (오른쪽 상단, 눈 모양)을 클릭합니다.
- 포트 변경을 선택합니다.
8000을 입력하고 변경 및 미리보기를 클릭합니다.
로컬 터미널을 사용하는 경우:
- 브라우저를 열고
http://localhost:8000로 이동합니다.
UI가 열리면 다음 단계를 따르세요.
- '앱' 선택: 왼쪽 상단의 드롭다운에서 앱이라는 이름의 에이전트를 선택합니다 (
root_agent또는test_agent가 표시되면 무시). - 인사하기: '안녕하세요'라고 입력하고 대답이 있는지 확인합니다.
완료되면 터미널에서 Ctrl+C를 눌러 adk web 서버를 중지합니다.
요약
이 단계에서는 프로젝트를 스캐폴딩하고, Gemini API를 위해 구성하고, 첫 번째 에이전트를 로컬에서 성공적으로 실행했습니다.
다음으로 Training Raju (The Persona)에서 에이전트에게 성격과 이름을 부여합니다.
6. Raju (페르소나) 학습
현재 에이전트는 지루합니다. 성격을 부여할 거야.

코드를 작성하는 대신 Gemini에게 원하는 내용을 설명합니다.
1. 페르소나 정의
터미널에서 다음 명령어를 실행하여 Raju에게 자신이 누구인지 '가르칩니다'.
gemini "In agent.py, update the root_agent instruction. You are Raju, a bargaining shopkeeper in a digital bazaar. You sell: Brass Lamp (50 coins), Silk Scarf (500 coins). Your goal is to sell high and be funny. Speak with an Indian-English flair."
2. 코드 확인
app/agent.py를 엽니다. Gemini가 시스템 요청 사항을 작성한 것을 확인할 수 있습니다.
3. 로컬에서 테스트
이제 Raju와 채팅하세요. Cloud Shell 터미널 (또는 로컬 터미널)에서 다음을 실행합니다.
adk web
웹 UI(웹 미리보기 포트 8000 또는 localhost:8000)를 열고 앱 에이전트를 선택한 후 다음 프롬프트를 시도해 보세요.
- '황동 램프를 원하는데 코인 50개는 너무 많아.'
- "무엇을 판매하시나요?"
반응을 확인해 보세요. 재미있고 극적이어야 하지만 너무 싸게 팔지는 않아야 합니다.
요약
이 단계에서는 에이전트의 시스템 프롬프트를 맞춤설정하여 고유한 성격을 가진 흥정하는 상인 '라주'를 만들었습니다.
다음으로 Raju가 인벤토리 (도구 추가)에서 실제 재고를 확인할 수 있도록 합니다.
7. 인벤토리 (도구 추가)
Raju는 실제로 재고가 무엇인지 알아야 합니다. '데이터베이스'와 이를 확인할 수 있는 도구를 제공합니다.

1. 도구 만들기
다음 단일 명령어를 실행하여 인벤토리와 도구를 만들고 Raju에 연결합니다.
gemini "In agent.py, create a dictionary INVENTORY with items: Brass Lamp (price 50, stock 5), Silk Scarf (price 500, stock 2), Taj Mahal (price 2000, stock 0). Then create a tool function check_inventory(item_name) that checks this dict. Finally, update the root_agent to use this tool and remove the default weather tools."
2. Magic 확인하기
app/agent.py를 다시 엽니다. Gemini가 다음 작업을 수행한 것을 확인할 수 있습니다.
INVENTORY사전을 만들었습니다.check_inventoryPython 함수를 작성했습니다.- 에이전트 정의에서
tools=[...]목록이 업데이트되었습니다.
3. 인벤토리 테스트
- 서버를 다시 시작합니다 (Ctrl+C,
adk web). - Raju에게 질문하기:
- '타지마할이 있나요?' (재고가 0이므로 아니라고 말해야 합니다.)
- "실크 스카프는 얼마인가요?" (실제 가격을 확인해야 함)
요약
이 단계에서는 check_inventory 도구를 구현하고, 기본 클러터를 삭제하고, 도구를 에이전트에 연결했습니다.
다음으로 Raju's Shop Goes Live (백엔드 배포)에서 Raju를 클라우드로 이동합니다.
8. Raju's Shop Goes Live (백엔드 배포)
이제 전 세계에 공개할 시간입니다. 매장을 빌드하기 전에 Raju의 브레인과 인벤토리 (에이전트)를 클라우드에 배포합니다.

중요: 터미널 관리
이전 단계에서 현재 터미널에서 adk web이 실행되고 있을 수 있습니다.
- 로컬에서 계속 테스트하려면 실행 상태를 유지합니다.
- 다음 배포 단계를 위해 새 터미널 창/탭을 엽니다.
- 참고:
agent.py를 변경할 때마다 변경사항을 적용하려면 중지 (Ctrl+C)하고adk web를 다시 시작해야 합니다.
1. Gemini CLI 준비
새 터미널 창에서 다음을 실행합니다.
- Gemini CLI 내에 있는지 확인합니다 (
gemini>프롬프트 확인). - 표준 셸로 종료하려면
/quit를 입력합니다. - 프로젝트 폴더에 있는지 확인합니다.
cd raju-shop
2. Cloud Run 확장 프로그램 설치
Cloud Shell 터미널 (또는 로컬 터미널)에서 Gemini CLI용 Cloud Run 확장 프로그램을 설치합니다.
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
3. Gemini CLI 다시 실행
새 확장 프로그램을 사용하려면 Gemini CLI를 다시 실행하세요.
gemini
Gemini CLI 프롬프트가 표시됩니다.
4. 에이전트 배포
Gemini CLI 확장 프로그램을 사용하는 방법에는 두 가지가 있습니다.
옵션 1: 슬래시 명령어 (수동) 명령어를 명시적으로 입력할 수 있습니다.
/deploy --source . --name raju-agent --region us-central1 --allow-unauthenticated
옵션 2: 자연어 (권장) 더 쉽고 강력한 방법입니다. Gemini에게 대신해 달라고 요청하면 MCP 서버를 사용하여 올바른 도구를 호출합니다.
다음 프롬프트를 Gemini CLI에 붙여넣어 보세요.
Deploy this agent app to cloud run on google cloud using the cloud-run MCP server.
Use project raju-shop-agent in us-central1 region.
Name the service raju-agent.
IMPORTANT: Make sure to allow unauthenticated invocations so my frontend can talk to it.
CLI에서 cloud-run 도구를 사용할지 확인하라는 메시지가 표시될 수 있습니다. Enter을 눌러 승인합니다 (또는 y을 입력).
마법이 펼쳐지기를 기다립니다. 2~3분 정도 걸립니다. 완료되면 다음과 같은 성공 메시지가 표시됩니다.
✦ I've successfully deployed your agent app to Cloud Run.
Service Details:
* Service Name: raju-agent
* Project: raju-shop-agent
* Region: us-central1
* URL: https://raju-agent-xyz123-uc.a.run.app
* Console: View in Google Cloud Console (...)
5. 배포 확인
배포가 완료되면 Gemini CLI에서 서비스 URL을 제공합니다. 이 URL을 복사합니다.
브라우저 확인 (활성 상태인가요?) 브라우저에 URL을 붙여넣습니다.
- 성공: FastAPI 문서 (Swagger UI) 또는 일반 ADK 방문 페이지가 표시됩니다. 이렇게 하면 Cloud Run 서비스가 실행 중이고 액세스할 수 있는지 확인할 수 있습니다.
- 실패: 403 Forbidden 오류가 표시되면 배포 프롬프트에서 '인증되지 않은 호출'을 허용하는 것을 잊었을 수 있습니다.
다음 단계에서는 적절한 프런트엔드를 빌드하여 실제 협상 로직을 테스트합니다.
요약
이 단계에서는 Gemini CLI 확장 프로그램을 사용하여 에이전트 백엔드를 Google Cloud Run에 배포하여 공개 URL을 통해 액세스할 수 있도록 했습니다.
다음으로 상점 페이지 빌드 (프런트엔드 UI)에서 고객이 Raju와 대화할 수 있는 멋진 상점 페이지를 빌드합니다.
9. 상점 꾸미기 (프런트엔드 UI)
텍스트 터미널은 지루합니다. 생동감 넘치는 매장 창을 원합니다.

ADK API 작동 방식
맞춤 UI를 빌드하려면 에이전트 백엔드와 통신하는 방법을 이해해야 합니다. 2단계 흐름을 따릅니다.
- 세션 초기화: 채팅하기 전에 세션 ID (예: 장바구니)를 만들어야 합니다.
POST /apps/app/users/{user_id}/sessions/{session_id}
- 메시지 보내기: 대화하려면 텍스트를 실행 엔드포인트로 보냅니다.
POST /run(페이로드에appName,userId,sessionId,text포함)
- 자세히 알아보기: ADK 런타임 API 및 Python API 참조 문서를 확인하세요.
이 로직을 사용하여 프런트엔드를 빌드합니다.
이 인터페이스를 빌드하는 방법에는 두 가지가 있습니다.
옵션 1: Google Antigravity (권장 - 로컬만 해당)
로컬 머신에서 작업하는 경우 Google Antigravity를 사용하는 것이 가장 좋습니다. 전체 UI를 '바이브 코드'할 수 있는 AI 네이티브 IDE입니다.
1. 다운로드 및 설치
Google Antigravity 다운로드 페이지에서 OS용 설치 프로그램을 다운로드하여 설치합니다.
2. 작업공간 열기
Antigravity를 실행합니다. raju-shop 폴더를 Workspace로 엽니다. 이렇게 하면 AI에 전체 프로젝트에 관한 컨텍스트가 제공됩니다.
3. 에이전트 관리자로 UI 생성
코드를 한 줄씩 작성하는 대신 에이전트 관리자를 사용하여 AI 에이전트에게 코드를 작성하도록 요청합니다.
- Agent Manager 채팅 인터페이스를 찾습니다 (일반적으로 오른쪽에 있음).
- 다음 프롬프트를 채팅에 붙여넣습니다.
Create a single file HTML chat interface named `index.html`. It should have a colorful header that says 'Raju's Royal Artifacts'. It should look like an Indian market stall with orange and pink colors.
**Backend Integration:**
The chat should send messages to my deployed agent at: <YOUR_DEPLOYED_AGENT_URL>
**API Logic:**
1. **On Load:** Generate a random userId and sessionId. Call `POST /apps/app/users/{userId}/sessions/{sessionId}` to initialize.
2. **On Send:** Call `POST /run` with a JSON payload containing `appName: "app"`, `userId`, `sessionId`, and `newMessage: { role: "user", parts: [{ text: userInput }] }`.
3. **Display:** Show the user's message and the agent's response (from `content.parts[0].text`).
(자리표시자 URL을 배포 단계의 실제 서비스 URL로 바꿔야 합니다.)
- 에이전트가 코드를 작성하는 것을 확인하세요. 편집기 보기로 전환하면 파일이 실시간으로 생성되는 것을 확인할 수 있습니다.
4. 매장 테스트
Google Antigravity에는 기본 제공 미리보기 기능이 있습니다. '미리보기' 버튼 (눈 모양 아이콘)을 클릭하여 상점을 라이브로 확인하세요. 또는 python3 -m http.server 8000를 사용하여 로컬로 제공합니다.
옵션 2: Gemini CLI (Cloud Shell 호환)
Cloud Shell을 사용하는 경우 신뢰할 수 있는 Gemini CLI를 사용하여 몇 초 만에 프런트엔드를 빌드할 수 있습니다.
터미널에서 다음 명령어를 실행합니다.
gemini "Create a single file HTML chat interface named index.html. Header: 'Raju\'s Royal Artifacts', Indian market theme (orange/pink). Backend: <YOUR_DEPLOYED_AGENT_URL>. Logic: On load, generate random user/session IDs and POST to /apps/app/users/{uid}/sessions/{sid}. On chat, POST to /run with appName='app', userId, sessionId, and newMessage structure. Parse the JSON response to show the agent text." > index.html
(
실제 Cloud Run URL 사용)
요약
이 단계에서는 Google Antigravity를 사용하여 실시간 에이전트 백엔드에 연결되는 맞춤 HTML 프런트엔드를 '바이브 코드'했습니다.
다음으로 매장 페이지 게시에서 웹에 이 매장 페이지를 호스팅하여 그림을 완성합니다.
10. 그랜드 오픈 (프런트엔드 배포)
라주는 온라인 (백엔드)에 있지만 그의 매장에는 공개 주소 (프런트엔드)가 필요합니다. Google Antigravity에 UI를 클라우드에 배포해 달라고 요청합니다.

1. 에이전트 관리자에게 배포 요청
IDE를 종료하지 않아도 됩니다. Agent Manager에게 배포를 처리해 달라고 요청하면 됩니다.
다음 프롬프트를 채팅에 붙여넣습니다.
'내 index.html을 Google Cloud Run에 정적 웹사이트로 배포해 줘. 서비스 이름을 raju-shop-frontend로 지정합니다. 공개적으로 액세스할 수 있는지 확인하세요.'
2. 마법을 확인하세요
상담사는 다음과 같은 작업을 할 수 있습니다.
- 정적 파일을 제공하기 위한
Dockerfile또는 구성 (예: nginx 또는 python 사용)을 만듭니다. - 컨테이너 이미지를 빌드합니다.
gcloud run deploy명령어를 실행합니다.
3. 내 스토어를 방문하세요.
에이전트가 완료되면 URL (예: https://raju-shop-frontend-xyz.run.app)을 클릭합니다.
수고하셨습니다. 이제 완전히 배포된 AI 기반 흥정 상점 주인 앱이 준비되었습니다. 친구에게 링크를 보내 할인을 받을 수 있는지 확인해 보세요.
요약
이 단계에서는 Antigravity Agent Manager를 사용하여 프런트엔드 애플리케이션을 컨테이너화하고 Cloud Run에 배포했습니다.
이제 전체 스택을 빌드했습니다. 영업 종료 시간 (결론)에서 마무리하겠습니다.
11. 영업 종료 시간 (결론)

축하합니다. 'Bargaining Shopkeeper' Agent Challenge를 성공적으로 완료했습니다. 단순한 아이디어에서 완전히 배포된 대화형 AI 상인인 Raju를 디지털 시장에 구현했습니다. 에이전트형 개발의 강력한 기능을 직접 경험했습니다.
여정 요약:
- Google Cloud: 프로젝트와 결제 계정을 설정하고 Cloud Run에 에이전트를 배포했습니다.
- Gemini 3: Raju의 페르소나와 협상 기술을 지원하는 지능형 브레인입니다.
- 에이전트 개발 키트 (ADK): 기본 제공 관측 가능성 (원격 분석)을 통해 프로덕션 레디 기반을 제공하여 처음부터 에이전트를 강력하게 만드는 프레임워크입니다.
- Gemini CLI: 빠른 작업, 테스트, 확장 프로그램을 위한 명령줄 어시스턴트입니다.
- Google Antigravity: UI를 '바이브 코딩'하고 배포를 오케스트레이션하는 차세대 IDE입니다.
디지털 Dukaan의 다음 단계:
- 실패한 테스트 수정: 코드를 변경했는데 테스트는 어떻게 되나요? 기본 테스트 (
tests/unit/test_agent.py)에서는 여전히 날씨를 찾습니다. Gemini CLI를 사용하여 자동으로 업데이트합니다. 다음과 같이 시도해 보세요.gemini "Update the tests in tests/unit/test_agent.py to test the new check_inventory tool instead of weather." - 동적 인벤토리: 상품이 '판매됨'일 때 Raju의 인벤토리 수량이 업데이트되도록 합니다. '구매'가 완료된 후
INVENTORY사전에서stock를 감소시키는 로직을 추가할 수 있나요? - 결제 게이트웨이 도구: 모의
process_payment도구를 구현합니다. 그런 다음 Raju는 거래가 성사되면 이 도구를 호출할 수 있습니다. - Antigravity 살펴보기: Antigravity의 Agent Manager 및 Workspaces를 자세히 살펴보세요. 실제 영수증을 표시하도록
index.html를 수정해 달라고 상담사에게 요청할 수 있나요? - 상점 공유: Raju의 상점이 인터넷에 게시되었습니다. 프런트엔드 URL을 친구와 공유하고 친구가 나보다 더 나은 가격을 찾을 수 있는지 확인해 보세요.
리소스
12. 삭제
이 Codelab에서 사용한 리소스의 불필요한 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 따르세요.
1. Cloud Run 서비스 배포 해제 (선택사항, 비용 절감)
프로젝트와 다른 구성을 그대로 유지하면서 배포된 서비스와 관련된 잠재적 요금을 중지하려면 Cloud Run 서비스를 배포 취소하면 됩니다.
Cloud Shell 터미널 (또는 로컬 터미널)을 열고 다음 gcloud 명령어를 실행합니다.
# Undeploy the backend agent
gcloud run services delete raju-agent --region us-central1
# Undeploy the frontend shop (if you deployed it)
gcloud run services delete raju-shop-frontend --region us-central1
2. Google Cloud 프로젝트 삭제 (비용 완전 중지)
추가 비용이 전혀 발생하지 않도록 하고 이 Codelab에서 생성된 모든 리소스를 완전히 삭제하려면 Google Cloud 프로젝트 전체를 삭제하는 것이 가장 확실한 방법입니다.
- Google Cloud 콘솔의 프로젝트 페이지로 이동합니다.
- 프로젝트 (
raju-shop-agent)를 선택하고 삭제를 클릭합니다. - 메시지에 따라 프로젝트 삭제를 확인합니다.