Como criar Agentes de Economia com CrewAI

Introdução

O CrewAI é uma biblioteca open source desenvolvida para criar times de agentes de inteligência artificial que atuam de forma colaborativa. A ideia central é permitir que diferentes agentes desempenhem papéis específicos dentro de um fluxo de trabalho, coordenando-se para atingir objetivos mais complexos.

Cada agente pode ser configurado com um papel (role), um objetivo (goal) e um histórico contextual (backstory), o que o torna mais especializado e alinhado a determinadas tarefas. Esse modelo é especialmente útil em aplicações de economia e finanças, onde podemos montar equipes virtuais de agentes capazes de buscar dados do Banco Central, interpretar indicadores e produzir relatórios automáticos.

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

crewai logo

Funcionamento prático do CrewAI

O CrewAI é uma plataforma que permite automatizar tarefas complexas por meio de agentes inteligentes que trabalham de forma colaborativa. Seu funcionamento se organiza em quatro blocos principais: Agentes, Tarefas, Tools (Ferramentas) e Equipes, cada um com funções bem definidas para tornar o processo eficiente e estruturado.

1. Agentes

No CrewAI, um agente é um “profissional virtual” especializado em uma função específica. Cada agente é configurado por três atributos fundamentais:

  • Role (Papel): define a função principal do agente. Pode ser algo como “pesquisador econômico”, “analista de dados” ou “gerador de relatórios”. Esse atributo direciona a forma como o agente processa informações e prioriza tarefas.
  • Goal (Objetivo): descreve a meta do agente dentro do fluxo de trabalho. Por exemplo, “coletar os dados de inflação mensal do Brasil” ou “gerar um relatório resumido sobre o desempenho do PIB”. O objetivo orienta as ações do agente e estabelece um critério de sucesso mensurável.
  • Backstory (Contexto): fornece uma narrativa que guia a interpretação do agente sobre suas responsabilidades. Por exemplo, o contexto pode indicar que o agente deve focar em precisão estatística ou em clareza de comunicação, influenciando suas decisões na execução das tarefas.

Essa configuração cria agentes especializados e autônomos, capazes de executar tarefas complexas e interagir com outros agentes de forma coordenada.

2. Tarefas

As tarefas no CrewAI representam ações concretas que cada agente deve realizar. Cada tarefa é definida por três elementos:

  1. Descrição: explica detalhadamente o que precisa ser feito, garantindo que o agente entenda exatamente a ação requerida.
  2. Resultado esperado: define o output da tarefa, que pode ser um dado, uma análise ou um relatório, tornando explícito o que se espera do agente.
  3. Associação ao agente: cada tarefa é atribuída a um agente específico, conectando o conhecimento e a função do agente à ação desejada.

Um exemplo prático seria uma tarefa onde o agente precisa “buscar a inflação acumulada em 12 meses usando a API do Banco Central” e o resultado esperado é o valor correto do indicador. Essa formalização garante que o processo seja transparente e que os resultados sejam consistentes.

3. Tools (Ferramentas)

As tools são componentes reutilizáveis que permitem aos agentes interagir com o mundo externo — APIs, bases de dados, scripts, serviços de armazenamento, geradores de relatórios, executores de jobs, etc. No CrewAI as tools são tratadas como recursos first-class: registradas, versionadas e invocáveis por agentes.

Como funcionam na prática

  • Cada tool expõe uma interface clara (entradas, saídas, erros esperados, limites de tempo).
  • As agents chamam a tool através dessa interface: enviam parâmetros e recebem um resultado estruturado.
  • A Crew mantém um registro (registry) das tools disponíveis para descoberta e autorização.

Metadados típicos de uma tool

  • nome, tipo (API/DB/script), esquema de entrada/saída, requisitos de autenticação, timeout, política de retry, versão, e tags de uso.
  • além disso, cada tool costuma ter um contrato de idempotência (para evitar duplicação) e um conector de mock para testes.

Mapeamento entre tarefas e tools

  • Ao definir uma tarefa, indique a tool(s) preferencial(is) a ser(em) usada(s).
  • Se a tool falhar, o agente pode ter alternativas (fallbacks), ou a Crew pode re-orquestrar para outro agente/tool.
  • Resultado de uma tool deve ser persistido no workspace compartilhado para permitir que outros agentes o consumam.

agents crewai

4. Equipe (Crew)

A equipe, chamada de Crew, é a camada de orquestração do sistema. Ela organiza os agentes e suas tarefas em um fluxo de trabalho eficiente. A Crew garante que:

  • Os agentes colaborem de forma coordenada, evitando sobreposição de funções.
  • As tarefas sejam executadas na ordem correta, respeitando dependências entre ações.
  • O processo seja iniciado e monitorado por um comando central, normalmente através do método .kickoff(), que dispara o ciclo completo.

Por exemplo, ao iniciar a Crew com .kickoff(), os agentes responsáveis por coletar dados, processar informações e gerar relatórios passam a executar suas tarefas em sequência ou de forma paralela, dependendo da configuração, e entregam o resultado final de maneira integrada.

processo crewai

Passo 1: Configuração no Google Colab

# Instalar CrewAI e dependências
!pip install crewai langchain_google_genai python-bcb --quiet
from langchain_google_genai import ChatGoogleGenerativeAI
from crewai import Agent, Task, Crew, LLM
from crewai.tools import tool
from bcb import sgs
import pandas as pd

Passo 2: Configurar Gemini 2.0 Flash

import getpass, os

