0Pricing
AI Agents · Aula

Um agente de pesquisa que navega na Web

Combine uma ferramenta de busca, uma ferramenta de obtenção e um LLM para pesquisar um tema e escrever um resumo com fontes.

Um agente de pesquisa que navega na Web é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Objetivo do projeto

Crie um agente que pesquise um tópico na Web, recupere páginas e escreva um resumo com fontes — como uma versão pequena do Perplexity.

Ferramentas necessárias

  1. search — consulte uma API de pesquisa (Tavily, Serper, Brave) e retorne os resultados
  2. fetch_url — baixe uma página e retorne o texto limpo
  3. answer — o agente escreve o resumo final com citações

Step 1: Search Tool

import requests

def search(query: str, k: int = 5) -> list[dict]:
    r = requests.post(
        'https://api.tavily.com/search',
        json={'api_key': TAVILY_KEY, 'query': query, 'max_results': k}
    )
    return r.json()['results']   # list of {url, title, snippet}

Step 2: Fetch Tool

from bs4 import BeautifulSoup

def fetch_url(url: str) -> str:
    r = requests.get(url, timeout=10)
    soup = BeautifulSoup(r.text, 'html.parser')
    for tag in soup(['script', 'style', 'nav', 'footer']):
        tag.decompose()
    return soup.get_text(separator='\n', strip=True)[:5000]   # truncate

Step 3: Tool Definitions

tools = [
    {'type': 'function', 'function': {
        'name': 'search',
        'description': 'Search the web for a query, return top results with URLs',
        'parameters': {'type': 'object', 'properties': {'query': {'type': 'string'}}, 'required': ['query']}
    }},
    {'type': 'function', 'function': {
        'name': 'fetch_url',
        'description': 'Download the text of a URL',
        'parameters': {'type': 'object', 'properties': {'url': {'type': 'string'}}, 'required': ['url']}
    }}
]
import json
print(json.dumps(tools, indent=2))

Step 4: The Agent Loop

def research(question, max_steps=8):
    messages = [
        {'role': 'system', 'content': 'You are a research agent. Use search and fetch_url to gather facts. Cite each claim with a URL.'},
        {'role': 'user', 'content': question}
    ]
    for _ in range(max_steps):
        r = oai.chat.completions.create(model='gpt-4o-mini', messages=messages, tools=tools)
        msg = r.choices[0].message
        messages.append(msg)
        if not msg.tool_calls:
            return msg.content
        for tc in msg.tool_calls:
            result = dispatch(tc)
            messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': json.dumps(result)})
    return 'Step limit reached'

Tool Dispatcher

def dispatch(tc):
    args = json.loads(tc.function.arguments)
    if tc.function.name == 'search':
        return search(**args)
    if tc.function.name == 'fetch_url':
        return fetch_url(**args)
    return {'error': 'unknown tool'}

Adicionar um limite de etapas

Sem um limite, o agente pode executar indefinidamente. max_steps=8 é um padrão razoável.

Truncar páginas recuperadas

A maioria das páginas tem mais de 50 KB — grande demais. Trunque para 5000 caracteres (cerca de 1300 tokens). O modelo raramente precisa de mais.

Respeitar robots.txt

A navegação em produção deve respeitar robots.txt e os Termos de Serviço do site. Quando houver dúvida, use um serviço gerenciado de pesquisa e recuperação.

Armazenar resultados em cache

A mesma consulta e o mesmo URL serão solicitados com frequência. Armazene os resultados em cache no Redis por uma hora:

@lru_cache(maxsize=1000)
def cached_fetch(url):
    return fetch_url(url)

Lidar com falhas

Erros de rede são rotineiros. Retorne o erro ao modelo para que ele possa tentar outra fonte:

try:
    return fetch_url(url)
except Exception as e:
    return {'error': f'Could not fetch {url}: {e}'}

Forçar citações

Termine a instrução do sistema com: "Sua resposta final deve incluir URLs para cada afirmação, como [1] https://..." — e considere verificar o esquema da saída.

Acompanhar o custo

Agentes de pesquisa são caros — de 5 a 15 chamadas de ferramentas por pergunta, cada uma recuperando vários quilobytes. Defina um limite de orçamento por consulta.

Limite de etapas

Por que definir um limite max_steps no loop do agente?

Recapitulação

Pesquisa + recuperação + LLM + limite de etapas = um agente de pesquisa funcional em 50 linhas. Excelente projeto 3.

Perguntas Frequentes

A aula “Um agente de pesquisa que navega na Web” é grátis?

Sim — o texto completo de “Um agente de pesquisa que navega na Web” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Um agente de pesquisa que navega na Web”?

Combine uma ferramenta de busca, uma ferramenta de obtenção e um LLM para pesquisar um tema e escrever um resumo com fontes. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Um agente de pesquisa que navega na Web”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Um robô de perguntas e respostas sobre seus documentos
  2. Um agente que explica código
  3. Um agente de pesquisa que navega na Web
  4. Um assistente SQL para seu DB
← Voltar para AI Agents