실습 설정 안내 및 요구사항
계정과 진행 상황을 보호하세요. 이 실습을 실행하려면 항상 시크릿 브라우저 창과 실습 사용자 인증 정보를 사용하세요.

ADK 및 Agent2Agent(A2A) SDK로 원격 에이전트에 연결

실습 1시간 universal_currency_alt 크레딧 7개 show_chart 고급
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
이 콘텐츠는 아직 휴대기기에 최적화되지 않음
최상의 경험을 위해 데스크톱 컴퓨터에서 이메일로 전송된 링크를 사용하여 방문하세요.

GENAI120

Google Cloud 사용자 주도형 실습

Agent2Agent(A2A) 프로토콜은 AI 환경에서 가장 중요한 과제를 해결합니다. 다양한 기업이 별도의 서버에서 운영하는 다양한 프레임워크를 기반으로 빌드된 생성형 AI 에이전트가, 도구가 아닌 에이전트로서 서로 효과적으로 통신하고 협업할 수 있기 때문입니다. A2A의 목표는 에이전트를 위한 공통 언어를 제공하여 상호 연결성이 우수하고 강력한 혁신적인 AI 생태계를 조성하는 것입니다.

A2A는 강력하고 유연한 몇 가지 핵심 개념을 기반으로 빌드됩니다.

  • 표준화된 통신: HTTP(S)를 통한 JSON-RPC 2.0을 지원합니다.
  • 에이전트 검색: 에이전트 카드에는 에이전트의 기능과 연결 정보가 자세히 나와 있어 에이전트가 서로를 검색하고 기능을 확인할 수 있습니다.
  • 리치 데이터 교환: 텍스트, 파일, 구조화된 JSON 데이터를 처리합니다.
  • 유연한 상호작용: 동기식 요청/응답, 스트리밍(SSE), 비동기식 푸시 알림을 지원합니다.
  • 엔터프라이즈 지원: 보안, 인증, 모니터링 가능성을 고려하여 설계되었습니다.

목표

이 실습에서 학습할 내용은 다음과 같습니다.

  • ADK 에이전트를 A2A 서버로 배포합니다.
  • A2A 에이전트의 기능을 설명하는 JSON 에이전트 카드를 준비합니다.
  • 배포된 A2A 에이전트의 에이전트 카드를 다른 ADK 에이전트가 읽고 하위 에이전트로 사용할 수 있게 합니다.

설정 및 요건

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머에는 Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시됩니다.

Qwiklabs 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud Platform에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

준비할 사항

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저(Chrome 브라우저 권장)
  • 실습을 완료할 시간

참고: 이미 개인용 GCP 계정이나 프로젝트가 있어도 이 실습에서는 사용하지 마세요.

실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 대화상자가 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 창이 있습니다.

    • Google Cloud 콘솔 열기 버튼
    • 남은 시간
    • 이 실습에 사용해야 하는 임시 사용자 인증 정보
    • 필요한 경우 실습 진행을 위한 기타 정보
  2. Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).

    실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.

    팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.

    참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
  3. 필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.

    {{{user_0.username | "Username"}}}

    실습 세부정보 창에서도 사용자 이름을 확인할 수 있습니다.

  4. 다음을 클릭합니다.

  5. 아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.

    {{{user_0.password | "Password"}}}

    실습 세부정보 창에서도 비밀번호를 확인할 수 있습니다.

  6. 다음을 클릭합니다.

    중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
  7. 이후에 표시되는 페이지를 클릭하여 넘깁니다.

    • 이용약관에 동의합니다.
    • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
    • 무료 체험판을 신청하지 않습니다.

잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.

참고: Google Cloud 제품 및 서비스에 액세스하려면 탐색 메뉴를 클릭하거나 검색창에 제품 또는 서비스 이름을 입력합니다. 탐색 메뉴 아이콘 및 검색창

작업 1. ADK 설치 및 환경 설정

