\n\n\n\n Eu Criei um Agente de IA para Resumir as Minhas Notícias Agent 101 \n

Eu Criei um Agente de IA para Resumir as Minhas Notícias

📖 15 min read2,980 wordsUpdated Apr 1, 2026

Olá, agente em treinamento! Emma aqui, de volta ao agent101.net. Hoje, quero falar sobre algo que tem gerado muitas conversas nos meus canais do Slack e em projetos pessoais nos últimos meses: fazer um agente de IA realmente fazer algo útil para você, de forma consistente, sem precisar de um doutorado em engenharia de prompts ou de um servidor no seu armário. Especificamente, vamos explorar como construir um agente de IA super simples, de tarefa única, que busca e resume notícias específicas para você – um pequeno caçador de notícias, se preferir.

Eu sei, eu sei. “Agente de IA” ainda soa como algo saído de um filme de ficção científica, certo? Ou talvez você tenha experimentado o ChatGPT e se perguntado: “Ok, mas como faço para que essa coisa funcione sozinha, sem que eu tenha que digitar cada comando?” Esse é exatamente o espaço que vamos preencher hoje. Meu objetivo com este artigo é desmistificar o processo e mostrar a você que construir um pequeno agente de IA focado não é tão assustador quanto parece. Pense nisso como ensinar seu assistente digital um truque muito específico e repetível.

Minha própria jornada em relação aos agentes começou, honestamente, a partir da pura frustração. Eu estava gastando tempo demais garimpando notícias de tecnologia, tentando encontrar menções de atualizações específicas de modelos de IA ou novas estruturas de agentes. Eu havia configurado alertas do Google, mas eles costumavam ser muito amplos ou lentos. Eu queria algo que entendesse o contexto, filtrasse o ruído e me desse um resumo conciso. Então, como qualquer bom programador preguiçoso (que infelizmente me orgulho de ser!), pensei: “Deve haver uma forma de automatizar isso com uma IA.”

E havia! Após algumas tentativas frustradas, algumas dúvidas sobre chaves de API, e um bom tanto de tentativa e erro com diferentes modelos de linguagem de larga escala (LLMs), encontrei um padrão que funciona. Não é um sistema de múltiplos agentes coordenando tarefas complexas, nem vai escrever seu próximo romance. Mas é um ponto de entrada perfeito para entender como essas peças se encaixam para criar algo genuinamente útil.

Por que um Agente “Caçador de Notícias”?

Quando você está começando, escolher um projeto que seja muito ambicioso é uma forma garantida de se desanimar. É por isso que eu recomendo começar com um agente de tarefa única. Nosso agente “Caçador de Notícias” é perfeito por algumas razões:

  • Objetivo Claro: Encontrar notícias específicas, resumi-las. Simples.
  • Resultado Tangível: Você recebe um resumo que pode realmente ler.
  • Depende de Dados Externos: Ensina como os agentes interagem com o mundo exterior (buscando informações).
  • Usa LLMs para Interpretação: O núcleo da maioria dos agentes é um LLM entendendo e gerando texto.
  • Repetível: Uma vez construído, você pode executá-lo diariamente, semanalmente, ou quando quiser.

Imagine acordar e seu agente já ter montado um breve resumo de todos os últimos avanços em “ética de IA em modelos de linguagem de larga escala” ou “novos desenvolvimentos em sensores de direção autônoma”. Chega de rolagem infinita por blogs de tecnologia genéricos. Esse é o sonho, e é totalmente alcançável.

A Anatomia do Nosso Simples Agente Caçador de Notícias