if not os.environ.get("GOOGLE_API_KEY"):
    os.environ["GOOGLE_API_KEY"] = getpass.getpass("Enter API key for Google Gemini: ")

llm = LLM(model='gemini/gemini-2.0-flash',
          api_key=os.environ["GOOGLE_API_KEY"]
          )

Passo 3: Criar uma Função de Consulta ao IPCA

import pandas as pd
from bcb import sgs
import logging

# Configuração de log para monitorar o uso da tool
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")

@tool('get_ipca_12m')
def get_ipca_12m(series_id: int = 433, start: str = "2015-01-01") -> dict:
    """
    Consulta o IPCA no SGS/BCB e calcula a variação acumulada em 12 meses.

    Parâmetros
    ----------
    series_id : int
        ID da série do SGS (default=433 para IPCA).
    start : str
        Data de início no formato YYYY-MM-DD.

    Retorno
    -------
    dict
        Exemplo:
        {
            "series_id": 433,
            "date": "2025-08-31",
            "ipca_12m": 3.45
        }
    """
    try:
        # Baixar série do SGS
        logging.info(f"Consultando série {series_id} a partir de {start}")
        ipca = sgs.get({ "ipca": series_id }, start=start)

        if ipca.empty:
            raise ValueError("Nenhum dado retornado pela API do SGS.")

        # Calcular inflação acumulada em 12 meses
        dfr = ipca.rolling(12)
        i12 = dfr.apply(lambda x: (1 + x/100).prod() - 1).dropna() * 100

        # Selecionar último valor disponível
        ultimo = i12.dropna().tail(1)

        if ultimo.empty:
            raise ValueError("Não foi possível calcular a inflação em 12 meses.")

        resultado = {
            "series_id": series_id,
            "date": ultimo.index[0].strftime("%Y-%m-%d"),
            "ipca_12m": round(float(ultimo["ipca"].values[0]), 2)
        }

        logging.info(f"Resultado obtido: {resultado}")
        return resultado

    except Exception as e:
        logging.error(f"Erro ao consultar IPCA: {e}")
        return { "error": str(e) }

Passo 4: Definir os Agentes

# Agente 1: coleta dados
coletor = Agent(
    role="Pesquisador Econômico",
    goal="Coletar dados de inflação (IPCA) do SGS/BCB",
    backstory="Especialista em buscar dados de fontes oficiais",
    tools = [get_ipca_12m],
    llm = llm
)

# Agente 2: analisa dados
analista = Agent(
    role="Analista de Conjuntura",
    goal="Interpretar os dados do IPCA e explicar o resultado",
    backstory="Economista com experiência em inflação e política monetária",
    llm = llm
)

Passo 5: Criar Tarefas e Equipe

# Tarefa 1: coleta de dados
tarefa_coleta = Task(
    description="Buscar a inflação acumulada em 12 meses usando a API do BCB",
    expected_output="Valor da inflação em 12 meses",
    agent=coletor
)

# Tarefa 2: análise
tarefa_analise = Task(
    description="Interpretar a inflação em 12 meses e explicar em linguagem clara",
    expected_output="Análise textual",
    agent=analista
)

# Criar equipe (Crew)
crew = Crew(
    agents=[coletor, analista],
    tasks=[tarefa_coleta, tarefa_analise]
)
resultado = crew.kickoff()
print(resultado)

Conclusão

O CrewAI oferece uma forma clara e modular de construir equipes de agentes inteligentes. Enquanto cada agente possui uma função e responsabilidade bem definidas, as tarefas estruturam as ações esperadas e a equipe garante a coordenação.

Aplicado ao campo econômico, esse modelo permite criar pipelines automáticos para:

  • Consultar e processar dados em tempo real.
  • Executar previsões de séries temporais.
  • Gerar relatórios automatizados de conjuntura econômica.

Essa abordagem representa um avanço importante na automação de análises, colocando agentes para trabalharem em conjunto como uma equipe de economistas digitais.

Quer aprender mais?

Conheça nossa Formação do Zero à Análise de Dados Econômicos e Financeiros usando Python e Inteligência Artificial. Aprenda do ZERO a coletar, tratar, construir modelos e apresentar dados econômicos e financeiros com o uso de Python e IA.

Referências

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como criar Agentes de Economia com CrewAI

O CrewAI é uma biblioteca open source que permite criar times de agentes de IA atuando de forma colaborativa. Cada agente recebe um papel, um objetivo e um histórico contextual, tornando-o especializado para tarefas específicas. Na área de economia e finanças, isso possibilita montar equipes virtuais capazes de consultar dados do Banco Central, interpretar indicadores e gerar relatórios automáticos de forma eficiente.

Como criar Agentes de Econom com Google ADK

A inteligência artificial está evoluindo dos modelos que apenas respondem comandos para agentes capazes de agir, decidir e colaborar. O Agent Development Kit (ADK), do Google, surge como uma ferramenta para criar times de agentes, unindo LLMs a fluxos de trabalho bem definidos. Para economistas e cientistas de dados econômicos, isso abre espaço para automatizar rotinas complexas — como consultas em APIs e geração de relatórios — de maneira mais inteligente e autônoma.

Criando um dashboard das previsões do Relatório Focus

O Relatório Focus, divulgado semanalmente pelo Banco Central, reúne as expectativas do mercado para variáveis-chave da economia brasileira, como inflação, câmbio, PIB e Selic. Neste projeto, transformamos esses dados em um dashboard interativo para acompanhar a acurácia das previsões ao longo do tempo.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.