GSP1350
Visão geral
Esse laboratório tem como foco a implementação e a implantação de um serviço de agente cliente com o Kit de Desenvolvimento de Agente (ADK, na sigla em inglês) para criar um agente de IA que usa ferramentas remotas, como um servidor do Protocolo de Contexto de Modelo (MCP, na sigla em inglês). O princípio arquitetônico central desse laboratório é a separação de responsabilidades: a camada de raciocínio (o agente) comunica-se com a camada de ferramentas (o servidor MCP) por uma API segura.
Nesse laboratório, um servidor MCP pré-implantado fornece aos LLMs dados sobre os animais de um zoológico fictício. Você vai criar um aplicativo Python que será um agente de guia turístico do zoológico fictício. O agente usa o servidor MCP para ter acesso a informações sobre os animais do zoológico e usa a Wikipédia para criar a melhor experiência de turismo possível.

Por fim, você vai implantar o agente de guia turístico no Google Cloud Run para que a execução não seja apenas local, e todos os visitantes do zoológico possam acessá-lo.
O que você vai aprender
Neste laboratório, você aprenderá a:
- Estruturar um projeto Python para implantação do ADK.
- Implementar um agente que vai usar ferramentas com o google-adk.
- Conectar um agente a um servidor MCP remoto para ter acesso ao conjunto de ferramentas dele.
- Implantar um aplicativo Python como um contêiner sem servidor no Cloud Run.
- Configurar a autenticação segura entre serviços usando papéis do IAM.
- Excluir recursos do Cloud para evitar custos futuros.
Por que implantar no Cloud Run?
O Cloud Run é uma ótima opção para hospedar agentes do ADK porque é uma plataforma sem servidor. Isso permite que você se concentre no código, não no gerenciamento da infraestrutura. O Cloud Run cuida do trabalho operacional para você.
Pense nele como uma loja pop-up, que só abre e usa recursos quando há clientes (no caso, solicitações). Se nenhum cliente aparece, ela fica fechada e você não precisa pagar para manter uma loja vazia.
Principais recursos do Cloud Run
Executa contêineres em qualquer lugar
- É possível usar contêineres (imagens Docker) que contêm seu app.
- O Cloud Run executa todos na infraestrutura do Google.
- Sem a dor de cabeça de lidar com patches do SO, fazer escalonamentos ou configurar VMs.
Escalonamento automático
- Se nenhuma pessoa estiver usando seu app → nenhuma instância será executada (você não paga nada quando o app está inativo).
- Se o serviço receber 1.000 solicitações, ele vai gerar quantas cópias forem necessárias.
Sem estado por padrão
- Cada solicitação pode ser encaminhada a uma instância diferente.
- Caso você precise armazenar o estado, use um serviço externo como Cloud SQL, Firestore ou Redis.
Funciona com qualquer linguagem ou framework
- Contanto que seja executado em um contêiner Linux, o Cloud Run não se importa se você usa Python, Go, Node.js, Java ou .Net.
Pague pelo que usar
- Cobrança por solicitação + tempo de computação (até 100 ms).
- Você não paga por recursos inativos como em uma VM tradicional.
Configuração e requisitos
Antes de clicar no botão Começar o Laboratório
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
- Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.
Ativar o Cloud Shell
O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
-
Clique em Ativar o Cloud Shell
na parte de cima do console do Google Cloud.
-
Clique nas seguintes janelas:
- Continue na janela de informações do Cloud Shell.
- Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.
Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
- Clique em Autorizar.
Saída:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project
Saída:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.
Tarefa 1: baixar e instalar o ADK e criar uma pasta de projeto
Nessa tarefa, você vai ativar as APIs relevantes e criar uma pasta de projeto para armazenar o código-fonte da implantação do seu projeto Python.
Ativar as APIs e definir as variáveis de ambiente
- No Cloud Shell, clique em Abrir editorpara que o editor do Cloud Shell seja aberto no seu diretório principal.
- Na barra de ações do editor do Cloud Shell, clique em Visualizar > Terminal.
Observação: talvez seja necessário aumentar a altura da janela do navegador para acessar a opção "Visualizar" no menu.
Use essa janela como seu ambiente de desenvolvimento integrado com o editor do Cloud Shell (acima) e o terminal do Cloud Shell (abaixo) ao longo de todo o laboratório.
Feche qualquer outro tutorial ou painel do Gemini que apareça no lado direito da tela. Assim você terá mais espaço na janela do editor de código.
-
No terminal, insira este comando para configurar o projeto:
gcloud config set project {{{project_0.project_id | filled in at lab start}}}
Saída esperada:
você vai receber uma mensagem de saída confirmando a propriedade atualizada.
Observação: caso o Cloud Shell atinja o tempo limite ou seja reiniciado, você terá que configurar o projeto outra vez.
-
Execute este comando para ativar todos os serviços necessários:
gcloud services enable \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com \
compute.googleapis.com
Saída esperada:
você vai receber uma mensagem de saída confirmando que a operação foi concluída.
Clique em Verificar meu progresso para conferir o objetivo.
Ativar as APIs
Criar os diretórios do projeto
-
Execute o comando abaixo, que cria uma pasta principal no laboratório para o código-fonte do agente:
mkdir zoo_guide_agent && cd zoo_guide_agent
Agora já é possível criar o arquivo requirements.txt. Ele lista as bibliotecas Python necessárias para o agente do zoológico.
-
Execute o comando a seguir para criar o arquivo no diretório zoo_guide_agent e abrir no editor do Cloud Shell para fazer edições nele:
cloudshell edit requirements.txt
-
Adicione o texto abaixo ao arquivo requirements.txt e pressione CTRL+S para salvar as alterações:
google-adk==1.28.0
langchain==1.2.14
langchain-community==0.4.1
wikipedia
-
Execute o comando a seguir no terminal para instalar seus pacotes Python e atualizar seu PATH:
export PATH=$PATH:~/.local/bin
pip3 install -r requirements.txt --user
-
Defina variáveis para seu projeto, região e usuário atuais com estes comandos:
export PROJECT_ID=$(gcloud config get-value project)
export REGION=$(gcloud compute project-info describe \
--format="value(commonInstanceMetadata.items[google-compute-default-region])")
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export SERVICE_ACCOUNT="${PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
Observação: se o Cloud Shell expirar ou reiniciar, você terá que inicializar as variáveis acima de novo.
-
Crie e abra um arquivo .env para autenticar o agente no diretório zoo_guide_agent com este comando:
cloudshell edit .env
O diretório contendo o arquivo .env será aberto no editor do Cloud Shell.
-
Adicione seguinte texto ao arquivo .env e salve as alterações:
MODEL="{{{ project_0.startup_script.gemini_flash_model_id | filled in at lab start }}}"
SERVICE_ACCOUNT="${PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
GOOGLE_GENAI_USE_ENTERPRISE=true
GOOGLE_CLOUD_LOCATION=global
Conectar-se ao endpoint do servidor MCP seguro
Nesta seção, você estabelece uma conexão com o servidor MCP remoto.
-
Volte ao terminal do Cloud Shell e execute o comando abaixo para dar permissão à identidade do serviço do Cloud Run para chamar o servidor MCP remoto:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/run.invoker"
-
Execute o comando abaixo para salvar o URL do servidor MCP em uma variável de ambiente:
echo -e "\nMCP_SERVER_URL=https://zoo-mcp-server-${PROJECT_NUMBER}.${REGION}.run.app/mcp/" >> .env
-
Em seguida, execute o comando a seguir para criar o arquivo __init__.py. Esse arquivo informa ao Python que o diretório zoo_guide_agent é um pacote:
cloudshell edit __init__.py
-
No editor do Cloud Shell que será aberto, adicione o seguinte código ao arquivo __init__.py e salve as alterações:
from . import agent
Tarefa 2: criar o fluxo de trabalho do agente
Nessa tarefa, você vai configurar o fluxo de trabalho do agente guia turístico do zoológico. Comece importando as bibliotecas relevantes para a configuração inicial. Depois, defina os agentes especialistas e as ferramentas que o agente do zoológico vai usar. O próximo passo é definir o agente do fluxo de trabalho e, por fim, montar o fluxo de trabalho principal.
Criar o arquivo principal agent.py
Importar bibliotecas e fazer a configuração inicial
O primeiro bloco importa todas as bibliotecas necessárias do ADK e do Google Cloud. Ele também configura a geração de registros e carrega as variáveis de ambiente do arquivo .env, o que é essencial para acessar o modelo e o URL do servidor.
Definir ferramentas

