코딩 수준: 고급
기간: 45분
프로젝트 유형: Chat, Gmail, Calendar, Drive, Docs, Sheets, Slides를 확장하는 Google Workspace 추가 기능입니다.
이 튜토리얼에서는 Apps Script 또는 HTTP 엔드포인트를 사용하여 AI 에이전트를 Google Workspace에 Google Workspace 부가기능으로 게시하는 방법을 보여줍니다. 부가기능을 게시하면 사용자가 워크플로 내에서 AI 에이전트와 상호작용할 수 있습니다.
개요
이 튜토리얼에서는 에이전트 개발 키트 (ADK)에서 여행 컨시어지 샘플을 배포합니다. Travel Concierge는 Google Maps Platform Places API, Google Search Grounding, Model Context Protocol(MCP) 서버와 같은 도구를 사용하는 대화형 다중 에이전트 AI입니다.
ADK는 기본적으로 개발자에게 채팅 및 텍스트 인터페이스를 제공합니다. 이 튜토리얼에서는 사용자가 Chat, Gmail, Calendar, Drive, Docs, Sheets, Slides에서 직접 액세스할 수 있는 그래픽 사용자 인터페이스 (GUI)를 Google Workspace 애플리케이션에 추가합니다.

그림 1. Chat의 AI 에이전트를 사용하여 여행 아이디어를 브레인스토밍합니다. 
그림 2. Gmail의 AI 에이전트를 사용하여 선택한 이메일의 맥락을 바탕으로 여행을 계획합니다.
목표
- 환경을 설정합니다.
- AI 에이전트를 배포합니다.
- 프로젝트를 설정합니다.
- Gmail, 캘린더, 드라이브, 문서, 시트, 슬라이드에 배포하세요.
- 채팅에 배포합니다.
- 솔루션을 테스트합니다.
이 솔루션 정보
이 솔루션은 ADK, Google Cloud 및 Google Workspace API, Vertex AI Agent Engine, Card 프레임워크와 같은 핵심 기술을 사용합니다.
채팅 및 비채팅 (Gmail, 캘린더, 드라이브, 문서, 시트, 슬라이드) 애플리케이션의 GUI는 해당 애플리케이션의 특정 기능과 제한 사항을 고려하여 다르게 설계되었습니다.
기능
다음은 모든 Google Workspace 애플리케이션에서 공통적으로 사용되는 Travel Concierge 애플리케이션의 기능입니다.
지속적인 사용자 세션: 세션은 Vertex AI에서 지속성을 위해 관리됩니다. 각 사용자는 모든 Workspace 애플리케이션에서 하나의 세션을 공유합니다. 사용자는 수동으로 세션을 재설정하여 새로운 대화를 시작할 수 있습니다.
리치 메시지: 사용자가 문자 메시지를 보내고 리치 텍스트와 카드 위젯이 포함된 응답을 받습니다.
오류 처리: 예상치 못한 오류는 응답에서 구성 가능한 재시도 및 상태를 사용하여 정상적으로 처리됩니다.
채팅 앱에는 다음과 같은 추가 기능이 있습니다.
멀티모달 사용자 메시지: 사용자는 채팅 스페이스에서 직접 녹음된 오디오 및 동영상을 비롯한 첨부파일이 포함된 메시지를 보낼 수 있습니다.
더 시각적으로 고급스러운 대답: 카드 프레임워크의 채팅 전용 기능과 더 많은 렌더링 공간을 활용하여 이미지가 포함된 캐러셀과 같은 더 고급 위젯으로 대답을 생성할 수 있습니다.
다른 애플리케이션에는 다음과 같은 추가 기능이 있습니다.
Google 프로필 컨텍스트: 사용자는 프로필 정보 (이 샘플에서는 생일로 제한됨)를 사용하여 메시지를 보낼 수 있습니다.
Gmail 컨텍스트: 사용자는 이메일로 메시지를 보낼 수 있습니다 (이 샘플에서는 제목과 본문이 하나로 제한됨).
에이전트의 채팅 공간 액세스: 사용자는 한 번의 버튼 클릭으로 새 탭에서 채팅 앱 직접 메시지 (DM) 공간을 열 수 있습니다.
아키텍처
여행 컨시어지 애플리케이션은 Google Workspace 애플리케이션에서 Google Workspace 부가기능 상호작용 이벤트를 수신하고 처리하며, Vertex AI를 사용하여 ADK AI 에이전트를 프롬프트하고 사용자 세션을 관리하며, Google Cloud 및 Google Workspace API를 사용하여 컨텍스트를 수집하고 응답을 표시합니다.
다음 다이어그램은 AI 에이전트에게 메시지를 보내는 주요 사용자 흐름을 보여줍니다.
HTTP

