\n\n\n\n Minha opinião de abril de 2026: Agentes de IA finalmente estão fazendo coisas. Agent 101 \n

Minha opinião de abril de 2026: Agentes de IA finalmente estão fazendo coisas.

📖 14 min read2,793 wordsUpdated Apr 5, 2026

Olá, agente em treinamento! Emma aqui, de volta ao agent101.net. Você consegue acreditar que já é abril de 2026? Parece que foi ontem que estávamos todos perdendo a cabeça com o lançamento inicial do ChatGPT, e agora estamos falando sobre agentes de IA que realmente podem fazer coisas por nós. É incrível.

Eu tenho passado noites muito tarde (e provavelmente gastando muito dinheiro em café) experimentando diferentes estruturas de agentes. E, honestamente, por um tempo, senti como se estivesse afundando em um mar de siglas e documentação complexa. Cada tutorial que eu encontrava parecia supor que eu tinha um doutorado em ciência da computação. Frustrante, né?

É por isso que hoje eu quero falar sobre algo super específico e, eu acho, incrivelmente prático para quem está apenas começando neste mundo: **construir seu primeiro agente de IA para automatizar uma tarefa simples de pesquisa na web.** Não estamos buscando Skynet aqui, pessoal. Estamos mirando em um ajudante digital útil que pode economizar alguns cliques e um pouco de esforço mental. Pense nisso como seu pesquisador júnior pessoal, pronto para buscar informações para você.

Isso não é sobre uma explicação vaga e de alto nível. Vamos colocar a mão na massa e realmente construir algo. E acredite em mim, se eu consegui descobrir isso depois de excluir acidentalmente minha pasta de projeto inteira três vezes na semana passada, você também consegue.

Por Que Pesquisa na Web? Porque Todos Fazemos (Ou Deveríamos!)

Ok, vamos ser realistas. Quantas vezes você se pega abrindo um navegador, digitando algo no Google, clicando em alguns links e, em seguida, talvez copiando e colando algum texto? Seja procurando a melhor cafetería local, pesquisando um novo gadget, ou apenas tentando lembrar o nome daquele ator de aquele filme, a pesquisa na web é uma parte enorme de nossas vidas digitais.

E é um projeto inicial perfeito para um agente de IA por algumas razões:

  • **É tangível:** Você pode ver claramente o agente acessando sites e trazendo informações.
  • **É iterativo:** Você pode começar simples e adicionar complexidade.
  • **Destaca as capacidades do agente:** Demonstra como um agente pode interagir com ferramentas externas (como um navegador web) e processar informações.
  • **É genuinamente útil:** Imagine um agente que pudesse rapidamente resumir as últimas notícias sobre um tópico do seu interesse, ou compilar uma lista de especificações de um produto que você está considerando.

Para este tutorial, vamos nos concentrar em uma tarefa muito específica, ligeiramente mundana, mas incrivelmente comum: **encontrar o preço atual das ações e uma breve descrição da empresa para um determinado ticker de ações.**

As Ferramentas que Precisaremos (Não Entre em Pânico, Elas são Amigáveis!)

Vamos manter isso o mais simples possível. Aqui está o que usaremos:

  • **Python:** Nossa linguagem de programação escolhida. Se você ainda não a instalou, agora é uma ótima hora. A versão 3.9+ está boa.
  • **Uma API de Modelo de Linguagem Grande (LLM):** Usaremos a API da OpenAI para este exemplo, pois é amplamente acessível e bem documentada. Você precisará de uma chave da API. Sim, custa um pouco, mas para pequenos projetos como este, geralmente é centavos.
  • **CrewAI:** Esta é a estrutura de agente que usaremos. É relativamente nova, mas incrivelmente intuitiva para iniciantes, focando em papéis, tarefas e processos. Eu a encontrei muito mais fácil de entender do que algumas das outras por aí.
  • **beautifulsoup4 e requests:** Bibliotecas Python para web scraping. Usaremos essas para acessar um site e extrair informações.

Antes de mergulharmos no código, certifique-se de ter o Python instalado. Em seguida, abra seu terminal ou prompt de comando e execute esses comandos:


pip install crewai openai beautifulsoup4 requests python-dotenv

A biblioteca `python-dotenv` serve apenas para manter sua chave da API fora do seu arquivo principal de código, o que é uma boa prática!

Definindo o Cenário: A Missão do Nosso Agente

A missão do nosso agente é simples:

  1. Receber um símbolo de ticker de ações (por exemplo, “GOOGL” para o Google).
  2. Usar uma ferramenta de busca na web para encontrar uma fonte confiável de informações atuais sobre ações (como Yahoo Finance ou um site similar).
  3. Extrair o preço atual das ações e uma breve descrição da empresa.
  4. Apresentar essas informações de maneira clara e concisa.