A qualidade de um agente depende das ferramentas que ele pode usar. Nesta seção, você vai definir todos os recursos do seu agente, inclusive uma função personalizada para salvar dados, uma ferramenta MCP que se conecta ao seu servidor MCP seguro e uma ferramenta da Wikipédia.
Explicação das três ferramentas
-
add_prompt_to_state: 📝 ferramenta que lembra o que os visitantes do zoológico perguntam. Quando um deles fala "Onde ficam os leões?", a ferramenta salva esse questionamento específico na memória para que os outros agentes no fluxo de trabalho saibam o que pesquisar.
Como: uma função Python que grava o comando do visitante no dicionário compartilhado tool_context.state. O contexto da ferramenta representa a memória de curto prazo do agente para uma única conversa. Os dados salvos no estado por um agente podem ser lidos pelo próximo agente no fluxo de trabalho.
-
MCPToolset: 🦁 usado para conectar o agente guia turístico ao servidor MCP do zoológico pré-implantado nesse laboratório. Esse servidor tem ferramentas especiais para pesquisar informações específicas sobre os animais do zoológico, como nome, idade e localização.
Como: o servidor estabelece uma conexão segura com o URL do servidor particular do zoológico. Ele usa get_id_token para receber automaticamente um "cartão de acesso" seguro (um token de ID da conta de serviço) para comprovar a identidade e ter acesso.
-
LangchainTool: 🌍 dá ao agente (guia turístico) conhecimento geral do mundo. Quando um visitante faz uma pergunta que não está no banco de dados do zoológico, como "O que comem os leões que vivem nas savanas?", a ferramenta permite que o agente procure a resposta na Wikipédia.
Como: a ferramenta age como um adaptador, permitindo que o agente use a ferramenta pré-criada WikipediaQueryRun da biblioteca LangChain.
Recursos:
Definir agentes especializados

