GSP1320
Visão geral
Este laboratório é voltado à implementação e à implantação de um serviço de agente cliente com o Kit de Desenvolvimento de Agente (ADK) para criar um agente de IA que usa ferramentas remotas, como um servidor MCP. O princípio arquitetônico central deste laboratório é a separação de responsabilidades: a camada de raciocínio (agente) comunica-se com a camada de ferramentas (servidor MCP) por uma API segura.
Neste laboratório, já foi implantado um servidor MCP que contém dados sobre os animais de um zoológico fictício para LLMs, por exemplo, ao usar a CLI do Gemini. Você vai criar um agente de guia turístico, na forma de um aplicativo Python, para o zoológico fictício. O agente usa o servidor MCP para acessar detalhes sobre os animais do zoológico e usa a Wikipédia para criar a melhor experiência de turimo possível.
Por fim, você vai implantar o agente de guia turístico no Google Cloud Run para que todos os visitantes do zoológico possam acessá-lo, em vez de só na sua máquina.
Pré-requisitos
- Um servidor MCP em execução no Cloud Run ou o URL do serviço associado.
- Ter um projeto do Google Cloud com o faturamento ativado.
O que você vai aprender
Neste laboratório, você vai aprender a fazer o seguinte:
- Estruturar um projeto Python para implantação com ADK.
- Implementar um agente que usa ferramentas com o google-adk.
- Conectar um agente a um servidor MCP remoto para o conjunto de ferramentas dele.
- Implantar um aplicativo Python como um contêiner sem servidor no Cloud Run.
- Configurar a autenticação segura de serviço para serviço usando papéis do IAM.
- Excluir recursos do Cloud para evitar custos futuros.
Você vai precisar de
- Uma conta do Google Cloud e um projeto do Google Cloud
- Um navegador da web, como o Chrome
Por que implantar no Cloud Run?
O Cloud Run é uma ótima opção para hospedar agentes do ADK porque é uma plataforma sem servidor, ou seja, você pode dedicar todo seu tempo ao código em vez de cuidar da infraestrutura. O Cloud Run cuida do trabalho operacional para você.
Pense nele como uma loja pop-up: ela só abre e usa recursos quando há clientes (solicitações). Se nenhum cliente aparece, ela fecha completamente. Assim, você não paga por uma loja vazia.
Principais recursos do Cloud Run
Executa contêineres em qualquer lugar
- É possível usar contêineres (imagens do Docker) que têm seu app dentro.
- O Cloud Run executa todos na infraestrutura do Google.
- Sem você ter a dor de cabeça de lidar com a aplicação de patches no SO, fazer escalonamentos ou configurar VMs.
Escalonamento automático
- Se 0 pessoas estiverem usando seu app → 0 instâncias serão executadas (quando o app está inativo, você não tem custos financeiros).
- 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 estado, use um serviço externo como Cloud SQL, Firestore ou Redis.
Funciona com qualquer linguagem ou framework
- Desde que possa ser executado em um contêiner Linux, o Cloud Run não se importa se você usa Python, Go, Node.js, Java ou .Net.
Pague só pelos que você usar
- Cobrança por solicitação + tempo de computação (até 100 ms).
- Você não paga por recursos ociosos 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: baixe e instale o ADK e crie uma pasta de projeto
Nesta 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.
Ative as APIs e defina as variáveis de ambiente
- Para abrir o editor no Cloud Shell no seu diretório principal, clique em Abrir editor.
- Na barra de ações do editor do Cloud Shell, clique em Visualizar > Terminal.
Observação: talvez você tenha que aumentar a altura da janela do navegador para acessar a opção "Visualizar" no menu.
Use esta janela como seu ambiente de desenvolvimento integrado (IDE) 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 aparecer 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 seu 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
Crie 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
-
Em seguida, execute este comando para criar um ambiente virtual:
uv venv
-
Execute este comando para ativar o ambiente virtual:
source .venv/bin/activate
Agora já é possível criar o arquivo requirements.txt. Ele lista as bibliotecas Python que o agente do zoológico precisa.
-
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.12.0
langchain-community
wikipedia
-
Execute o comando a seguir no terminal para o gerenciador de pacotes uv instalar seus pacotes Python:
uv pip install -r requirements.txt
-
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 é aberto no editor do Cloud Shell.
-
Adicione o conteúdo abaixo 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"
Conecte-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
-
Agora, você vai 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 código a seguir ao arquivo __init__.py e salve as alterações:
from . import agent
Tarefa 2: crie o fluxo de trabalho do agente
Nesta tarefa, você vai configurar o fluxo de trabalho do agente de guia turístico do zoológico. Para começar, as bibliotecas relevantes têm que ser importadas para a configuração inicial. Depois, é preciso estabelecer os agentes especialistas e as ferramentas que o agente do zoológico vai usar. Em seguida, é hora de definir o agente do fluxo de trabalho e montar o fluxo de trabalho principal.
Crie o arquivo principal agent.py
Etapa 1: importe as bibliotecas e faça a configuração inicial
O primeiro bloco importa todas as bibliotecas necessárias do ADK e do Google Cloud. Ele também configura a criação de registros em log e carrega as variáveis de ambiente do arquivo .env, o que é essencial para acessar o modelo e o URL do servidor.
Etapa 2: defina as ferramentas (recursos) do agente
A qualidade de um agente é limitada às 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 as perguntas dos visitantes do zoológico. Quando um visitante pergunta "Onde estão os leões?", a ferramenta salva essa pergunta específica 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 no fluxo de trabalho.
-
MCPToolset: 🦁usado para conectar o agente do guia turístico ao servidor MCP do zoológico pré-implantado neste 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 ganhar acesso.
-
LangchainTool: 🌍dá ao agente de 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 leões comem na natureza?", 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:
Etapa 3: defina os agentes especialistas
Nesta seção, você vai definir dois agentes especialistas: o de pesquisa e o de formatação 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 as que serão usadas para encontrar a resposta.
O papel do agente de formatação de respostas é a apresentação. Ele não usa ferramentas para encontrar informações novas. Em vez disso, ele pega os dados brutos do agente de pesquisa que foram passados pelo Estado e usa a habilidade de linguagem do LLM para criar uma resposta natural e conversacional.
Etapa 4: defina 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 façam os trabalhos 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. Seu único trabalho é 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.
Etapa 5: monte o fluxo de trabalho principal
O fluxo de trabalho principal é designado pelo root_agent, o que é usado pela estrutura do ADK como ponto de partida para todas as novas conversas. A função principal desse agente é orquestrar o processo geral. Ele age como o controlador inicial, cuidando do primeiro turno da conversa.
Seu arquivo agent.py está concluído.
Criando desse jeito, você entende como cada componente (ferramentas, agentes de worker e agentes de gerenciamento) tem um papel específico para entregar o sistema inteligente final. Próxima parada: implantação!
Tarefa 3: prepare 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 de guia turístico do zoológico.
Essa etapa envolve uma verificação final da estrutura de arquivos do agente para garantir que ela seja compatível com o comando de implantação. Pra fechar com chave de ouro, configure uma permissão essencial do IAM pra que o serviço do Cloud Run possa agir por você e chamar os modelos da Vertex AI. Com essa etapa concluída, você 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 Vertex AI com permissão para fazer previsões e chamar modelos do Google:
# Grant the "Vertex AI User" role to your service account
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/aiplatform.user"
Tarefa 4: implante 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.
Nesta 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 de contêiner, envia para o Artifact Registry e executa o serviço no Cloud Run para que ele fique acessível na web.
Implante 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 você receber uma mensagem perguntando se quer continuar e/ou permitir invocações não autenticadas em [zoo-tour-guide], digite Y em cada caso e aperte 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
Acesse o link de implantação
-
Depois que o agente for implantado no Cloud Run, segure CTRL e clique no URL do serviço gerado para abrir o conteúdo 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 na hora de implantar no Cloud Run, a interface de desenvolvedor do ADK vai aparecer.
Observação: qualquer pessoa com o URL pode acessar esse agente. Por isso, essa abordagem é mais adequada para fins de teste.
Clique em Verificar meu progresso para conferir o objetivo.
Implantar o agente
Tarefa 5: teste 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 o agente 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 clique no URL da saída para abrir uma nova guia do navegador. Assim, você abre a interface de desenvolvedor do ADK.
-
Deixe a opção Streaming de token Ligada no canto superior direito da barra de ferramentas do ADK.
Pronto! Você já pode interagir com o agente do zoológico.
-
Digite Hello na caixa de comando e aperte ENTER para começar uma nova conversa.
Observe o resultado. O agente deve responder rapidamente com a saudação padrão:
"Olá! Sou o guia turístico do zoológico. Estou pronto para ensinar tudo sobre os animais fantásticos que temos aqui. O que você quer aprender hoje?"
-
Fale com o agente de guia do zoológico. Digite a consulta a seguir para começar uma nova conversa:
Onde estão os pinguins?
Uma resposta parecida com esta vai aparecer:

Explicação do fluxo do agente
Seu sistema opera como uma equipe inteligente 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)
Todo o processo começa com o agente recepcionista.
Função: começar a conversa. A instrução é cumprimentar o usuário e perguntar sobre qual animal ele quer saber mais.
Ferramenta: quando o usuário responde, o Recepcionista usa add_prompt_to_state para capturar as palavras exatas, por exemplo, "fale sobre os leões" e salvar 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 (pelo 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 eles comem na natureza?", ele vai chamar o servidor MCP para saber as idades e a ferramenta Wikipedia para encontrar informações sobre a dieta.
3. Formatador de respostas (o apresentador)
Depois que o Pesquisador Geral reúne todos os fatos, esse é o último agente a ser executado.
Função: ser nosso guia amigável do zoológico. Ele pega dados brutos de uma ou das duas fontes e melhora a qualidade deles.
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 conta fatos gerais interessantes.
O resultado final: o texto gerado por esse agente é a resposta completa e detalhada que aparece na tela da conversa para o usuário.
Próximas etapas / Saiba mais
Para mais informações sobre como criar agentes, confira estes recursos:
Tarefa 6: limpe o ambiente
Para evitar custos futuros, você vai excluir os recursos do Cloud criados neste laboratório.
Parabéns!
Neste laboratório, você aprendeu a estruturar projetos Python para implantar com a interface de linha de comando do ADK, implementou um fluxo de trabalho multiagente, se conectou a um servidor MCP remoto para acessar ferramentas, 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 13 de outubro de 2025
Laboratório testado em 13 de outubro de 2025
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.