Todo agente de IA, não importa o quão simples, geralmente tem alguns componentes centrais. Para o nosso Caçador de Notícias, aqui está o que precisaremos:

  1. O “Cérebro” (LLM): Este é o nosso modelo de linguagem de larga escala. Ele entenderá o que estamos procurando e resumirá as informações. Vou usar os modelos da OpenAI para este exemplo porque são amplamente acessíveis e têm boa documentação, mas você poderia usar o Claude da Anthropic ou até mesmo um modelo open-source local se estiver se sentindo aventureiro.
  2. Os “Olhos” (Buscador de Informações): Nosso agente precisa de uma forma de obter informações da internet. Para notícias, um leitor de RSS ou uma biblioteca simples de web scraping fará o trabalho. Vamos mantê-lo simples com uma API de notícias por consistência.
  3. As “Instruções” (Prompt): É assim que dizemos ao LLM o que fazer. É crucial para obter bons resultados.
  4. O “Orquestrador” (Script em Python): Um script simples para amarrar tudo, dizendo ao agente quando buscar, quando e onde emitir os resultados.

Não se preocupe se esses termos parecerem um pouco demais neste momento. Vamos detalhar cada parte.

O Que Você Precisará Antes de Começarmos

  • Python: Certifique-se de ter o Python 3.8+ instalado.
  • Uma Chave de API da OpenAI: Você pode obter uma na plataforma da OpenAI. Há um nível gratuito para testes iniciais, mas você provavelmente precisará adicionar um método de pagamento para uso contínuo. Mantenha esta chave em segredo!
  • Uma Chave de API de Notícias (Opcional, mas Recomendado): Serviços como NewsAPI.org ou GNews API oferecem níveis gratuitos que são perfeitos para isso. Facilita a obtenção de dados estruturados de notícias em comparação com scraping de website bruto. Para este tutorial, vou assumir que você tem uma chave do NewsAPI.org.
  • Editor de Texto Básico: VS Code, Sublime Text, ou até o Bloco de Notas servirão.

Passo 1: Configurando Seu Ambiente

Primeiro, vamos criar um novo diretório para nosso projeto e instalar as bibliotecas necessárias. Abra o seu terminal ou prompt de comando:


mkdir news_hound_agent
cd news_hound_agent
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
pip install openai requests python-dotenv

Estamos instalando:

  • openai: Para interagir com os modelos da OpenAI.
  • requests: Para fazer requisições HTTP para a API de notícias.
  • python-dotenv: Para armazenar nossas chaves de API com segurança.

Em seguida, crie um arquivo chamado .env no seu diretório news_hound_agent e adicione suas chaves de API:


OPENAI_API_KEY="sua_chave_de_api_openai_aqui"
NEWS_API_KEY="sua_chave_de_api_newsapi_aqui"

Substitua os espaços reservados pelas suas chaves reais. Não se esqueça de adicionar .env ao seu .gitignore se algum dia colocar este projeto em um repositório Git!

Passo 2: Construindo o Buscador de Informações (Os “Olhos”)

Vamos criar um arquivo Python chamado news_fetcher.py. Este módulo será responsável por buscar os artigos de notícias.


# news_fetcher.py
import requests
import os
from dotenv import load_dotenv

load_dotenv() # Carrega as variáveis de ambiente do arquivo .env

NEWS_API_KEY = os.getenv("NEWS_API_KEY")
NEWS_API_URL = "https://newsapi.org/v2/everything"

def fetch_news(query, language='pt', sort_by='relevancy', page_size=10):
 """
 Busca artigos de notícias do NewsAPI.org baseado em uma consulta.
 """
 if not NEWS_API_KEY:
 print("Erro: NEWS_API_KEY não encontrada no arquivo .env.")
 return []

 params = {
 'q': query,
 'language': language,
 'sortBy': sort_by,
 'pageSize': page_size,
 'apiKey': NEWS_API_KEY
 }

 try:
 response = requests.get(NEWS_API_URL, params=params)
 response.raise_for_status() # Levanta uma exceção para erros HTTP (4xx ou 5xx)
 data = response.json()
 articles = data.get('articles', [])
 return articles
 except requests.exceptions.RequestException as e:
 print(f"Erro ao buscar notícias: {e}")
 return []