Nesta seção, você vai definir dois agentes especialistas: o de pesquisa e o formatador de respostas. O agente de pesquisa é o "cérebro" da sua operação. Ele recebe o comando do usuário do Estado compartilhado, examina as ferramentas avançadas do servidor MCP do zoológico e da Wikipédia e decide quais delas serão usadas para encontrar a resposta.
O papel do agente formatador de respostas é a apresentação. Ele não usa ferramentas para encontrar informações novas. Ele pega os dados brutos do agente de pesquisa que foram transmitidos usando o Estado e usa as habilidades de linguagem do LLM para criar uma resposta natural e conversacional.
Definir o agente de fluxo de trabalho
O agente de fluxo de trabalho age como o gerente dos "bastidores" do passeio pelo zoológico. Ele recebe um comando de pesquisa e garante que os dois agentes definidos na etapa 3 realizem as tarefas na ordem certa: primeiro a pesquisa, depois a formatação. Isso cria um processo previsível e confiável para responder às perguntas dos visitantes do zoológico.
Como: ele é um SequentialAgent, um tipo especial de agente que não pensa por conta própria. Sua única tarefa é executar uma lista de sub_agents (o pesquisador e o formatador) em uma sequência fixa, transmitindo automaticamente a memória compartilhada de um para o outro.
Montar o fluxo de trabalho principal

