Agent Development Kit: a criação de aplicativos multiagentes ficou mais fácil

9 DE ABRIL DE 2025
Erwin Huizenga Machine Learning Lead
Bo Yang Software Engineer

O mundo da IA está avançando rapidamente, deixando para trás os modelos de finalidade única e caminhando rumo a sistemas multiagentes autônomos e inteligentes. No entanto, a criação desses sistemas traz novos desafios. É por isso que, hoje, apresentamos o Agent Development Kit (ADK) no Google Cloud NEXT 2025, um novo framework de código aberto do Google projetado para simplificar o desenvolvimento de pilha completa de agentes e sistemas multiagentes, de ponta a ponta. O ADK permite que desenvolvedores como você criem aplicativos agênticos prontos para produção com mais flexibilidade e controle preciso.

O ADK é o mesmo framework que habilita os agentes nos produtos do Google, como o Agentspace e o Google Customer Engagement Suite (CES). Com o ADK de código aberto, pretendemos fornecer aos desenvolvedores ferramentas eficientes e flexíveis para a criação no dinâmico cenário dos agentes. O ADK foi projetado para ser flexível, usar diferentes modelos e criar agentes prontos para produção para diferentes ambientes de implantação.


Os pilares centrais do ADK: criar, interagir, avaliar, implantar

O ADK fornece recursos em todo o ciclo de vida de desenvolvimento de agentes:

  • Multiagentes por design: crie aplicativos modulares e escalonáveis compondo vários agentes especializados em uma hierarquia para permitir a coordenação e delegação complexas.

  • Ecossistema rico em modelos: escolha o modelo mais adequado para suas necessidades. O ADK funciona com o modelo de sua escolha, seja o Gemini ou qualquer modelo acessível via Vertex AI Model Garden. O framework também oferece integração ao LiteLLM, permitindo que você escolha entre uma ampla seleção de modelos de provedores como Anthropic, Meta, Mistral AI, AI21 Labs e muitos outros!

  • Ecossistema rico em ferramentas: forneça inúmeros recursos aos agentes. Use ferramentas prontas (Search, Code Exec) e ferramentas MCP (Model Context Protocol), integre bibliotecas de terceiros (LangChain, LlamaIndex) ou use outros agentes como ferramentas (LangGraph, CrewAI etc.).

  • Streaming integrado: interaja com agentes em conversas semelhantes às humanas usando os recursos exclusivos de streaming bidirecional de áudio e vídeo do ADK. Com apenas algumas linhas de código, você pode criar interações naturais que mudam a maneira como você trabalha com os agentes, passando do texto para um diálogo multimodal complexo.

  • Orquestração flexível: defina fluxos de trabalho usando agentes de fluxo de trabalho (Sequential, Parallel, Loop) para pipelines previsíveis ou use o roteamento dinâmico orientado por LLM (transferência de LlmAgent) para comportamento adaptativo.

  • Experiência integrada do desenvolvedor: desenvolva, teste e depure localmente com uma CLI eficiente e uma IU visual da Web. Inspecione eventos, estados e o passo a passo da execução dos agentes.

  • Avaliação integrada: avalie sistematicamente o desempenho dos agentes analisando a qualidade final da resposta e a trajetória de execução passo a passo em relação a casos de teste predefinidos.

  • Facilidade de implantação: coloque agentes em contêineres e implante-os em qualquer lugar.


Primeiros passos com seu primeiro agente

Embora seja recomendado explorar os exemplos nos documentos, a ideia central é a simplicidade do código Python. Você define a lógica do agente, as ferramentas que ele pode usar e como ele deve processar as informações. O ADK fornece a estrutura para gerenciar o estado, orquestrar chamadas de ferramentas e interagir com os LLMs subjacentes. Segue um exemplo ilustrativo de um agente básico.

O código pode ser encontrado no guia de início rápido.

from google.adk.agents import LlmAgent 
from google.adk.tools import google_Search
 
dice_agent = LlmAgent(
    model="gemini-2.0-flash-exp", # Required: Specify the LLM 
    name="question_answer_agent", # Requdired: Unique agent name
    description="A helpful assistant agent that can answer questions.",
    instruction="""Respond to the query using google search""",
    tools=[google_search], # Provide an instance of the tool
)
 
# you can run this by using adk web
Python

Esse exemplo simples mostra a estrutura básica. O ADK realmente se destaca na criação de aplicativos mais complexos com vários agentes, uso de ferramentas sofisticadas e orquestração dinâmica, tudo isso mantendo o controle.

O ADK oferece flexibilidade na maneira como você interage com os agentes: CLI, IU da Web, servidor de API e API (Python). A forma como você define o agente (a lógica central do agent.py) é a mesma, independentemente de como você optar por interagir com ele. A diferença está em como você inicia e gerencia a interação. Veja exemplos de tudo isso na documentação do ADK.

ADK architecture

Criação de aplicativos multiagentes com o ADK