Parece fácil, certo? Essa é a beleza de começar simples. Isso constrói confiança.

Passo 1: Obtenha Sua Chave da API e Prepare o Ambiente

Primeiro, vá para a página de chaves da API da OpenAI e gere uma nova chave secreta. Copie-a em um lugar seguro imediatamente, pois você não poderá vê-la novamente.

Em seguida, crie um arquivo chamado `.env` no mesmo diretório onde seu script Python estará. Dentro dele, coloque:


OPENAI_API_KEY="your_openai_api_key_here"

Substitua `”your_openai_api_key_here”` pela chave real que você acabou de gerar. Isso mantém sua chave segura e separada do seu código.

Passo 2: Definindo Nosso Agente e Suas Ferramentas

Com o CrewAI, definimos agentes dando a eles um `papel`, `meta` e `história de fundo`. Isso ajuda o LLM a entender *quem* ele é e *o que* supõe fazer. Também damos a ele `ferramentas` – funções que ele pode chamar para interagir com o mundo exterior.

Vamos começar nosso script Python (vou chamá-lo de `stock_agent.py`):

“`python
from crewai import Agent, Task, Crew, Process
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
import os
import requests
from bs4 import BeautifulSoup

# Carregar variáveis de ambiente
load_dotenv()
openai_api_key = os.getenv(“OPENAI_API_KEY”)

# Inicializar o LLM
llm = ChatOpenAI(model=”gpt-4-turbo-preview”, temperature=0.7, openai_api_key=openai_api_key)

# — Definir Ferramentas —
def search_web_for_stock_info(ticker: str) -> str:
“””Pesquisa na web informações sobre ações para um ticker específico, focando no Yahoo Finance.”””
try:
search_url = f”https://finance.yahoo.com/quote/{ticker}”
headers = {
“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36″
}
response = requests.get(search_url, headers=headers)
response.raise_for_status() # Levanta uma exceção para erros HTTP
return response.text
except requests.exceptions.RequestException as e:
return f”Erro ao pesquisar informações sobre ações: {e}”

def extract_stock_data(html_content: str) -> dict:
“””Extrai o preço da ação e a descrição da empresa do HTML do Yahoo Finance.”””
soup = BeautifulSoup(html_content, ‘html.parser’)

price = “N/A”
company_name = “N/A”
description = “N/A”

# Tentar encontrar o preço (isso pode precisar de ajustes com base na estrutura sempre mutável do Yahoo Finance)
try:
# Procure o elemento de preço atual. Isso geralmente está em um span específico.
# O HTML do Yahoo Finance muda, então este é um seletor comum, mas pode quebrar.
price_tag = soup.find(‘fin-streamer’, {‘data-field’: ‘regularMarketPrice’})
if price_tag:
price = price_tag.text.strip()
except Exception as e:
print(f”Não foi possível encontrar o preço: {e}”)

# Tentar encontrar o nome/descrição da empresa (busca mais genérica)
try:
# Muitas vezes, o nome da empresa está no título ou em uma tag meta específica
title_tag = soup.find(‘title’)
if title_tag:
title_text = title_tag.text
if ‘|’ in title_text:
company_name = title_text.split(‘|’)[0].strip()
else:
company_name = title_text.replace(“Stock Price, News, Quote & History”, “”).strip()

# Uma maneira mais robusta de obter uma descrição pode envolver a busca por parágrafos específicos
# Esta é uma tentativa muito básica. Para um agente real, você desejaria uma extração mais sofisticada.
description_paragraph = soup.find(‘p’, class_=’description’) # Classe de exemplo, pode não existir
if description_paragraph:
description = description_paragraph.text.strip()
else:
# Fallback: procurar parágrafos gerais na área do conteúdo principal
main_content = soup.find(‘div’, id=’Main-Financials’) or soup.find(‘div’, id=’quote-header-info’)
if main_content:
paragraphs = main_content.find_all(‘p’)
if paragraphs:
description = paragraphs[0].text.strip() # Pegue o primeiro parágrafo como uma descrição geral
except Exception as e:
print(f”Não foi possível encontrar informações da empresa: {e}”)

return {
“price”: price,
“company_name”: company_name,
“description”: description
}

# Definições de Ferramentas CrewAI
from crewai_tools import Tool

web_search_tool = Tool(
name=”Busca na Web por Informações de Ações”,
func=search_web_for_stock_info,
description=”Útil para encontrar o conteúdo HTML bruto da página de ações do Yahoo Finance.”
)

data_extraction_tool = Tool(
name=”Extrair Dados da Ação”,
func=extract_stock_data,
description=”Útil para analisar o conteúdo HTML e extrair o preço da ação e uma breve descrição da empresa.”
)

# — Definir Agentes —
researcher = Agent(
role=’Pesquisador Financeiro’,
goal=’Coletar o preço atual da ação e uma descrição concisa da empresa para um ticker específico.’,
backstory=”””Você é um pesquisador financeiro especialista com um talento para encontrar rapidamente informações precisas sobre ações online.
Você prioriza fontes financeiras oficiais como o Yahoo Finance.”””,
verbose=True,
allow_delegation=False,
llm=llm,
tools=[web_search_tool, data_extraction_tool]
)

# — Definir Tarefas —
research_task = Task(
description=(
“Pesquise as informações sobre a ação para ‘{ticker}’. ”
“Primeiro, use a ferramenta ‘Busca na Web por Informações de Ações’ para obter o conteúdo HTML do Yahoo Finance. ”
“Depois, use a ferramenta ‘Extrair Dados da Ação’ para analisar o HTML e obter o preço atual e uma breve descrição da empresa. ”
“Por fim, compile isso em um relatório estruturado.”
),
expected_output=(
“Um objeto JSON contendo ‘ticker’, ‘company_name’, ‘price’ e ‘description’.”
),
agent=researcher
)

# — Definir a Equipe —
financial_crew = Crew(
agents=[researcher],
tasks=[research_task],
process=Process.sequential, # As tarefas são executadas uma após a outra
verbose=True
)

# — Executar a Equipe —
if __name__ == “__main__”:
print(“Bem-vindo ao Agente de Informações sobre Ações!”)
ticker_input = input(“Por favor, insira um ticker de ação (por exemplo, GOOGL, MSFT, AAPL): “).upper()

print(f”\n— Iniciando Agente para {ticker_input} —“)
result = financial_crew.kickoff(inputs={‘ticker’: ticker_input})

print(“\n— Relatório Final do Agente —“)
print(result)
“`