if __name__ == "__main__":
 # Uso de exemplo ao executar este script diretamente
 search_term = "Agentes de IA para produtividade pessoal"
 articles = fetch_news(search_term, page_size=5)
 if articles:
 print(f"Encontrados {len(articles)} artigos para '{search_term}':")
 for i, article in enumerate(articles):
 print(f"{i+1}. {article.get('title', 'Sem Título')} - {article.get('url', 'Sem URL')}")
 else:
 print(f"Nenhum artigo encontrado para '{search_term}'.")

Este script define uma função fetch_news que recebe uma consulta (por exemplo, “ética de IA”) e retorna uma lista de dicionários de artigos. Cada dicionário contém informações como título, descrição e URL. O bloco if __name__ == "__main__": é apenas para testar este módulo de forma isolada.

Passo 3: Criando o Prompt (As “Instruções”)

É aqui que a mágica do LLM entra em cena. Quanto melhor seu prompt, melhor será seu resumo. Vamos criar um arquivo chamado summarizer.py.


# summarizer.py
from openai import OpenAI
import os
from dotenv import load_dotenv

load_dotenv()

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def summarize_articles(articles, specific_focus="general overview"):
 """
 Resume uma lista de artigos de notícias usando um modelo de linguagem da OpenAI.
 O parâmetro specific_focus ajuda a guiar o resumo.
 """
 if not articles:
 return "Nenhum artigo fornecido."

 # Prepara os artigos para o modelo de linguagem
 article_texts = []
 for i, article in enumerate(articles):
 title = article.get('title', 'Sem Título')
 description = article.get('description', 'Sem Descrição')
 url = article.get('url', 'Sem URL')
 article_texts.append(f"Artigo {i+1}:\nTítulo: {title}\nDescrição: {description}\nURL: {url}\n---")

 combined_text = "\n\n".join(article_texts)

 # O prompt para nosso modelo de linguagem
 prompt = f"""
 Você é um analista de notícias especializado. Sua tarefa é revisar os seguintes artigos de notícias e fornecer um resumo conciso.
 O resumo deve focar especificamente em "{specific_focus}".
 Extraia os principais desenvolvimentos, tendências e anúncios importantes relacionados a esse foco.
 Mantenha o resumo com menos de 300 palavras, utilizando uma linguagem clara e profissional.
 Se um artigo não for relevante para o foco específico, você pode mencionar brevemente o porquê ou omiti-lo.

 Artigos de Notícias:
 {combined_text}

 Resumo focando em "{specific_focus}":
 """

 try:
 response = client.chat.completions.create(
 model="gpt-3.5-turbo", # Você pode usar "gpt-4" para melhor qualidade, mas é mais caro
 messages=[
 {"role": "system", "content": "Você é um resumidor de notícias útil e conciso."},
 {"role": "user", "content": prompt}
 ],
 max_tokens=500, # Ajuste conforme necessário
 temperature=0.7 # Um pouco criativo, mas ainda factual
 )
 summary = response.choices[0].message.content.strip()
 return summary
 except Exception as e:
 print(f"Erro ao resumir artigos: {e}")
 return "Não foi possível gerar o resumo devido a um erro."

if __name__ == "__main__":
 # Exemplos de artigos fictícios para teste
 dummy_articles = [
 {"title": "AI em saúde recebe novo financiamento", "description": "Investimentos aumentam em startups que aplicam AI para diagnósticos.", "url": "http://example.com/ai-health"},
 {"title": "Novo modelo de carro elétrico lançado", "description": "Marca de EV de luxo revela seu último veículo com autonomia aprimorada.", "url": "http://example.com/ev-car"},
 {"title": "Diretrizes éticas de AI propostas pela UE", "description": "União Europeia elabora regras rigorosas para o desenvolvimento responsável de AI.", "url": "http://example.com/eu-ai"},
 ]
 focus = "ética e regulação da AI"
 summary_result = summarize_articles(dummy_articles, focus)
 print(f"\n--- Resumo para '{focus}' ---\n{summary_result}")