O ADK realmente se destaca quando você vai além de agentes únicos e começa a criar sistemas colaborativos multiagentes que usam ferramentas. Imagine criar uma equipe de agentes especializados na qual um agente principal possa delegar tarefas com base na conversa. O ADK facilita isso por meio de estruturas hierárquicas e roteamento inteligente.

Vejamos um exemplo ilustrativo: um WeatherAgent que lida com consultas meteorológicas, mas delega saudações a um GreetingAgent especializado.


1. Defina uma ferramenta:
os agentes usam ferramentas para realizar ações. Aqui, nosso WeatherAgent precisa de uma ferramenta para buscar dados meteorológicos. Definimos uma função Python; o ADK usa sua docstring para entender quando e como usá-la.

def get_weather(city: str) -> Dict:
 
    # Best Practice: Log tool execution for easier debugging
    print(f"--- Tool: get_weather called for city: {city} ---")
    city_normalized = city.lower().replace(" ", "") # Basic input normalization
 
    # Mock weather data for simplicity (matching Step 1 structure)
    mock_weather_db = {
        "newyork": {"status": "success", "report": "The weather in New York is sunny with a temperature of 25°C."},
        "london": {"status": "success", "report": "It's cloudy in London with a temperature of 15°C."},
        "tokyo": {"status": "success", "report": "Tokyo is experiencing light rain and a temperature of 18°C."},
        "chicago": {"status": "success", "report": "The weather in Chicago is sunny with a temperature of 25°C."},
        "toronto": {"status": "success", "report": "It's partly cloudy in Toronto with a temperature of 30°C."},
        "chennai": {"status": "success", "report": "It's rainy in Chennai with a temperature of 15°C."},
 }
 
    # Best Practice: Handle potential errors gracefully within the tool
    if city_normalized in mock_weather_db:
        return mock_weather_db[city_normalized]
    else:
        return {"status": "error", "error_message": f"Sorry, I don't have weather information for '{city}'."}
Python

2. Defina os agentes e seu relacionamento: usamos o LlmAgent para criar nossos agentes. Preste muita atenção nos campos de instrução e descrição: o LLM depende muito deles para entender os papéis e tomar decisões de delegação usando delegações automáticas para agentes secundários.

greeting_agent = Agent(
         model=LiteLlm(model="anthropic/claude-3-sonnet-20240229"),
            name="greeting_agent",
            instruction="You are the Greeting Agent. Your ONLY task is to provide a friendly greeting to the user. " "Do not engage in any other conversation or tasks.",
            # Crucial for delegation: Clear description of capability
            description="Handles simple greetings and hellos",
 
 )
 
farewell_agent = Agent(
          model=LiteLlm(model="anthropic/claude-3-sonnet-20240229"),
            name="farewell_agent",
            instruction="You are the Farewell Agent. Your ONLY task is to provide a polite goodbye message. "
                        "Do not perform any other actions.",
            # Crucial for delegation: Clear description of capability
            description="Handles simple farewells and goodbyes",
 
 )
 
root_agent = Agent(
        name="weather_agent_v2", 
        model="gemini-2.0-flash-exp",
        description="You are the main Weather Agent, coordinating a team. - Your main task: Provide weather using the `get_weather` tool. Handle its 'status' response ('report' or 'error_message'). - Delegation Rules: - If the user gives a simple greeting (like 'Hi', 'Hello'), delegate to `greeting_agent`. - If the user gives a simple farewell (like 'Bye', 'See you'), delegate to `farewell_agent`. - Handle weather requests yourself using `get_weather`. - For other queries, state clearly if you cannot handle them.",
        tools=[get_weather], # Root agent still needs the weather tool
        sub_agents=[greeting_agent, farewell_agent]
)
Python

Como funciona a delegação:

  • O comportamento padrão do agente é permitir a delegação.

  • Ao processar uma mensagem do usuário, o LLM considera a consulta, o campo description do agente atual e os campos description dos agentes relacionados (agentes principais/secundários definidos na hierarquia).

  • Se o LLM determinar que outro agente é mais adequado com base em sua descrição (por exemplo, o usuário diz "Oi", o que corresponde à descrição do GreetingAgent), ele iniciará uma transferência.

Descrições claras e distintas são essenciais, pois elas são usadas pelo LLM para rotear as tarefas de maneira eficaz.

Nesta configuração, se um usuário começar com "Oi", o WeatherAgent (se ele for o agente-raiz que está processando a entrada) poderá reconhecer que essa não é uma consulta meteorológica, ver que o GreetingAgent é mais adequado por meio de sua descrição e transferir automaticamente o controle. Se o usuário perguntar "Como está o tempo em Chicago?", o WeatherAgent lidará com isso diretamente usando sua ferramenta get_weather.

Este exemplo demonstra como a estrutura hierárquica do ADK e a delegação orientada por descrições permitem criar aplicativos multiagentes organizados, sofisticados e fáceis de manter.


Conclusão do ciclo de vida: avaliação e implantação