Uma Breve Explicação do Código

“`html

  • **`load_dotenv()` e `ChatOpenAI`**: Configura nossa conexão LLM usando sua chave de API.
  • **`search_web_for_stock_info(ticker)`**: Esta é nossa primeira ferramenta personalizada. Ela pega um ticker de ações, constrói uma URL do Yahoo Finance e busca o HTML bruto. Eu adicionei um cabeçalho básico `User-Agent` – alguns sites bloqueiam solicitações sem ele.
  • **`extract_stock_data(html_content)`**: Aqui as coisas ficam um pouco mais “bagunçadas.” Usamos `BeautifulSoup` para analisar o HTML. Encontrar elementos exatos como o preço da ação pode ser complicado porque os sites mudam sua estrutura HTML. Eu coloquei um seletor comum para o Yahoo Finance, mas esteja ciente de que a raspagem de sites é um jogo constante de gato e rato. Esta função tenta obter o preço, o nome da empresa e uma descrição geral.
  • **`Tool`**: A maneira da CrewAI de envolver nossas funções Python para que o LLM saiba como e quando usá-las.
  • **`Agent`**: Definimos nosso agente `researcher`. Observe o `role`, `goal` e `backstory`. Estes são cruciais para guiar o comportamento do LLM. Também damos a ele nossas `tools` personalizadas.
  • **`Task`**: Este é o trabalho específico que nosso agente precisa realizar. A `description` diz ao agente exatamente quais passos seguir, incluindo quais ferramentas usar. A `expected_output` ajuda a guiar o LLM a formatar sua resposta final.
  • **`Crew`**: Isso orquestra nossos agentes e tarefas. Para este exemplo simples, temos apenas um agente e uma tarefa, executando `Process.sequential`.
  • **`financial_crew.kickoff()`**: Aqui é onde a mágica acontece! Passamos nossa entrada (o ticker) para a equipe, e ela começa a executar as tarefas.

Eu sei que a função `extract_stock_data` pode parecer um pouco intimidadora, e é a parte mais frágil de qualquer agente de raspagem de sites. Os sites mudam, e suas estruturas HTML se deslocam. Mas para um agente iniciante, isso mostra como interagir com dados web reais.

Executando Seu Primeiro Agente!

Salve o código como `stock_agent.py` (ou como preferir, apenas certifique-se de que está na mesma pasta que seu arquivo `.env`). Em seguida, abra seu terminal ou prompt de comando, navegue até esse diretório e execute:


python stock_agent.py

O script irá solicitar que você insira um ticker de ações. Tente “GOOGL”, “MSFT” ou “AAPL”.

Você verá uma enorme quantidade de saída! Isso é a configuração `verbose=True` da CrewAI mostrando o que o agente está pensando, quais ferramentas está chamando e os resultados que está obtendo. Isso é incrivelmente útil para depuração e para entender o monólogo interno do agente.

Após um momento, você deverá ver o relatório final do agente, espero que com o preço atual da ação e uma descrição!

Minha Experiência e O Que Esperar

Quando eu executei algo semelhante pela primeira vez, eu fiquei genuinamente surpreso. Parecia um pouco mágica, ver o LLM decidir: “Ok, eu preciso encontrar informações. Eu tenho uma `web_search_tool`. Eu deveria usar isso primeiro.” E então: “Agora eu tenho HTML. Eu preciso analisá-lo. Eu tenho um `data_extraction_tool` para isso!” É essa seleção inteligente de ferramentas que realmente torna os agentes poderosos.

Você pode encontrar problemas:

  • **Mudanças no Site:** Yahoo Finance, como qualquer site, pode atualizar seu HTML. Se a função `extract_stock_data` de repente parar de encontrar o preço, é provável que o ID ou a classe do elemento HTML tenha mudado. Este é um desafio comum na raspagem de sites.
  • **Limitação de Taxa:** Se você executar isso muitas vezes e muito rapidamente, sites ou a API do OpenAI podem bloquear você temporariamente.
  • **Alucinações do LLM:** Embora menos provável com chamadas de ferramenta específicas, o LLM pode às vezes interpretar incorretamente instruções ou os dados que recebe.

Não fique desanimado! A depuração faz parte da diversão (na maior parte). A configuração `verbose=True` é seu melhor amigo aqui, mostrando exatamente o que o agente está fazendo e pensando.

Conselhos Práticos para Sua Jornada com Agentes

Assim, você construiu seu primeiro agente básico de pesquisa na web. E agora?

“““html

  1. **Comece Simples:** Sério, este é o maior conselho. Não tente construir um sistema complexo de múltiplos agentes no primeiro dia. Escolha uma pequena tarefa automatizável.
  2. **Defina Metas e Ferramentas Claras:** Quanto mais específico você for sobre o `objetivo`, `papel` e a `descrição` das suas `ferramentas`, melhor o LLM se sairá.
  3. **Abrace a Iteração:** Sua primeira versão não será perfeita. Execute-a, veja o que falha, refine suas ferramentas, ajuste seus prompts e tente novamente.
  4. **Explore Outras Ferramentas:** CrewAI tem muitas ferramentas integradas (como um `BrowserTools` genérico ou `ScrapeWebsiteTool`) que você pode achar úteis para cenários mais complexos, potencialmente simplificando suas funções `search_web_for_stock_info` e `extract_stock_data` no futuro.
  5. **Pense em Tratamento de Erros:** Em um agente de produção, você gostaria de um tratamento de erros mais robusto nas suas ferramentas (por exemplo, e se o site estiver fora do ar ou o elemento não for encontrado?).
  6. **Considere Equipes de Múltiplos Agentes:** Uma vez que você esteja confortável, pense em como poderia dividir uma tarefa mais complexa em papéis para múltiplos agentes. Por exemplo, um agente para “encontrar fontes”, outro para “extrair dados” e um terceiro para “resumir e relatar”.

Este pequeno agente de pesquisa de ações é apenas o começo. Imagine um agente que pudesse:

  • Monitorar manchetes de notícias para palavras-chave específicas e resumi-las.
  • Comparar especificações de produtos em vários sites de comércio eletrônico.
  • Ajudá-lo a planejar uma viagem encontrando detalhes de voos, preços de hotéis e atrações locais.

As possibilidades são genuinamente empolgantes. Isso não é apenas sobre tecnologia legal; é sobre construir assistentes digitais personalizados que realmente podem tornar nossas vidas um pouco mais fáceis. E isso, meus amigos, é o motivo pelo qual estou tão obcecada por essas coisas.

Vá em frente, construa e quebre coisas! É assim que aprendemos. E, como sempre, se você construir algo legal, compartilhe comigo nas redes sociais ou nos comentários abaixo!

Feliz construção de agentes!

Emma Walsh

Blogger em agent101.net

“`

🕒 Published:

🎓
Written by Jake Chen

AI educator passionate about making complex agent technology accessible. Created online courses reaching 10,000+ students.

Learn more →

Leave a Comment

Your email address will not be published. Required fields are marked *

Browse Topics: Beginner Guides | Explainers | Guides | Opinion | Safety & Ethics

More AI Agent Resources

AgntboxClawdevClawgoAgntkit
Scroll to Top