Neste script:

  • Carregamos a chave da API da OpenAI.
  • summarize_articles recebe uma lista de artigos e uma string specific_focus. Esse specific_focus é fundamental! Ele diz ao modelo de linguagem qual perspectiva usar ao resumir, evitando saídas genéricas.
  • O prompt é cuidadosamente construído para dar ao modelo de linguagem um papel (“analista de notícias especializado”), instruções claras (resumo conciso, foco específico, limite de palavras) e o conteúdo para trabalhar.
  • Usamos gpt-3.5-turbo pois é um bom equilíbrio entre custo e desempenho para essa tarefa. Sinta-se à vontade para experimentar o gpt-4 se quiser resumos mais nuançados.

Passo 4: O Orquestrador (Conectando Tudo)

Finalmente, vamos criar nosso script principal de agente, main_agent.py, que chamará nosso buscador e resumidor.


# main_agent.py
from news_fetcher import fetch_news
from summarizer import summarize_articles
import datetime

def run_news_hound_agent(search_query, summary_focus):
 """
 Orquestra o processo de busca de notícias e resumo.
 """
 print(f"[{datetime.datetime.now()}] Iniciando o Agente News Hound...")
 print(f"Buscando: '{search_query}' com foco em '{summary_focus}'")

 # Passo 1: Buscar os artigos de notícias
 print("Buscando artigos de notícias...")
 articles = fetch_news(search_query, page_size=10) # Buscar 10 artigos

 if not articles:
 print("Nenhum artigo encontrado ou ocorreu um erro durante a busca. Saindo.")
 return

 print(f"Encontrados {len(articles)} artigos relevantes.")

 # Passo 2: Resumir os artigos
 print("Resumindo artigos com o modelo de linguagem...")
 summary = summarize_articles(articles, summary_focus)

 # Passo 3: Exibir os resultados
 print("\n--- Resumo Diário de Notícias ---")
 print(f"Data: {datetime.date.today()}")
 print(f"Consulta: {search_query}")
 print(f"Foco: {summary_focus}")
 print("\nResumo:")
 print(summary)
 print("\n--- Fim do Resumo ---")

 # Opcional: Salvar em um arquivo
 output_filename = f"news_digest_{datetime.date.today().isoformat()}.txt"
 with open(output_filename, "w", encoding="utf-8") as f:
 f.write(f"Resumo Diário de Notícias para {datetime.date.today()}\n")
 f.write(f"Consulta: {search_query}\n")
 f.write(f"Foco: {summary_focus}\n\n")
 f.write("Resumo:\n")
 f.write(summary)
 f.write("\n\nTítulos dos Artigos Originais (para referência):\n")
 for article in articles:
 f.write(f"- {article.get('title', 'Sem Título')}\n")
 print(f"\nResumo salvo em {output_filename}")


if __name__ == "__main__":
 # Defina o que seu agente deve buscar e em que se concentrar
 my_search_query = "frameworks de agentes AI OU orquestração LLM"
 my_summary_focus = "novas ferramentas e métodos para construir agentes de AI"

 run_news_hound_agent(my_search_query, my_summary_focus)

Este script orquestra todo o processo:

  • Define uma função run_news_hound_agent que recebe uma search_query (o que procurar em títulos/descrições de notícias) e um summary_focus (o que o modelo de linguagem deve destacar especificamente).
  • Chama fetch_news para obter os artigos brutos.
  • Depois, passa esses artigos e o foco para summarize_articles.
  • Por fim, imprime o resumo no console e salva em um arquivo de texto para leitura fácil depois.

Executando Seu Agente News Hound!

Agora, abra seu terminal, certifique-se de que seu ambiente virtual está ativo e execute:


python main_agent.py