O fluxo de trabalho principal é definido por meio do root_agent, o que é usado pela estrutura do ADK como ponto de partida para todas as novas conversas. A função principal desse agente é coordenar o processo geral. Ele age como o controlador inicial, cuidando do primeiro turno da conversa.
Seu arquivo agent.py está concluído.
Fazendo assim, você entende como cada componente (ferramentas, agentes de worker e agentes de gerenciamento) tem um papel específico na criação do sistema inteligente final. Próxima parada: implantação!
Tarefa 3: preparar o aplicativo para implantação
Com o ambiente local pronto, a próxima etapa é preparar o projeto do Google Cloud para a implantação do agente guia turístico do zoológico.
Para isso, é preciso fazer uma verificação final da estrutura de arquivos do agente para garantir que ela seja compatível com o comando de implantação. Ainda mais importante é configurar uma permissão crítica do IAM para que o serviço do Cloud Run atue em seu nome e chame os modelos da Agent Platform. A conclusão dessa etapa garante que o ambiente de nuvem está pronto para executar o agente.
-
Volte ao terminal do Cloud Shell e execute este comando para carregar as variáveis na sua sessão do shell:
source .env
-
Execute o comando a seguir para conceder à conta de serviço o papel de usuário da Agent Platform com permissão para fazer previsões e chamar modelos do Google:
# Grant the "Agent Platform User" role to your service account
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/aiplatform.user"
Tarefa 4: implantar o agente usando a CLI do ADK
Com o código local pronto e o projeto do Google Cloud preparado, é hora de implantar o agente.
Nessa tarefa, você vai usar o comando adk deploy cloud_run, uma ferramenta conveniente que automatiza todo o fluxo de trabalho de implantação. Esse comando único empacota seu código, cria uma imagem do contêiner, envia-a para o Artifact Registry e executa o serviço no Cloud Run para que ele fique acessível na web.
Implantar o agente
-
Execute este comando para implantar o agente:
# Run the deployment command
adk deploy cloud_run \
--project=$PROJECT_ID \
--region=$REGION \
--service_name=zoo-tour-guide \
--with_ui \
.
-
Se for perguntado se você quer continuar e/ou permitir invocações não autenticadas em [zoo-tour-guide], digite Y em todos os casos e pressione ENTER.
Observação: a execução do comando de implantação pode levar de 5 a 10 minutos.
-
Execute o comando abaixo para mudar as configurações do serviço do Cloud Run atual:
gcloud run services update zoo-tour-guide \
--region=$REGION \
--update-labels=dev-tutorial=codelab-adk \
--set-env-vars="MODEL=$MODEL,MCP_SERVER_URL=$MCP_SERVER_URL,GOOGLE_CLOUD_LOCATION=global"
Acessar o link de implantação
-
Depois que o agente for implantado no Cloud Run, ele vai gerar o URL do serviço, que você pode usar para abrir em uma nova guia do navegador.
O URL provavelmente terá o formato a seguir.
Saída de URL do serviço:
https://zoo-tour-guide-{{{project_0.startup_script.project_number | filled in at lab start}}}.{{{project_0.default_region | filled in at lab start}}}.run.app
Como você usou a flag --with_ui ao implantar no Cloud Run, a interface do desenvolvedor do ADK deve ser exibida.
Observação: qualquer pessoa pode acessar esse agente usando o URL. Por isso, essa abordagem é mais adequada para fins de teste.
Observação: pode levar alguns minutos para que a verificação de monitoramento da atividade seja aprovada após uma implantação bem-sucedida.
Clique em Verificar meu progresso para conferir o objetivo.
Implantar o agente
Tarefa 5: testar o agente implantado
Com o agente ativo no Cloud Run, chegou a hora de fazer um teste para confirmar se tudo correu bem na implantação e se ele está funcionando como esperado. Você precisa usar o URL do serviço público para acessar a interface da web do ADK e interagir com o agente.
-
Abra o URL público do serviço do Cloud Run gerado na tarefa anterior no seu navegador da web ou pressione CTRL e clique no URL da saída para abrir uma nova guia do navegador. A interface de desenvolvedor do ADK será aberta.
Se você receber uma notificação perguntando se quer que o Cloud Shell abra o site externo, clique em Abrir para confirmar.
-
Deixe a opção Streaming de token Ativada no canto superior direito da barra de ferramentas do ADK.
Pronto! Você já pode interagir com o agente do zoológico.
- Digite o seguinte na caixa de comando e pressione ENTER para iniciar uma nova conversa:
Hello
Observe o resultado. O agente deve responder rapidamente com a saudação padrão:
"Hello! I'm your Zoo Tour Guide. I can help you learn about the amazing animals we have here. What would you like to know or explore today?"
- Interaja com o agente guia do zoológico. Insira o comando a seguir para retomar a conversa:
Where are the penguins located?
Você vai receber uma resposta parecida com esta:

- Teste estes comandos adicionais para ver como o agente usa diferentes ferramentas (MCP x Wikipédia) e combina informações:
Para testar o conhecimento geral (somente Wikipédia):
What is the average lifespan of a penguin in the wild?
Para testar a combinação de dados internos e externos:
What species are the penguins in our zoo, and what do they typically eat in the wild?
Sobre leões (testando as duas ferramentas novamente):
Where are the lions and what do they eat in the wild?
Sobre ursos polares (teste para animais que talvez não estejam no zoológico):
Do we have polar bears in this zoo?
Explicação do fluxo do agente
Seu sistema opera como uma equipe inteligente e com vários agentes. O processo é guiado por uma sequência clara para garantir um fluxo tranquilo e eficiente, da pergunta do usuário à resposta final detalhada.
1. Agente de boas-vindas do zoológico (a recepção)
O processo começa com o agente de boas-vindas
Função: começar a conversa. A instrução dele é cumprimentar o usuário e perguntar sobre qual animal ele quer informações.
Ferramenta: quando o usuário responde, o agente de boas-vindas usa add_prompt_to_state para capturar as palavras exatas, por exemplo, "fale sobre os leões", e as salva na memória do sistema.
Transferência: depois de salvar o comando, o controle passa imediatamente para o subagente tour_guide_workflow.
2. Pesquisador Geral (o mestre das pesquisas)
Essa é a primeira etapa do fluxo de trabalho principal, o "cérebro" da operação. Em vez de uma equipe, você passa a interagir com um único agente altamente qualificado que tem acesso a todas as informações disponíveis.
Função: analisar a pergunta do usuário e criar um plano inteligente. Com o recurso avançado de uso de ferramentas do modelo de linguagem, o agente decide se precisa de:
- Dados internos dos registros do zoológico (por meio do servidor MCP).
- Conhecimento geral da web (pela API Wikipedia).
- Ou dos dois, em caso de perguntas mais complexas.
Ação: o agente executa as ferramentas necessárias para coletar todos os dados brutos exigidos. Por exemplo, se perguntarem "Quantos anos os leões têm e o que comem os que vivem na savanaa?", ele vai chamar o servidor MCP para responder sobre as idades e a Wikipedia para encontrar informações sobre a dieta.
3. Formatador de respostas (o apresentador)
Com todos os fatos reunidos pelo Pesquisador Geral, esse é o último agente a ser executado.
Função: ser o guia amigável do zoológico. Ele reúne e melhora a qualidade dos dados brutos (de uma ou de ambas as fontes).
Ação: resumir todas as informações em uma resposta individual, coerente e interessante. Seguindo as instruções, ele começa apresentando as informações específicas do zoológico e depois apresenta fatos gerais interessantes.
O resultado final: o texto gerado por esse agente é a resposta completa e detalhada que aparece para o usuário na tela da conversa.
Tarefa 6: limpar o ambiente
Para evitar custos futuros, nessa tarefa você vai excluir os recursos do Cloud criados no laboratório.
Próximas etapas / Saiba mais
Para mais informações sobre a criação de agentes, confira estes recursos:
Parabéns!
Neste laboratório, você aprendeu a estruturar projetos Python para implantação usando a interface de linha de comando do ADK, implementou um fluxo de trabalho multiagente, conectou-se a um servidor MCP remoto para usar as ferramentas dele, melhorou dados internos integrando ferramentas externas como a API Wikipedia e implantou o agente como um contêiner sem servidor no Cloud Run.
Manual atualizado em 21 de julho de 2026
Laboratório testado em 21 de julho de 2026
Copyright 2026 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.