그림 3. 채팅 앱은 사용자 메시지의 첨부파일로 컨텍스트를 완성하고, 하위 에이전트 상호작용 기록과 최종 전체 답변이 시간순으로 포함된 메시지 세트를 전송합니다. 
그림 4. 채팅이 아닌 애플리케이션은 사용자의 Google 프로필과 상품 선택으로 컨텍스트를 완료하고 하위 상담사 상호작용 기록과 최종 전체 답변이 역순으로 표시된 섹션 집합을 표시합니다.
Apps Script

그림 3. 채팅 앱은 사용자 메시지의 첨부파일로 컨텍스트를 완성하고, 하위 에이전트 상호작용 기록과 최종 전체 답변이 시간순으로 포함된 메시지 세트를 전송합니다. 
그림 4. 채팅이 아닌 애플리케이션은 사용자의 Google 프로필과 항목 선택으로 컨텍스트를 완성하고, 하위 에이전트 상호 작용의 기록과 최종 전체 답변을 역순으로 나열한 섹션 세트를 표시합니다.
기본 요건
Google Chat에 액세스할 수 있는 Business 또는 Enterprise Google Workspace 계정
인터넷에 접속할 수 있는 웹 브라우저.
Travel Concierge ADK AI 에이전트에 대한 필수 조건
- Python 3.10 이상: 설치하려면 공식 Python 웹사이트의 지침을 따르세요.
uv: 설치하려면 공식uv웹사이트의 지침을 따르세요.- Google Cloud CLI: 설치하려면 공식 Google Cloud 웹사이트의 안내를 따르세요.
환경 준비
이 섹션에서는 Google Cloud 프로젝트를 만들고 구성하는 방법을 보여줍니다.
Google Cloud 프로젝트 만들기
Google Cloud 콘솔
- Google Cloud 콘솔에서 메뉴 > IAM 및 관리자 > 프로젝트 만들기로 이동합니다.
-
프로젝트 이름 필드에 프로젝트를 설명하는 이름을 입력합니다.
선택 사항: 프로젝트 ID를 편집하려면 편집을 클릭합니다. 프로젝트가 생성된 후에는 프로젝트 ID를 변경할 수 없으므로 프로젝트의 전체 기간 동안 필요에 맞는 ID를 선택하세요.
- 위치 필드에서 찾아보기를 클릭하여 프로젝트에 대한 잠재적 위치를 표시합니다. 그런 다음 선택을 클릭합니다.
- 만들기를 클릭합니다. Google Cloud 콘솔이 대시보드 페이지로 이동하고 몇 분 이내에 프로젝트가 생성됩니다.
gcloud CLI
다음 개발 환경 중 하나에서 Google Cloud CLI (gcloud)에 액세스하세요.
-
Cloud Shell: gcloud CLI가 이미 설정된 온라인 터미널을 사용하려면 Cloud Shell을 활성화하세요.
Cloud Shell 활성화 -
로컬 셸: 로컬 개발 환경을 사용하려면 gcloud CLI를 설치하고 초기화합니다.
Cloud 프로젝트를 만들려면gcloud projects create명령어를 사용합니다. 생성하려는 프로젝트의 ID를 설정하여 PROJECT_ID를 바꿉니다.gcloud projects create PROJECT_ID
클라우드 프로젝트에 대한 청구 활성화
Google Cloud 콘솔
- Google Cloud 콘솔에서 결제로 이동합니다. 메뉴 > 청구 > 내 프로젝트를 클릭합니다.
- 조직 선택에서 Google Cloud 프로젝트와 연결된 조직을 선택합니다.
- 프로젝트 행에서 작업 메뉴()를 열고 결제 변경을 클릭한 다음 Cloud Billing 계정을 선택합니다.
- 계정 설정을 클릭합니다.
gcloud CLI
- 사용 가능한 청구 계정을 나열하려면 다음을 실행하세요.
gcloud billing accounts list - Google Cloud 프로젝트에 청구 계정을 연결합니다.
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID다음을 바꿉니다.
PROJECT_ID는 청구를 활성화하려는 클라우드 프로젝트의 프로젝트 ID입니다.BILLING_ACCOUNT_ID는 Google Cloud 프로젝트에 연결하는 결제 계정 ID입니다.
Google Cloud API 사용 설정
HTTP
Google Cloud 콘솔에서 Vertex AI, Places, People, Google Chat, Gmail, Cloud Build, Cloud Functions, Cloud Pub/Sub, Cloud Logging, Artifact Registry, Cloud Run, Google Workspace 추가 기능 API를 활성화합니다.
올바른 클라우드 프로젝트에서 API를 활성화했는지 확인한 후 다음을 클릭합니다.
올바른 API를 사용 설정했는지 확인한 후 사용 설정을 클릭합니다.
Apps Script
Google Cloud 콘솔에서 Vertex AI, Places, People, Google Chat API를 활성화합니다.
올바른 클라우드 프로젝트에서 API를 활성화했는지 확인한 후 다음을 클릭합니다.
올바른 API를 사용 설정했는지 확인한 후 사용 설정을 클릭합니다.
Google Maps Platform Places API 키 가져오기
Google Cloud 콘솔에서 Google Maps Platform > 키 및 사용자 인증 정보 페이지로 이동합니다.
Google Maps Platform 시작하기 대화상자에는 새로 생성된 API 키(영숫자 문자열)가 표시됩니다. 다음 섹션에서는 이 문자열이 필요합니다.
Google Cloud 콘솔에서 서비스 계정 만들기
다음 단계에 따라 Vertex AI User 역할로 새 서비스 계정을 만듭니다.
Google Cloud 콘솔
- Google Cloud 콘솔에서 메뉴 > IAM 및 관리자 > 서비스 계정으로 이동합니다.
- 서비스 계정 만들기를 클릭합니다.
- 서비스 계정 세부정보를 입력한 다음 만들고 계속하기를 클릭합니다.
- 선택 사항: 서비스 계정에 역할을 할당하여 Google Cloud 프로젝트 리소스에 대한 액세스 권한을 부여합니다. 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참고하세요.
- 계속을 클릭합니다.
- 선택 사항: 이 서비스 계정을 관리하고 작업을 수행할 수 있는 사용자 또는 그룹을 입력합니다. 자세한 내용은 서비스 계정 사칭 관리를 참조하세요.
- 완료를 클릭합니다. 서비스 계정의 이메일 주소를 기록해 두세요.
gcloud CLI
- 서비스 계정을 만듭니다.
gcloud iam service-accounts createSERVICE_ACCOUNT_NAME\ --display-name="SERVICE_ACCOUNT_NAME" - 선택 사항: 서비스 계정에 역할을 할당하여 Google Cloud 프로젝트 리소스에 대한 액세스 권한을 부여합니다. 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경 및 취소를 참조하세요.
서비스 계정은 서비스 계정 페이지에 나타납니다. 다음으로 서비스 계정의 비공개 키를 만듭니다.
비공개 키 만들기
서비스 계정에 대한 개인 키를 만들고 다운로드하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 메뉴 > IAM 및 관리자 > 서비스 계정으로 이동합니다.
- 서비스 계정을 선택합니다.
- 키 > 키 추가 > 새 키 만들기를 클릭합니다.
- JSON을 선택한 다음 만들기를 클릭합니다.
새 공개 키/비공개 키 쌍이 생성되어 새 파일로 머신에 다운로드됩니다. 다운로드한 JSON 파일을 작업 디렉토리에
credentials.json라는 이름으로 저장합니다. 이 파일은 이 키의 유일한 사본입니다. 키를 안전하게 저장하는 방법에 대한 자세한 내용은 서비스 계정 키 관리를 참조하세요. - 닫기를 클릭합니다.
서비스 계정에 대한 자세한 내용은 Google Cloud IAM 문서의 서비스 계정을 참조하세요.
OAuth 동의 화면 구성
Google Workspace 부가기능에는 동의 화면 구성이 필요합니다. 애드온의 OAuth 동의 화면을 구성하면 Google에서 사용자에게 표시하는 내용이 정의됩니다.
- Google Cloud 콘솔에서 메뉴 > Google Auth platform > 브랜딩으로 이동합니다.
- 이미 Google Auth platform을 구성한 경우 브랜딩, 대상, 데이터 액세스에서 다음 OAuth 동의 화면 설정을 구성할 수 있습니다. Google Auth platform 아직 구성되지 않음이라는 메시지가 표시되면 시작하기를 클릭합니다.
- 앱 정보의 앱 이름에 앱 이름을 입력합니다.
- 사용자 지원 이메일에서 사용자가 동의에 대해 문의할 수 있는 지원 이메일 주소를 선택합니다.
- 다음을 클릭합니다.
- 대상에서 내부를 선택합니다.
- 다음을 클릭합니다.
- 연락처 정보에서 프로젝트 변경사항에 대한 알림을 받을 수 있는 이메일 주소를 입력합니다.
- 다음을 클릭합니다.
- 완료에서 Google API 서비스 사용자 데이터 정책을 검토하고 동의하는 경우 Google API 서비스: 사용자 데이터 정책에 동의합니다를 선택합니다.
- 계속을 클릭합니다.
- 만들기를 클릭합니다.
- 지금은 범위를 추가하지 않아도 됩니다. 나중에 Google Workspace 조직 외부에서 사용할 앱을 만들 때는 사용자 유형을 외부로 변경해야 합니다. 그런 다음 앱에 필요한 승인 범위를 추가합니다. 자세한 내용은 OAuth 동의 구성 가이드를 참고하세요.
Travel Concierge ADK AI 에이전트 배포
아직 완료되지 않았다면 Google Cloud 계정으로 인증하고 Google Cloud CLI를 구성하여 Google Cloud 프로젝트를 사용하세요.
gcloud auth application-default logingcloud config set project PROJECT_IDgcloud auth application-default set-quota-project PROJECT_IDPROJECT_ID을 생성한 클라우드 프로젝트의 ID로 바꾸세요.
이 GitHub 저장소를 다운로드합니다.
원하는 로컬 개발 환경에서 다운로드한 아카이브 파일을 추출하고
adk-samples/python/agents/travel-concierge디렉터리를 엽니다.unzip adk-samples-main.zipcd adk-samples-main/python/agents/travel-conciergeADK AI 에이전트 전용의 새로운 Cloud Storage 버킷을 만듭니다.
gcloud storage buckets create gs://CLOUD_STORAGE_BUCKET_NAME --project=PROJECT_ID --location=PROJECT_LOCATION다음을 바꿉니다.
- CLOUD_STORAGE_BUCKET_NAME을 사용할 고유한 버킷 이름으로 바꿉니다.
- PROJECT_ID을 생성한 클라우드 프로젝트의 ID로 바꿉니다.
- PROJECT_LOCATION를 개발자가 만든 Cloud 프로젝트의 위치로 바꿉니다.
다음 환경 변수를 설정합니다.
export GOOGLE_GENAI_USE_VERTEXAI=1export GOOGLE_CLOUD_PROJECT=PROJECT_IDexport GOOGLE_CLOUD_LOCATION=PROJECT_LOCATIONexport GOOGLE_PLACES_API_KEY=PLACES_API_KEYexport GOOGLE_CLOUD_STORAGE_BUCKET=CLOUD_STORAGE_BUCKET_NAMEexport TRAVEL_CONCIERGE_SCENARIO=travel_concierge/profiles/itinerary_empty_default.json다음을 바꿉니다.
- PROJECT_ID를 만든 Cloud 프로젝트의 ID로 바꿉니다.
- PROJECT_LOCATION를 개발자가 만든 Cloud 프로젝트의 위치로 바꿉니다.
- PLACES_API_KEY를 생성한 API 키의 문자열로 바꿉니다.
- CLOUD_STORAGE_BUCKET_NAME을 생성한 버킷의 이름으로 바꿉니다.
ADK AI 에이전트를 설치하고 배포합니다.
uv sync --group deploymentuv run python deployment/deploy.py --create마지막으로 인쇄된 로그에서 프로젝트 번호와 엔진 ID를 각각 PROJECT_NUMBER와 ENGINE_ID로 검색합니다. 나중에 프로젝트를 구성하려면 둘 다 필요합니다.
Created remote agent: projects/PROJECT_NUMBER/locations/us-central1/reasoningEngines/ENGINE_ID
샘플 코드 검토
선택적으로, 프로젝트를 설정하기 전에 GitHub에 호스팅된 샘플 코드를 검토하고 익숙해지는 데 시간을 투자하세요.
Python
Apps Script
프로젝트 생성 및 구성
Python
이 GitHub 저장소를 다운로드합니다.
원하는 로컬 개발 환경에서 다운로드한 아카이브 파일을 추출하고
add-ons-samples/python/travel-adk-ai-agent디렉터리를 엽니다.unzip add-ons-samples-main.zipcd add-ons-samples-main/python/travel-adk-ai-agent이전 단계에서 다운로드한 서비스 계정의 JSON 키 파일
credentials.json을 프로젝트 디렉터리로 이동합니다.Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
함수 작성을 클릭합니다.
서비스 만들기 페이지에서 함수를 설정합니다.
- 서비스 이름 필드에
travel-concierge-app를 입력합니다. - 리전 목록에서 생성한 클라우드 프로젝트의 위치(PROJECT_LOCATION)를 선택합니다.
- 엔드포인트 URL에서
을 클릭합니다.
- 런타임 목록에서 최신 버전의 Python을 선택합니다.
- 인증 섹션에서 공개 액세스 허용을 선택합니다.
- 컨테이너, 볼륨, 네트워킹, 보안 섹션의 리소스 아래에서:
- 메모리 필드에서 1GiB를 선택합니다.
- CPU 필드에서 2를 선택합니다.
- 만들기를 클릭하고 Cloud Run이 서비스를 만들 때까지 기다립니다. 콘솔이 소스 탭으로 리디렉션됩니다.
- 서비스 이름 필드에
원하는 로컬 개발 환경에서 프로젝트의 소스를 배포합니다.
gcloud run deploy travel-concierge-app --quiet --source . \ --region PROJECT_LOCATION \ --function adk_ai_agent \ --set-env-vars LOCATION=LOCATION,PROJECT_NUMBER=PROJECT_NUMBER,ENGINE_ID=ENGINE_ID,BASE_URL=BASE_URL다음을 바꿉니다.
- PROJECT_LOCATION을 이전에 만든 Cloud Run 함수의 위치로 바꿉니다.
- LOCATION를 이전 단계에서 생성한 Google Cloud 프로젝트의 위치인 PROJECT_LOCATION로 바꿉니다.
- PROJECT_NUMBER을 이전 단계에서 배포된 Travel Concierge ADK AI Agent의 프로젝트 번호로 바꿉니다.
- ENGINE_ID를 이전 단계에서 배포한 Travel Concierge ADK AI 에이전트의 엔진 ID로 바꿉니다.
- BASE_URL를 이전에 복사한 엔드포인트 URL로 바꿉니다.
Apps Script
Apps Script 프로젝트를 만들고 배포된 Travel Concierge ADK AI 에이전트를 사용하도록 구성하려면 다음을 수행합니다.
다음 버튼을 클릭하여 Travel Concierge ADK AI Agent Apps Script 프로젝트를 엽니다.
프로젝트 열기개요를 클릭한 다음
사본 만들기를 클릭합니다.
Apps Script 프로젝트 사본의 이름을 지정합니다.
- 여행 컨시어지 ADK AI 에이전트 사본을 클릭합니다.
- 프로젝트 제목에
Travel Concierge ADK AI Agent을 입력합니다. - 이름 바꾸기를 클릭합니다.
Apps Script 프로젝트에서
편집기를 클릭하고 파일 작업 파일 위로 이동을 사용하여 파일
VertexAi.gs이 파일AgentHandler.gs위에 올 때까지 이동합니다.Apps Script 프로젝트에서
프로젝트 설정을 클릭하고 스크립트 속성 수정을 클릭한 다음 스크립트 속성 추가를 클릭하여 다음 스크립트 속성을 추가합니다.
이전 단계에서 배포된 여행 컨시어지 ADK AI 에이전트의 엔진 ID가 포함된
ENGINE_ID, ENGINE_IDLOCATION를 이전 단계에서 만든 Google Cloud 프로젝트의 위치로 바꿉니다(PROJECT_LOCATION).PROJECT_NUMBER를 이전 단계에서 배포된 Travel Concierge ADK AI Agent의 프로젝트 번호인 PROJECT_NUMBER로 바꿉니다.SERVICE_ACCOUNT_KEY을 이전 단계에서 다운로드한 서비스 계정의 JSON 키(예:{ ... })로 바꿉니다.스크립트 속성 저장을 클릭합니다.
Apps Script 프로젝트에서
프로젝트 설정을 클릭합니다.
Google Cloud Platform(GCP) 프로젝트에서 프로젝트 변경을 클릭합니다.
GCP 프로젝트 번호에 이전 단계에서 배포한 Travel Concierge ADK AI Agent의 프로젝트 번호 PROJECT_NUMBER를 붙여넣습니다.
프로젝트 설정을 클릭합니다. 이제 Cloud 프로젝트와 Apps Script 프로젝트가 연결되었습니다.
Gmail, 캘린더, 드라이브, 문서, 시트, 슬라이드에 배포
Python
Google Workspace 추가 기능 배포를 사용하여 모든 Google Workspace 애플리케이션 (Google Chat 제외)에 샘플 프로젝트를 설치하여 테스트를 활성화합니다.
원하는 로컬 개발 환경에서 프로젝트의 코드 소스에서
deployment.json파일을 열고$BASE_URL의 모든 항목을 이전 단계에서 복사한 엔드포인트 URL인 BASE_URL 값으로 바꿉니다.travel-concierge-addon라는 Google Workspace 추가 기능 배포를 만듭니다.gcloud workspace-add-ons deployments create travel-concierge-addon \ --deployment-file=deployment.jsonGoogle Workspace 부가기능 배포를 설치합니다.
gcloud workspace-add-ons deployments install travel-concierge-addon
Apps Script
테스트를 사용 설정하려면 모든 Google Workspace 애플리케이션 (Google Chat 제외)에 Apps Script 프로젝트를 설치합니다.
- Apps Script 프로젝트에서 배포 > 테스트 배포를 클릭한 다음 설치를 클릭합니다.
이제 Google Workspace 애플리케이션의 사이드바에서 애드온에 액세스할 수 있습니다.
채팅에 배포
Python
테스트를 활성화하려면 엔드포인트 URL을 사용하여 Chat에 샘플 프로젝트를 설치합니다.
콘솔에서
Google Chat API를 검색하고 Google Chat API를 클릭한 다음 관리, 구성을 차례로 클릭합니다.채팅 앱 설정:
- 앱 이름 필드에
Travel ADK AI Agent를 입력합니다. - 아바타 URL 필드에
https://goo.gle/3SfMkjb를 입력합니다. - 설명 필드에
Travel ADK AI Agent을 입력합니다. - 연결 설정에서 HTTP 엔드포인트 URL을 선택합니다.
- 트리거에서 모든 트리거에 공통 HTTP 엔드포인트 URL 사용을 선택합니다.
- HTTP 엔드포인트 URL 필드에 이전에 복사한 엔드포인트 URL BASE_URL을 붙여넣습니다.
- 완전히 구현된 Chat 앱이 사용하는 빠른 명령어를 등록합니다.
- 명령에서 명령 추가를 클릭합니다.
- 명령어 ID에
1를 입력합니다. - 설명에
Reset session를 입력합니다. - 명령 유형에서 빠른 명령을 선택합니다.
- 이름에
Reset session를 입력합니다. - 완료를 클릭합니다. 빠른 명령이 등록되고 나열됩니다.
- 공개 상태에서 내 Workspace 도메인의 특정 사용자 및 그룹에서 이 채팅 앱을 사용할 수 있도록 설정을 선택하고 이메일 주소를 입력합니다.
- 로그에서 로깅에 오류 기록을 선택합니다.
- 저장을 클릭합니다.
- 앱 이름 필드에
Apps Script
테스트를 활성화하려면 Head Deployment ID를 사용하여 Chat에 Apps Script 프로젝트를 설치합니다.
Apps Script 프로젝트에서 배포 > 테스트 배포를 클릭한 다음 헤드 배포 ID 아래에서
복사를 클릭합니다.
콘솔에서
Google Chat API를 검색하고 Google Chat API를 클릭한 다음 관리, 구성을 차례로 클릭합니다.채팅 앱 설정:
- 앱 이름 필드에
Travel ADK AI Agent를 입력합니다. - 아바타 URL 필드에
https://goo.gle/3SfMkjb를 입력합니다. - 설명 필드에
Travel ADK AI Agent을 입력합니다. - 연결 설정에서 Apps Script를 선택합니다.
- 배포 ID 필드에 이전에 복사한 헤드 배포 ID를 붙여넣습니다.
- 완전히 구현된 Chat 앱이 사용하는 빠른 명령어를 등록합니다.
- 명령어에서 명령어 추가를 클릭합니다.
- 명령어 ID에
1를 입력합니다. - 설명에
Reset session를 입력합니다. - 명령 유형에서 빠른 명령을 선택합니다.
- 이름에
Reset session를 입력합니다. - 완료를 클릭합니다. 빠른 명령이 등록되고 나열됩니다.
- 공개 상태에서 내 Workspace 도메인의 특정 사용자 및 그룹에서 이 채팅 앱을 사용할 수 있도록 설정을 선택하고 이메일 주소를 입력합니다.
- 로그에서 로깅에 오류 기록을 선택합니다.
- 저장을 클릭합니다.
- 앱 이름 필드에
이제 Google Chat에서 앱에 접속할 수 있습니다.
Google Chat을 엽니다.
Chat DM 스페이스를 만듭니다.
- 새 채팅을 클릭합니다.
- 검색에서 앱
Travel ADK AI Agent을 입력하고 선택합니다. Install app대화상자에서 앱 설치를 클릭합니다.Install app대화 상자가 닫히고 새로 생성된 채팅 DM 공간이 선택됩니다.
Chat 앱에서 메시지에 응답할 준비가 되었습니다.
에이전트 테스트
Gmail을 엽니다.
다음 이메일을 자신에게 보내세요:
- 제목:
You need to travel to Paris - 본문:
Please be there between 11/25/2025 and 11/30/2025!
- 제목:
사이드바에서 Travel ADK AI Agent 애드온을 엽니다.
권한 부여를 클릭하여 추가 기능 설정을 완료합니다.
다음 요청을 에이전트에 구성한 후 Send를 클릭합니다.
- 메시지:
Please help me plan this travel! - 컨텍스트: 현재 이메일 선택
사이드바가 에이전트의 대답으로 업데이트됩니다.