이 실습 환경에서는 Vertex AI APICloud Run API가 사용 설정되어 있습니다. 자체 프로젝트에서 이러한 단계를 따르려면 Vertex AI로 이동하여 사용 설정하라는 메시지에 따라 사용 설정하면 됩니다.

Cloud Shell 편집기 탭 준비

  1. Google Cloud 콘솔 창을 선택한 상태에서 키보드의 G 키와 S 키를 차례로 눌러 Cloud Shell을 엽니다. 또는 Cloud 콘솔의 오른쪽 상단에서 Cloud Shell 활성화 버튼(Cloud Shell 활성화)을 클릭할 수도 있습니다.

  2. 계속을 클릭합니다.

  3. Cloud Shell을 승인하라는 메시지가 표시되면 승인을 클릭합니다.

  4. Cloud Shell 터미널 패널의 오른쪽 상단에서 새 창에서 열기 버튼 새 창에서 열기 버튼을 클릭합니다.

  5. Cloud Shell 터미널에서 다음을 입력하여 Cloud Shell 편집기를 홈 디렉터리로 엽니다.

    cloudshell workspace ~
  6. 화면 오른쪽에 표시되는 추가 튜토리얼 또는 Gemini 패널을 닫아 코드 편집기에 더 많은 공간을 확보합니다.

  7. 이 실습의 나머지 부분에서는 이 창을 Cloud Shell 편집기 및 Cloud Shell 터미널이 있는 IDE로 사용할 수 있습니다.

실습에 필요한 ADK 및 코드 샘플 다운로드 및 설치

  1. Cloud Shell 터미널에서 다음 명령어를 실행하여 ADK를 설치합니다. 참고: 설치하는 ADK 버전이 이 실습에서 사용되는 버전과 일치하도록 버전을 지정합니다.

    # Install ADK and the A2A Python SDK cd ~ export PATH=$PATH:"/home/${USER}/.local/bin" python3 -m pip install google-adk==1.8.0 a2a-sdk==0.2.16 pip install --upgrade google-genai # Correcting a typo in this version sed -i 's/{a2a_option}"/{a2a_option} "/' ~/.local/lib/python3.12/site-packages/google/adk/cli/cli_deploy.py
  2. 다음 명령어를 Cloud Shell 터미널에 붙여넣어 Cloud Storage 버킷에서 실습 코드를 복사하고 압축을 해제합니다.

    gcloud storage cp gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/adk_and_a2a.zip ./adk_and_a2a.zip unzip adk_and_a2a.zip

    내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. ADK 설치 및 환경 설정

작업 2. 원격으로 사용할 수 있도록 설정할 ADK 에이전트 탐색

이 실습에서는 Cymbal Stadiums라는 경기장 유지보수 회사 직원이라고 가정합시다. 최근 프로젝트의 일환으로, 브랜드 가이드라인에 따라 삽화를 생성할 수 있는 이미지 생성 에이전트를 개발했습니다. 이제 조직 내 여러 팀에서 이 기능을 사용하고 싶어 합니다.

하위 에이전트로 사용하기 위해 여러 에이전트가 코드를 복사하면, 이러한 모든 사본을 유지보수하고 개선하기가 매우 어려워집니다.

