Construindo Agentes de IA com Python: Pydantic AI, LangChain, Agno e Google ADK
Você já quis criar um assistente inteligente que não apenas responde perguntas, mas que também usa ferramentas, acessa dados e toma decisões? Essa é a ideia por trás de agentes de IA , sistemas que combinam modelos de linguagem (LLMs) com capacidade de agir no mundo real. Se você ainda não conhece o blog, dê uma olhada no post de introdução para entender o propósito deste espaço.
Mas com tantos frameworks surgindo, como escolher o certo? Neste artigo, vamos conhecer quatro frameworks Python para criar agentes, entender como cada um funciona com exemplos simples, e descobrir quando usar cada um.
1. O Que é um Agente de IA?
Antes de mergulhar nos frameworks, vamos ao conceito básico. Um agente de IA é diferente de um simples chatbot:
- Chatbot → recebe uma mensagem, responde. Só isso.
- Agente → recebe uma mensagem, pensa, escolhe uma ferramenta, executa uma ação, e então responde.
Pense num agente como um assistente pessoal inteligente: ele pode pesquisar na internet, consultar um banco de dados, fazer cálculos, ou chamar uma API , tudo por conta própria, guiado por um modelo de linguagem.
Para criar um agente, você precisa de:
- Um LLM (o "cérebro") , como GPT-4o, Claude, Gemini
- Instruções (o "prompt") , definindo o comportamento
- Ferramentas (as "mãos") , funções que o agente pode usar
Agora, vamos ver como cada framework implementa isso.
2. Pydantic AI , Type Safety para Agentes
O que é?
O Pydantic AI é um framework criado pela equipe do Pydantic (sim, o mesmo Pydantic que você usa no FastAPI). Ele traz segurança de tipos e validação automática para agentes de IA. Se você já usa Pydantic ou FastAPI, vai se sentir em casa.
Instalação
pip install pydantic-aiExemplo Simples: Seu Primeiro Agente
from pydantic_ai import Agent
# Criando um agente com instruções
agent = Agent(
"openai:gpt-4o",
instructions="Seja conciso. Responda em uma frase.",
)
# Executando o agente
result = agent.run_sync("De onde vem a expressão Olá Mundo?")
print(result.output)
# Saída: A primeira uso documentado de "hello, world" foi em 1974.O que aconteceu aqui?
- Criamos um agente com o modelo GPT-4o
- Definimos instruções para ele ser conciso
- Chamamos
run_synccom uma pergunta - O agente respondeu diretamente
Exemplo com Ferramenta: Calculadora
from pydantic_ai import Agent
# Definindo uma ferramenta (tool)
def calcular(expressao: str) -> str:
"""Calcula uma expressão matemática."""
return str(eval(expressao))
# Criando o agente com a ferramenta
agent = Agent(
"openai:gpt-4o",
instructions="Use a calculadora quando precisar fazer contas.",
tools=[calcular],
)
# O agente decide quando usar a ferramenta
result = agent.run_sync("Quanto é 15 * 37 + 12?")
print(result.output)
# Saída: 567Por que usar Pydantic AI?
- Type safety , erros de tipos pegos em tempo de desenvolvimento
- Saída estruturada , garante que o LLM retorne dados no formato certo
- Dependency injection , fácil de testar e conectar com bancos de dados
- Model-agnostic , funciona com OpenAI, Anthropic, Google, etc.
3. LangChain , O Gigante do Ecossistema
O que é?
O LangChain é o framework mais popular para aplicações com LLMs, com mais de 100.000 estrelas no GitHub. Ele oferece uma enorme coleção de integrações: vector stores, document loaders, output parsers, e muito mais. Para agentes, existe o LangGraph, que adiciona workflows com grafos.
Instalação
pip install langchain langchain-openai python-dotenvExemplo Simples: Agente com Ferramentas
from langchain.agents import create_agent
from langchain_core.tools import tool
# Definindo ferramentas com o decorator @tool
@tool
def calculadora(expressao: str) -> str:
"""Resolve expressões matemáticas. Use para fazer contas."""
try:
return str(eval(expressao))
except Exception as e:
return f"Erro: {e}"
@tool
def clima(cidade: str) -> str:
"""Retorna o clima atual de uma cidade."""
# Simulando uma consulta de clima
return f"Clima em {cidade}: 25°C, ensolarado"
# Criando o agente
agent = create_agent(
"gpt-4o",
tools=[calculadora, clima],
)
# Executando
resultado = agent.invoke({
"messages": [{"role": "user", "content": "Quanto é 2 + 2? E como está o tempo em São Paulo?"}]
})
print(resultado["messages"][-1].content)Como funciona por baixo?
- O LLM recebe a mensagem do usuário
- Ele analisa quais ferramentas são necessárias
- Chama as ferramentas na ordem certa
- Monta a resposta final
O LangChain cuida de toda a orquestração , você só precisa definir as ferramentas e o prompt.
Por que usar LangChain?
- Ecossistema gigantesco , 80+ provedores de modelo, dezenas de integrações
- RAG pronto , vector stores, document loaders, text splitters
- LangGraph , para workflows complexos e estado
- LangSmith , tracing e monitoramento em produção
4. Agno , Performance e Simplicidade
O que é?
O Agno (antigamente chamado Phidata) é um framework focado em performance e simplicidade. Ele se destaca por ser extremamente rápido , instantiate agentes em microssegundos , e por ter uma API limpa e direta. É uma ótima escolha para quem quer algo mais enxuto que LangChain.
Instalação
pip install agno openaiExemplo Simples: Agente Básico
from agno.agent import Agent
from agno.models.openai import OpenAIChat
# Criando um agente
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
description="Você é um repórter entusiasmado!",
markdown=True,
)
# Executando com streaming
agent.print_response(
"Conte uma notícia recente de tecnologia.",
stream=True,
)Exemplo com Ferramentas: Pesquisa Web
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
# Agente com ferramenta de pesquisa
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
description="Você é um pesquisador inteligente.",
tools=[DuckDuckGoTools()],
show_tool_calls=True,
markdown=True,
)
agent.print_response(
"Quais são as tendências de IA em 2026?",
stream=True,
)Multi-Agent: Equipe de Especialistas
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.yfinance import YFinanceTools
# Agente de pesquisa web
web_agent = Agent(
name="Pesquisador Web",
role="Busca informações na internet",
model=OpenAIChat(id="gpt-4o"),
tools=[DuckDuckGoTools()],
instructions="Sempre inclua fontes.",
)
# Agente financeiro
finance_agent = Agent(
name="Analista Financeiro",
role="Busca dados financeiros",
model=OpenAIChat(id="gpt-4o"),
tools=[YFinanceTools()],
instructions="Analise tendências de mercado.",
)
# Executando individualmente
web_agent.print_response("Últimas notícias sobre IA", stream=True)
finance_agent.print_response("Como está a ação da Nvidia?", stream=True)Por que usar Agno?
- Performance , instantiate 500x mais rápido que LangGraph
- Simplicidade , API limpa, sem abstrações desnecessárias
- Multi-modal , suporta texto, imagens, áudio e vídeo
- AgentOS , runtime de produção com FastAPI incluído
5. Google ADK , Agentes com o Ecossistema Google
O que é?
O Google ADK (Agent Development Kit) é o framework oficial do Google para criar agentes. Ele é otimizado para modelos Gemini, mas funciona com qualquer modelo via LiteLLM. Seu grande diferencial é a orquestração multi-agente nativa e a integração direta com Vertex AI.
Instalação
pip install google-adkExemplo Simples: Agente com Ferramentas
from google.adk.agents import Agent
# Ferramenta: retorna o horário de uma cidade
def horario_atual(cidade: str) -> dict:
"""Retorna o horário atual em uma cidade.
Args:
cidade: Nome da cidade.
Returns:
Dicionário com status e horário.
"""
return {"status": "sucesso", "cidade": cidade, "horario": "14:30"}
# Ferramenta: saudação
def cumprimentar() -> str:
"""Cumprimenta o usuário."""
return "Olá! Como posso ajudar?"
# Criando o agente raiz
root_agent = Agent(
model="gemini-2.0-flash",
name="meu_assistente",
description="Um assistente que responde perguntas e dá horários.",
instruction="Responda de forma clara e amigável.",
tools=[cumprimentar, horario_atual],
)Executando com a Interface Web
# Criando o projeto
adk create meu_agente
# Rodando com interface web (para desenvolvimento)
adk webO ADK oferece uma interface web de desenvolvimento que mostra exatamente o que cada agente disse, quais ferramentas chamou, e o estado da sessão em cada passo , excelente para debugar.
Multi-Agent: Pipeline Sequencial
from google.adk.agents import LlmAgent, SequentialAgent
# Agente 1: analisa código
analisador = LlmAgent(
name="analisador_codigo",
model="gemini-2.0-flash",
description="Analisa qualidade do código Python.",
instruction="Analise o código e extraia métricas de qualidade.",
output_key="analise",
)
# Agente 2: sugere melhorias
sugeridor = LlmAgent(
name="sugeridor_melhorias",
model="gemini-2.0-flash",
description="Gera sugestões de melhoria.",
instruction="Leia a análise e gere 5 sugestões específicas.",
output_key="sugestoes",
)
# Agente 3: escreve relatório
redator = LlmAgent(
name="redator_relatorio",
model="gemini-2.0-flash",
description="Escreve o relatório final.",
instruction="Escreva um relatório profissional com as sugestões.",
output_key="relatorio",
)
# Pipeline: analisa → sugere → redige
pipeline = SequentialAgent(
name="pipeline_code_review",
sub_agents=[analisador, sugeridor, redator],
)Por que usar Google ADK?
- Otimizado para Gemini , integração nativa com os melhores modelos do Google
- Multi-agente nativo ,
SequentialAgent,ParallelAgentsem código extra - Vertex AI , deploy com um comando
- A2A Protocol , comunicação entre agentes de frameworks diferentes
- Interface web , debugging visual incluído
6. Comparativo: Qual Usar?
Quando Usar Cada Um?
Use Pydantic AI quando:
- Você já usa Pydantic ou FastAPI
- Precisa de saída estruturada validada
- Quer um agente simples e tipado
- Está construindo uma API que consome o agente
Use LangChain quando:
- Precisa de RAG (recuperação de documentos)
- Quer o maior ecossistema de integrações
- Está construindo pipelines complexos com múltiplas etapas
- Precisa de tracing e monitoramento (LangSmith)
Use Agno quando:
- Performance é prioridade
- Quer algo simples e direto sem abstrações pesadas
- Precisa de multi-modal (texto + imagem + áudio)
- Quer um runtime de produção pronto (AgentOS)
Use Google ADK quando:
- Seu projeto já usa Google Cloud ou Vertex AI
- Quer multi-agente nativo sem configurar grafos
- Prefere ter uma interface web de debugging
- Quer usar o protocolo A2A para comunicação entre agentes
7. Considerações Finais
Não existe um framework "melhor" , cada um resolve um problema diferente. A escolha depende do seu contexto:
- Começando do zero? → Comece com Pydantic AI ou Agno (mais simples)
- Precisa de RAG? → LangChain tem o melhor ecossistema para isso
- Usa Google Cloud? → Google ADK é a escolha natural
- Precisa de performance? → Agno é o mais rápido
O mais importante é entender o problema que você está resolvendo antes de escolher o framework. Muitas vezes, um agente simples com chamadas diretas à API do LLM já resolve, não precisa de framework para tudo. Essa filosofia de simplicidade também se conecta com princípios de modularização de código — nem toda funcionalidade precisa de uma nova camada de abstração. E se você quer descobrir quais ferramentas de IA estão transformando a produtividade dos desenvolvedores em 2026, confira nosso guia completo.
Artigos Relacionados
Hello World — Bem-vindo ao Elton Jefferson
O Elton Jefferson está no ar! Este post inaugural apresenta o propósito do blog, o que você pode esper ar encontrar por aqui e como este projeto foi construído.
Ferramentas de IA que Transformaram Minha Produtividade em 2026
Um overview das ferramentas de IA que mais impactaram minha rotina de desenvolvimento e escrita este ano.
Modularização de Código: Quando Dividir Não é Conquistar
Um guia prático sobre modularização de código como evitar classitis, encapsulamento desnecessário e a armadilha de múltiplas camadas para operações simples.
Receba Novidades por Email
Inscreva-se para receber os posts mais recentes diretamente na sua caixa de entrada.
Inscrever-se