Criar agentes inteligentes como o nosso agente meteorológico é uma etapa fundamental, mas levá-los aos usuários de maneira confiável exige executar algumas ações importantes: avaliação rigorosa e implantação direta. Antes de entrar em operação, é fundamental garantir que o agente se comporte de maneira previsível e correta. As ferramentas de avaliação integradas do ADK são projetadas exatamente para isso, permitindo testar sistematicamente os caminhos de execução e a qualidade das respostas em conjuntos de dados predefinidos, como o evaluation.test.json ou o test.json. Você pode executar essas verificações de maneira programática em seus pacotes de testes usando o AgentEvaluator.evaluate(). Além disso, é possível usar a avaliação diretamente por meio da ferramenta de linha de comando "ADK eval" ou da IU da Web.

Quando o desempenho estiver satisfatório, o ADK oferecerá um caminho claro e simplificado para a produção, com a opção de implantação em qualquer ambiente de execução de contêiner ou por meio de sua integração com o Vertex AI Agent Engine. Isso permite aproveitar um ambiente de execução totalmente gerenciado, escalonável e de nível empresarial, concluindo o ciclo de vida de desenvolvimento e possibilitando a transição de protótipos sofisticados para aplicativos agênticos robustos e prontos para produção.


A escolha do framework certo: ADK ou Genkit?

Ao explorar as possibilidades de criação de sistemas multiagentes com o ADK, pode surgir a dúvida de como ele se encaixa no cenário mais amplo das ferramentas de desenvolvimento de IA generativa do Google. Embora existam diversos SDKs e frameworks disponíveis, como o framework do Genkit, é importante entender o foco relativo do ADK. Veja abaixo uma comparação rápida:


Agent Development Kit:

  • Otimizado para agentes complexos e sistemas multiagentes, ele fornece abstrações de nível superior para o desenvolvimento de agentes, com integração nativa para o LiteLLM e o Vertex AI Model Garden, oferecendo suporte a uma variedade de modelos.

  • Ele se concentra na definição de interações e comportamentos do agente.

  • Oferece suporte ao streaming bidirecional.


Genkit:

  • Fornece os elementos básicos fundamentais para a criação de uma grande variedade de experiências habilitadas por IA.

  • Inclui ferramentas para desenvolvedores para iteração, teste e depuração de interações relacionadas à IA.

  • Oferece suporte a uma grande variedade de modelos de linguagem grandes da IA do Google, da Vertex AI e de terceiros por meio de plug-ins da comunidade.


A escolha da ferramenta ideal

No final das contas, a melhor escolha depende das metas específicas do projeto. Se você está criando sistemas de agentes complexos e colaborativos dentro de um framework bem definido, o ADK oferece uma solução eficiente. Já para outros projetos de IA generativa que exigem flexibilidade e amplo suporte a modelos, o Genkit é uma excelente escolha.


O ADK funciona em qualquer lugar, mas é otimizado para o Google Cloud

Embora o Agent Development Kit (ADK) ofereça flexibilidade para trabalhar com várias ferramentas, ele é otimizado para integração total no ecossistema do Google Cloud, especificamente com modelos Gemini e Vertex AI. Esse design personalizado permite que os desenvolvedores aproveitem totalmente os recursos avançados do Gemini, como o raciocínio aprimorado e o uso de ferramentas encontrados no Gemini 2.5 Pro Experimental, e fornece um caminho direto e nativo para implantar esses agentes no ambiente de execução de nível empresarial totalmente gerenciado da Vertex AI para garantir a escalonabilidade.

O mais importante é que essa ampla integração se estende ao cenário empresarial mais amplo; o ADK permite que os agentes se conectem diretamente a sistemas e dados por meio de mais de 100 conectores prontos, usem fluxos de trabalho criados com o Application Integration e acessem dados armazenados em sistemas como AlloyDB, BigQuery e NetApp sem exigir duplicação de dados.

Além disso, os agentes criados com o ADK podem explorar, com segurança, os investimentos existentes de sua organização em APIs gerenciadas pelo Apigee, o que aprimora ainda mais seus recursos ao usar as interfaces estabelecidas.

Essa conectividade abrangente entre modelos avançados de IA, a implantação escalonável, as diversas fontes de dados e as APIs existentes tornam o ADK excepcionalmente eficiente quando usado no ambiente do Google Cloud.


Crie a próxima geração de agentes com o ADK

O Agent Development Kit (ADK) fornece uma base eficiente, flexível e de código aberto para a criação da próxima geração de aplicativos de IA. Ele lida com os principais desafios do desenvolvimento multiagentes ao oferecer:

  • Controle preciso da orquestração e do comportamento dos agentes.

  • Um ecossistema rico em ferramentas e integrações.

  • Uma experiência integrada do desenvolvedor na criação e depuração.

  • Um framework de avaliação robusto essencial para agentes confiáveis.

  • Um caminho claro para a implantação, incluindo opções gerenciadas.

Mal podemos esperar para ver o que você vai criar com o ADK!

Explore o código: documentação oficial do ADK.

OSZAR »