- 메시지:
채팅 열기를 클릭하면 채팅 DM 공간으로 이동합니다.
+ > 세션 재설정을 클릭합니다.
완료되었음을 확인하는 새 메시지가 표시됩니다.
OK, let's start from the beginning, what can I help you with?Give me ideas메시지를 보내세요.상담사의 응답이 포함된 새 메시지가 수신됩니다.

에펠탑 등 원하는 위치의 사진을 업로드한 후
I want to go there!메시지를 보내세요.상담원의 응답이 담긴 새로운 메시지를 받게 됩니다.

제한사항
HTTP
Chat 외의 Google Workspace 애플리케이션에서 AI 에이전트는 다음과 같은 제한 사항을 갖습니다.
동기식: 사이드바는 사용자 상호작용에 대한 응답으로만 업데이트할 수 있으므로 AI 에이전트 응답은 완전히 완료된 후에만 표시됩니다 (스트리밍 없음).
시간 초과될 수 있음: 완료하는 데 몇 분 이상 걸리면 사이드바 업데이트가 시간 초과됩니다.
채팅에서는 이런 제한이 없습니다.
Apps Script
모든 Google Workspace 애플리케이션에서 AI 에이전트는 UrlFetchApp을 사용하여 Vertex AI REST API를 호출하는데, 이로 인해 다음과 같은 제한이 발생합니다.
동기식: AI 에이전트 응답은 완전히 완료된 후에만 반환됩니다 (스트리밍 없음).
시간 초과될 수 있음: AI 에이전트가 완료하는 데 1분 이상 걸리면 시간 초과를 요청합니다.
맞춤설정
이 솔루션은 Vertex AI Agent Engine에서 호스팅되는 ADK AI 에이전트, Google Workspace 애플리케이션 UI의 하위 집합, 여행 컨시어지 샘플의 응답에 특화된 응답 렌더링을 지원합니다. 이 솔루션은 확장 가능한 프레임워크를 사용하므로 다음 파일을 수정하여 맞춤설정할 수 있습니다.
Python
main.py: 주요 UI와 사용자 상호작용 로직 (Google Workspace 이벤트 핸들러)을 정의합니다. 일반적인 확장 기능으로는 Drive 문서를 Drive 애플리케이션의 컨텍스트 기능으로 활성화하는 것이 있는데, 이는 Gmail 애플리케이션에서 Gmail 메시지에 적용되는 기능과 유사합니다.
vertex_ai.py: AI 에이전트 세션, 응답, 오류를 관리하고 에이전트 상호작용 및 응답 렌더링을 지원하기 위해 구현할 Vertex AI 전용 인터페이스를 정의합니다. 일반적인 확장 프로그램은 별도의 사용자 대화를 위한 다중 세션 지원과 기타 AI 에이전트 관리 플랫폼을 추가하는 것입니다.
agent_handler.py: Chat 및 비Chat 애플리케이션의 특정 사례에서 vertex_ai.py에 정의된 Vertex AI 전용 인터페이스를 구현합니다. 일반적인 확장 프로그램은 사용자가 AI 에이전트 응답에 대한 의견을 보낼 수 있는 버튼을 추가하는 것입니다.
google_workspace.py: API 호출을 사용하여 AI 에이전트가 아닌 관리 플랫폼 상호작용을 구현합니다. 이 샘플에서는 Google Workspace API만 사용하여 컨텍스트 세부정보를 수집하고 작업을 실행합니다. 일반적인 확장 프로그램은 Google Calendar 또는 고객 관계 관리 (CRM)에서 비즈니스 데이터를 가져오는 기능을 추가하는 것입니다.
travel_agent_ui_render.gs: 하위 에이전트 및 Workspace 애플리케이션을 위한 여행 컨시어지 전용 응답 렌더링을 구현합니다. 일반적인 확장 프로그램은 항공편 옵션과 기타 AI 에이전트를 그래픽으로 표시하기 위해 새로운 응답 렌더링 지원을 추가하는 것입니다.
Apps Script
Code.gs: 주요 UI와 사용자 상호작용 로직 (Google Workspace 이벤트 핸들러)을 정의합니다. 일반적인 확장 기능으로는 Drive 애플리케이션을 위한 컨텍스트 기능으로 Drive 문서를 활성화하는 것이 있는데, 이는 Gmail 애플리케이션에서 Gmail 메시지를 처리하는 것과 유사합니다.
VertexAi.gs: AI 에이전트 세션, 응답, 오류를 관리하고 에이전트 상호작용 및 응답 렌더링을 지원하기 위해 구현할 Vertex AI 관련 인터페이스를 정의합니다. 일반적인 확장 기능으로는 개별 사용자 대화에 대한 다중 세션 지원과 기타 AI 에이전트 관리 플랫폼을 추가하는 것이 있습니다.
AgentHandler.gs: 채팅 및 비채팅 애플리케이션의 특정 사례에서 VertexAi.gs에 정의된 Vertex AI 전용 인터페이스를 구현합니다. 일반적인 확장 기능으로는 사용자가 AI 에이전트의 응답에 대한 피드백을 보낼 수 있는 버튼을 추가하는 것이 있습니다.
GoogleWorkspace.gs: API 호출을 사용하여 AI 에이전트가 아닌 관리 플랫폼 상호작용을 구현합니다. 이 샘플에서는 Google Workspace API만 사용하여 컨텍스트 세부정보를 수집하고 작업을 실행합니다. 일반적인 확장 프로그램은 Google Calendar 또는 고객 관계 관리 (CRM)에서 비즈니스 데이터를 가져오는 기능을 추가하는 것입니다.
TravelAgentUiRender.gs: 하위 에이전트 및 Workspace 애플리케이션을 위한 여행 컨시어지 전용 응답 렌더링을 구현합니다. 일반적인 확장으로는 비행 옵션을 그래픽으로 표시하기 위한 새로운 응답 렌더링과 기타 AI 에이전트에 대한 지원을 추가하는 것이 있습니다.
삭제
이 튜토리얼에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 Cloud 프로젝트를 삭제하는 것이 좋습니다.
- Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다. 메뉴 > IAM 및 관리자 > 리소스 관리를 클릭합니다.
- 프로젝트 목록에서 삭제하려는 프로젝트를 선택한 다음 삭제 를 클릭합니다.
- 대화상자에서 프로젝트 ID를 입력한 다음 종료를 클릭하여 프로젝트를 삭제합니다.
관련 주제
- ADK AI 에이전트 및 Gemini 모델로 진술의 사실 여부 확인
- 채팅 앱에 기본 AI 개념 통합
- Apps Script를 사용하여 Google Workspace 부가기능으로 Chat 앱 빌드하기