대신 A2A 서버로 래핑된 에이전트로 한 번만 배포하면 다른 팀의 에이전트가 원격으로 쿼리하여 이를 통합할 수 있습니다.

  1. Cloud Shell 편집기의 파일 탐색기 창에서 adk_and_a2a/illustration_agent 디렉터리로 이동합니다. 이 디렉터리에는 원격으로 사용할 수 있도록 설정할 ADK 에이전트가 포함되어 있습니다. 디렉터리를 클릭하여 엽니다.

  2. 이 디렉터리에서 agent.py 파일을 열고 # Tools 라벨이 지정된 섹션으로 스크롤합니다.

  3. 이 에이전트가 도구로 사용할 generate_image() 함수를 확인합니다. 함수에서 프롬프트를 수신하고 2단계 프로세스를 실행합니다. 먼저 이 함수는 Google Gen AI SDK를 사용하여 generate_content()를 호출합니다. 그러면 응답에 원시 이미지 데이터가 직접 반환됩니다. 두 번째로 이 함수는 Cloud Storage 라이브러리를 사용하여 이러한 이미지 바이트를 GCS 버킷에 업로드합니다. 마지막으로, 새로 생성된 이미지 파일의 공개 URL이 도구에서 반환됩니다.

  4. root_agent에 제공된 instruction은 회사의 브랜드 가이드라인을 준수하는 이미지 생성 프롬프트를 사용하라는 구체적인 지침을 에이전트에게 제공합니다. 예를 들어 이 지침은 다음을 지정합니다.

    • 특정한 삽화 스타일(Corporate Memphis)
    • 색상 팔레트(일몰 그라데이션의 보라색과 녹색)
    • (경기장 유지보수 회사이므로) 경기장/스포츠 및 유지보수 예시 이미지
  5. 실제로 작동하는지 확인하려면, 먼저 ADK 에이전트에 필요한 환경 변수를 설정하는 .env 파일을 작성해야 합니다. Cloud Shell 터미널에서 다음을 실행하여 이 디렉터리에 파일을 작성합니다.

    cd ~/adk_and_a2a cat << EOF > illustration_agent/.env GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT={{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} GOOGLE_CLOUD_LOCATION=global MODEL={{{project_0.startup_script.gemini_flash_model_id | gemini_flash_model_id}}} IMAGE_MODEL={{{project_0.startup_script.gemini_flash_image_model_id | gemini_flash_image_model_id}}} EOF
  6. 다음을 실행하여 .env를 이 실습에서 사용할 다른 에이전트 디렉터리에 복사합니다.

    cp illustration_agent/.env slide_content_agent/.env
  7. 이제 Cloud Shell 터미널에서 다음을 사용하여 ADK 개발 UI를 실행합니다.

    adk web

    출력

    INFO: Started server process [2434] INFO: Waiting for application startup. +-------------------------------------------------------+ | ADK Web Server started | | | | For local testing, access at http://localhost:8000. | +-------------------------------------------------------+ INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  8. 새 탭에서 웹 인터페이스를 보려면 터미널 출력 하단에서 http://127.0.0.1:8000 링크를 클릭합니다.

  9. ADK 개발 UI가 표시된 새 브라우저 탭이 열립니다.

  10. 왼쪽의 에이전트 선택 드롭다운에서 illustration_agent를 선택합니다.

  11. 채용 슬라이드 자료에 사용할 수 있는 텍스트를 이용해 에이전트를 쿼리합니다.

    By supporting each other, we get big things done!
  12. 약 10초가 지나면 에이전트가 자신이 생성한 프롬프트와 이미지를 미리 볼 수 있는 URL을 이용해 응답할 것입니다. 이미지 URL을 클릭하여 이미지를 미리 본 다음 브라우저에서 뒤로를 클릭하여 개발자 UI로 돌아갑니다.

    예시 출력

    모델의 응답 예시

    예시 이미지

    생성된 이미지

  13. 에이전트에 제공한 프롬프트에는 스포츠, 경기장, 유지보수 작업이 언급되지 않았지만 에이전트는 사용자의 텍스트와 브랜드 가이드라인을 가져와 이미지 생성 모델을 위한 단일 프롬프트로 결합했습니다.

    기본 에이전트 탐색이 끝나면 브라우저 탭을 닫습니다.

  14. Cloud Shell 터미널 창을 클릭하고 Ctrl+C를 눌러 서버를 중지합니다.

    내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. ADK 에이전트 살펴보기

작업 3. 에이전트를 A2A 서버로 배포

이제 이 에이전트를 원격 A2A 에이전트로 배포하는 단계를 진행합니다.

  1. A2A 에이전트는 자신과 자신의 기능을 식별할 수 있도록 에이전트 카드를 서빙합니다. 다음을 실행하여 agent.json 파일을 만듭니다.

    touch illustration_agent/agent.json
  2. adk_and_a2a/illustration_agent 디렉터리 내에서 agent.json 파일을 열고 다음 콘텐츠를 붙여넣습니다.

    { "name": "illustration_agent", "description": "An agent designed to generate branded illustrations for Cymbal Stadiums.", "defaultInputModes": ["text/plain"], "defaultOutputModes": ["application/json"], "skills": [ { "id": "illustrate_text", "name": "Illustrate Text", "description": "Generate an illustration to illustrate the meaning of provided text.", "tags": ["illustration", "image generation"] } ], "url": "https://illustration-agent-{{{project_0.startup_script.project_number|Project Number}}}.{{{project_0.default_region| GCP_LOCATION}}}.run.app/a2a/illustration_agent", "capabilities": {}, "version": "1.0.0" }
  3. 파일을 저장합니다.

  4. agent.json 파일에서 JSON을 검토합니다. JSON은 에이전트에 namedescription을 부여하고 일부 skills를 식별합니다. 또한 에이전트 자체를 호출할 수 있는 url을 나타내기도 합니다.

    이 실습의 안내에 따라 에이전트를 배포하면 에이전트의 url이 Cloud Run 서비스 URL로 구성됩니다.

    이름은 skills와 비슷하지만 여기에서 capabilities 파라미터는 스트리밍과 같은 기능을 나타내기 위해 예약되어 있습니다.

  5. 다음을 실행하여 illustration_agent 디렉터리에 requirements.txt 파일을 만듭니다.

    touch illustration_agent/requirements.txt
  6. 파일을 선택하고 다음을 파일에 붙여넣습니다.

    google-adk==1.8.0 a2a-sdk==0.2.16
  7. 파일을 저장합니다.

  8. 다음 명령어에서는 adk deploy cloud_run--a2a 플래그와 함께 사용하여 에이전트를 Cloud Run에 A2A 서버로 배포합니다. 'Cloud Run에 ADK 에이전트 배포' 실습을 검색하여 Cloud Run에 에이전트를 배포하는 방법을 자세히 알아보세요. 이 명령어에서 각 항목의 의미는 다음과 같습니다.

    • --project--region은 Cloud Run 서비스가 배포될 프로젝트와 리전을 정의합니다.
    • --service_name은 Cloud Run 서비스의 이름을 정의합니다.
    • --a2a 플래그는 A2A 에이전트로 호스팅되어야 한다는 사실을 나타냅니다. 이는 두가지를 의미합니다.
      • 에이전트는 ADK와 A2A 에이전트를 연결하는 클래스인 A2aAgentExecutor로 래핑됩니다. 이 클래스는 A2A 프로토콜의 작업 및 메시지 언어를 이벤트 언어로 ADK 실행기에 번역합니다.
      • 에이전트 카드는 CLOUD_RUN_URL/a2a/AGENT_NAME/.well-known/agent.json에서도 호스팅됩니다. 참고: 이 버전의 카드는 조만간 사용할 수 있지만, 현재 에이전트의 URL의 동적 재작성은 Cloud Run에서 작동하지 않으므로 이 버전의 실습에서는 사용하지 않습니다.

    다음 명령어를 사용하여 에이전트를 Cloud Run에 A2A 서버로 배포합니다.

    adk deploy cloud_run \ --project {{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} \ --region {{{project_0.default_region| GCP_LOCATION}}} \ --service_name illustration-agent \ --a2a \ illustration_agent
  9. 이 컨테이너에 대해 인증되지 않은 응답을 허용하라는 메시지가 표시됩니다. 실습 테스트를 위해 Cloud Shell 터미널에 Y('예')를 입력하고 Return 키를 누릅니다.

    참고: 배포는 5~10분 정도 걸립니다. PERMISSION_DENIED 오류가 발생하는 경우 위의 명령어를 다시 실행해 보세요.

    예상 출력:

    Dockerfile 빌드 및 컨테이너 배포 관련 단계가 표시되고 서비스 배포 관련 단계가 표시된 후 다음이 출력됩니다.

    Service [illustration-agent] revision [illustration-agent-00001-xpp] has been deployed and is serving 100 percent of traffic. Service URL: https://illustration-agent-{{{project_0.startup_script.project_number|Project Number}}}.{{{project_0.default_region| GCP_LOCATION}}}.run.app

    내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 에이전트를 A2A 서버로 배포

작업 4. 다른 ADK 에이전트가 이 에이전트를 원격으로 호출하도록 허용

이 작업에서는 두 번째 ADK 에이전트에 삽화 에이전트의 기능을 식별하고 원격으로 호출하는 기능을 제공합니다. 두 번째 에이전트는 슬라이드용 콘텐츠를 만드는 작업을 담당하는 에이전트입니다. 이 에이전트는 제목과 본문 텍스트 몇 문장을 작성한 다음 삽화 에이전트로 전달하여 해당 텍스트를 설명하는 이미지를 생성합니다.

  1. Cloud Shell 터미널에서 다음 명령어를 실행하여 에이전트 카드 JSON 파일을 adk_and_a2a 디렉터리에 복사한 다음 이름을 변경하여 illustration_agent를 나타내게 합니다.

    cp illustration_agent/agent.json illustration-agent-card.json
  2. Cloud Shell 편집기의 파일 탐색기 창에서 adk_and_a2a/slide_content_agent로 이동하여 agent.py 파일을 엽니다.

    이 에이전트의 instruction을 검토하여, 에이전트가 슬라이드에 대한 사용자 추천을 받아 제목과 본문 텍스트를 작성한 다음 A2A 에이전트로 전달하여 슬라이드를 설명하는지 확인합니다.

  3. # Agents 헤더 아래에 다음 코드를 붙여넣어 ADK의 RemoteA2aAgent 클래스를 사용해 원격 에이전트를 추가합니다.

    illustration_agent = RemoteA2aAgent( name="illustration_agent", description="Agent that generates illustrations.", agent_card=( "illustration-agent-card.json" ), )
  4. root_agent에 다음 파라미터를 추가하여 illustration_agentroot_agent의 하위 에이전트로 추가합니다.

    sub_agents=[illustration_agent]
  5. 파일을 저장합니다.

  6. Cloud Shell 터미널에서 다음을 사용해 UI를 실행합니다.

    cd ~/adk_and_a2a adk web
  7. 다시 한번 터미널 출력에서 http://127.0.0.1:8000 링크를 클릭합니다.

  8. ADK 개발 UI가 표시된 새 브라우저 탭이 열립니다. 왼쪽의 에이전트 선택 드롭다운에서 slide_content_agent를 선택합니다.

  9. 슬라이드 아이디어를 사용하여 에이전트를 쿼리합니다.

    Create content for a slide about our excellent on-the-job training.

다음과 같은 출력이 표시됩니다.

  • slide_content_agent에서 직접 작성한 제목과 본문 텍스트
  • illustration_agent로의 전달을 나타내는 transfer_to_agent 호출
  • 새 이미지를 볼 수 있는 링크가 포함된 illustration_agent의 응답
에이전트가 텍스트를 생성한 다음 illustration_agent로 전달하여 이미지를 생성합니다.

생성된 이미지

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 다른 ADK 에이전트가 에이전트를 원격으로 호출할 수 있도록 허용

수고하셨습니다

이 실습에서는 ADK 에이전트를 A2A 서버로 배포하고, A2A 에이전트의 기능을 설명하는 JSON 에이전트 카드를 준비하고, 배포된 A2A 에이전트의 에이전트 카드를 다른 ADK 에이전트가 읽고 하위 에이전트로 사용할 수 있게 했습니다.

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2025년 10월 6일

실습 최종 테스트: 2025년 10월 6일

Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.