Introdução
Nos últimos anos, a Inteligência Artificial deu um salto com o avanço dos modelos de linguagem. No entanto, por mais sofisticados que sejam, esses modelos ainda são limitados quando usados isoladamente: eles respondem perguntas, mas não atuam de forma autônoma em processos complexos.
É nesse ponto que entram os agentes de IA. Diferente de um modelo que apenas gera texto, os agentes podem executar tarefas, interagir entre si e alcançar objetivos de forma estruturada.
A Microsoft desenvolveu o AutoGen, um framework open source que facilita a criação de agentes colaborativos e a orquestração de suas interações. Neste artigo, vamos explorar como iniciar com o AutoGen, entender seus principais blocos e ver como aplicá-lo em um exemplo prático de finanças.
O que é AutoGen e criação de Agentes
O AutoGen é uma biblioteca que permite a criação de agentes especializados que trabalham em conjunto para resolver tarefas complexas.
Cada agente possui:
-
Nome: que define sua identidade.
-
Mensagem de sistema: instruções que determinam seu papel e comportamento.
-
Cliente de modelo (LLM): que conecta o agente a um modelo de linguagem.
O diferencial do AutoGen é a possibilidade de criar equipes de agentes, cada uma com uma função clara — como buscar dados, realizar cálculos ou sintetizar relatórios. Esses agentes trocam mensagens entre si, colaborando até chegar a um resultado final.
Criando Agentes com AutoGen
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.
1. Configurando LLM (models)
O primeiro passo para criar um agente é definir qual modelo de linguagem ele irá utilizar. O AutoGen é compatível com diferentes provedores (como OpenAI, Azure e Google), o que garante flexibilidade para adaptar a ferramenta ao contexto de cada aplicação.
A configuração do modelo é fundamental, pois ele será o motor de raciocínio e comunicação dos agentes. No exemplo abaixo, iniciamos com Google Gemini.
from autogen_ext.models.openai import OpenAIChatCompletionClient
model_client = OpenAIChatCompletionClient(
model="gemini-2.0-flash",
api_key=os.environ["GOOGLE_API_KEY"],
)
Essa etapa define qual LLM os agentes irão usar.
2. Mensagens (Messages)
Cada agente é guiado por uma mensagem de sistema, que define suas instruções de comportamento. Essa mensagem funciona como um manual de papel: explica o que o agente deve fazer, quais regras seguir e como retornar as respostas.
data_collector = AssistantAgent(
name="DataCollector",
system_message="""
Você é um agente especializado em coleta de dados financeiros.
Sua tarefa é buscar informações de ações utilizando a função `get_stock_data`.
Sempre retorne os resultados em formato JSON estruturado.
""",
model_client=model_client,
)
Por exemplo, em uma aplicação financeira, um agente pode ser instruído a coletar dados de mercado em formato JSON, enquanto outro deve interpretar tendências a partir desses dados.
3. Como definir agentes (Agentes)
Com o modelo configurado e as instruções definidas, criamos agentes especializados. O AutoGen oferece classes prontas, como o AssistantAgent (um agente autônomo) e o UserProxyAgent (um agente que representa o usuário humano).
A partir daí, podemos construir agentes com diferentes papéis:
-
Coletor de Dados: busca preços de ações ou séries macroeconômicas.
-
Analista Financeiro: aplica cálculos e interpreta indicadores.
-
Gerador de Relatórios: sintetiza os resultados e produz análises estruturadas.
Definindo Tools (Ferramentas)
Um dos maiores diferenciais do AutoGen é a capacidade dos agentes de acessarem ferramentas externas, conhecidas como tools.
As ferramentas são funções que conectam o agente a bases de dados, cálculos ou visualizações. Em finanças, isso pode significar:
-
Consultar preços de ativos em fontes como Yahoo Finance ou B3.
-
Calcular indicadores técnicos, como médias móveis ou volatilidade.
-
Gerar gráficos automáticos para apoiar a tomada de decisão.
Cada agente pode ter acesso a ferramentas diferentes, dependendo do seu papel. Isso permite criar fluxos de trabalho em que cada agente executa apenas a parte que lhe compete, colaborando com os demais para completar a tarefa.
4. Como definir times (Teams)
Os agentes podem ser organizados em times de colaboração, que funcionam como grupos de trabalho.
O AutoGen oferece estruturas que permitem definir como os agentes interagem entre si, seja em rodadas de conversação ou em fluxos controlados. Assim, um time pode ser formado por um coletor de dados, um analista e um gerador de relatórios, todos trabalhando juntos de forma coordenada.
from autogen_agentchat.teams import RoundRobinGroupChat
team = RoundRobinGroupChat(
[data_collector, financial_analyst, report_generator],
max_turns=3
)
Exemplo de Finanças
Imagine que queremos gerar um relatório financeiro da Petrobras (PETR4.SA).
-
O agente coletor de dados acessa informações históricas de preços e volumes da ação.
-
O agente analista financeiro aplica cálculos, como médias móveis, para identificar tendências.
-
O agente gerador de relatórios organiza os insights, cria gráficos e entrega uma análise estruturada.
Esse fluxo é executado de maneira autônoma: os agentes trocam informações, validam os resultados e constroem o relatório sem que o analista humano precise intervir em cada etapa.
stream = team.run_stream(task="Escreva um relatório financeiro sobre PETR4.SA")
await Console(stream)
O resultado é um processo totalmente automatizado, onde múltiplos agentes de IA colaboram para transformar dados brutos do mercado em um relatório:
---------- TextMessage (user) ---------- Escreva um relatório financeiro sobre PETR4.SA ---------- TextMessage (DataCollector) ---------- ```json { "stock_data": { "ticker": "PETR4.SA", "data": [ { "date": "2024-05-16", "open": 42.92, "high": 43.45, "low": 42.75, "close": 43.2, "volume": 22783200 }, { "date": "2024-05-17", "open": 43.4, "high": 43.48, "low": 42.94, "close": 43.07, "volume": 16449800 }, { "date": "2024-05-20", "open": 43.07, "high": 43.26, "low": 42.37, "close": 42.52, "volume": 20349400 }, { "date": "2024-05-21", "open": 42.55, "high": 43.48, "low": 42.46, "close": 43.46, "volume": 24844900 }, { "date": "2024-05-22", "open": 43.46, "high": 44.34, "low": 43.32, "close": 44.26, "volume": 31998400 } ] } } ``` ---------- TextMessage (FinancialAnalyst) ---------- ## Relatório Financeiro: PETR4.SA (22 de maio de 2024) **Visão geral:** Este relatório analisa a performance recente da ação PETR4.SA (Petrobras) com base nos dados de negociação dos últimos cinco dias (16 de maio de 2024 a 22 de maio de 2024). O foco está na identificação de tendências de preço e volume, fornecendo uma avaliação concisa do comportamento da ação. **Análise de Preço:** * **Tendência Geral:** Observamos uma tendência de alta no preço da ação PETR4.SA durante o período analisado. O preço de fechamento aumentou de R$43,20 em 16 de maio de 2024 para R$44,26 em 22 de maio de 2024. * **Volatilidade:** A ação exibiu volatilidade moderada, com variações diárias nos preços máximos e mínimos. O maior intervalo intradiário ocorreu em 22 de maio de 2024, indicando um aumento da atividade de negociação e potencial incerteza no mercado. * **Movimentos Recentes:** Nos últimos dois dias (21 e 22 de maio), a ação apresentou ganhos significativos, sugerindo um crescente sentimento de alta entre os investidores. **Análise de Volume:** * **Tendência de Volume:** O volume de negociação também mostrou uma tendência de alta. O volume aumentou consistentemente ao longo do período, atingindo o pico em 22 de maio de 2024, com 31.998.400 ações negociadas. * **Relação Preço-Volume:** O aumento no volume acompanhado do aumento do preço em 21 e 22 de maio pode indicar um forte interesse de compra e confirmação da tendência de alta. **Conclusão:** Com base nos dados disponíveis, PETR4.SA demonstra uma tendência de alta nos preços e volumes. Os investidores devem permanecer atentos a potenciais reversões de tendência e gerenciar seus riscos de acordo. **Aviso:** Este relatório é apenas para fins informativos e não deve ser considerado como aconselhamento financeiro. Os investidores devem fazer sua própria pesquisa e consultar um consultor financeiro qualificado antes de tomar qualquer decisão de investimento. ---------- TextMessage (ReportGenerator) ---------- ```tool_code import pandas as pd import matplotlib.pyplot as plt def plot_stock_data(stock_data): """Plots the stock data.""" df = pd.DataFrame(stock_data['data']) df['date'] = pd.to_datetime(df['date']) df.set_index('date', inplace=True) plt.figure(figsize=(12, 6)) plt.plot(df['close'], label='Preço de Fechamento', color='blue') plt.xlabel('Data') plt.ylabel('Preço de Fechamento (R$)') plt.title(f"Preço de Fechamento de {stock_data['ticker']} ao Longo do Tempo") plt.legend() plt.grid(True) plt.xticks(rotation=45) plt.tight_layout() plt.show() # Get the stock data from the user query stock_data = { "stock_data": { "ticker": "PETR4.SA", "data": [ { "date": "2024-05-16", "open": 42.92, "high": 43.45, "low": 42.75, "close": 43.2, "volume": 22783200 }, { "date": "2024-05-17", "open": 43.4, "high": 43.48, "low": 42.94, "close": 43.07, "volume": 16449800 }, { "date": "2024-05-20", "open": 43.07, "high": 43.26, "low": 42.37, "close": 42.52, "volume": 20349400 }, { "date": "2024-05-21", "open": 42.55, "high": 43.48, "low": 42.46, "close": 43.46, "volume": 24844900 }, { "date": "2024-05-22", "open": 43.46, "high": 44.34, "low": 43.32, "close": 44.26, "volume": 31998400 } ] } } plot_stock_data(stock_data['stock_data']) ```
Conclusão
O AutoGen representa um avanço importante na forma de aplicar Inteligência Artificial. Ele transforma modelos de linguagem em agentes autônomos, capazes de trabalhar em equipe e entregar resultados úteis.
Na análise macroeconômica e financeira, essa abordagem abre espaço para:
-
Automação de relatórios semanais de mercado.
-
Análises de séries temporais econômicas com indicadores pré-calculados.
-
Geração de dashboards interativos em tempo real.
Esse é apenas o início de uma nova era: em vez de apenas responder a perguntas, os modelos passam a agir como analistas autônomos, colaborando em processos complexos e acelerando o trabalho dos economistas e profissionais de finanças.
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ência
-
Documentação oficial do AutoGen (Microsoft): https://microsoft.github.io/autogen/stable/