Você deve ver uma saída indicando que o agente está buscando notícias, depois resumindo, e finalmente, seu resumo de notícias personalizado impresso no console e salvo como um arquivo! A primeira execução pode levar alguns segundos enquanto o modelo de linguagem processa o pedido.

O que eu adoro nisso é a rapidez do feedback. Você insere uma consulta, especifica um foco, e pronto – você recebe um resumo sob medida. Chega de manchetes genéricas. Para mim, isso foi um enorme momento de “aha!”. Não era apenas conversar com uma IA; era fazer uma IA executar uma tarefa específica e valiosa em meu nome.

Ajustando e Expandindo Seu Agente

Isso é apenas o começo! Aqui estão algumas ideias para tornar seu News Hound ainda melhor:

  • Múltiplas Consultas/Focos: Modifique main_agent.py para rodar várias consultas ou focos diferentes e gerar vários resumos.
  • Agendamento: Use ferramentas como cron (Linux/macOS) ou Agendador de Tarefas do Windows para executar main_agent.py automaticamente todas as manhãs.
  • Diferentes LLMs: Experimente outros LLMs. Talvez o Claude 3 Opus da Anthropic para contextos mais longos ou o Llama 3 para processamento local.
  • Formatos de Saída: Em vez de um arquivo de texto, salve a saída como HTML, um arquivo Markdown, ou até envie para seu email ou um canal Slack (você precisaria integrar com essas APIs).
  • Filtragem Contextual: Antes de resumir, você poderia adicionar uma etapa intermediária onde o modelo de linguagem (ou um classificador de texto mais simples) determina se cada artigo buscado é realmente relevante para seu foco específico, filtrando ainda mais sinais de ruído.
  • Fontes de Notícias Avançadas: Explore outras APIs de notícias ou até mesmo faça web scraping de sites específicos (embora você precise estar atento aos termos de serviço!).

Meu próprio News Hound evoluiu dessa configuração básica. Agora, tenho ele funcionando à noite, verificando atualizações sobre frameworks de agentes específicos que estou acompanhando, e me envia um resumo todas as manhãs. Isso me economizou horas de busca em feeds RSS e threads do Twitter. Ele realmente se tornou meu assistente digital de pesquisa.

Principais Lições

Então, o que você deve levar de tudo isso?

  1. Comece Pequeno, Pense Grande: Não tente construir a próxima AGI na sua primeira tentativa. Um agente de propósito único é uma ferramenta de aprendizado fantástica.
  2. Prompts são Poder: A qualidade da sua saída está diretamente relacionada à clareza e especificidade dos seus prompts. Dedique tempo para refiná-los.
  3. APIs São Suas Amigas: LLMs são poderosos, mas precisam de dados. Aprender a interagir com APIs externas (como NewsAPI) é fundamental.
  4. Código é o Cola: Python (ou qualquer linguagem de script) é o que transforma uma coleção de componentes poderosos em um agente funcional.
  5. Itere e Experimente: Não tenha medo de mudar modelos, ajustar prompts ou tentar diferentes fontes de dados. É assim que você descobre o que funciona melhor para suas necessidades específicas.

Construir esse agente News Hound é uma maneira prática e prática de entender os conceitos fundamentais por trás dos agentes de IA. Isso mostra como conectar um modelo de linguagem a ferramentas externas e automatizar uma tarefa útil. Esse conhecimento fundamental é o que você vai desenvolver ao explorar sistemas multiagente mais complexos ou integrar agentes em aplicações maiores.

Vá em frente, experimente! Você pode se surpreender com a rapidez com que consegue colocar seu próprio assistente digital em funcionamento. E, como sempre, se você encontrar um obstáculo ou descobrir uma nova maneira interessante de estender isso, deixe um comentário abaixo ou me encontre nas mídias sociais. Boa construção de agentes!

Artigos Relacionados

🕒 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

Partner Projects

ClawdevAidebugClawseoAgntkit
Scroll to Top