📝 Exercícios Práticos

Testa os teus conhecimentos com quizzes, exercícios de código e desafios práticos sobre agentes AI.

🧠 Quiz: Fundamentos de Agentes AI

Pergunta 1

Qual é a principal diferença entre um chatbot e um agente AI?

▼
Pergunta 2

O que significa o padrão "ReAct"?

▼
Pergunta 3

Qual componente permite que um agente lembre contexto de conversas anteriores?

▼

🦙 Exercícios: Ollama

Exercício 1

Instalar e Testar Ollama

▼

Objetivo

Instalar o Ollama e executar o primeiro modelo localmente.

Instruções

  1. Instala o Ollama no teu sistema operativo
  2. Descarrega o modelo llama3.2:3b
  3. Executa uma pergunta simples no modo interativo
  4. Regista os comandos utilizados

Comandos Esperados

bash
# Instalar (segundo o SO)
# macOS/Linux:
curl -fsSL https://ollama.com/install.sh | sh

# Descarregar modelo
ollama pull llama3.2:3b

# Executar interativamente
ollama run llama3.2:3b

# Verificar modelos instalados
ollama list
# Solução completa
ollama pull llama3.2:3b
ollama run llama3.2:3b
# No modo interativo, escreve: "Olá! Explica-me o que és."
# Para sair: /bye ou Ctrl+D
Exercício 2

Criar Agente Simples com LangChain

▼

Objetivo

Criar um agente básico com Ollama e LangChain que pode usar uma ferramenta de cálculo.

Código Base

python
from langchain_community.llms import Ollama
from langchain.agents import initialize_agent, AgentType
from langchain.tools import Tool

# TODO: Criar o LLM com Ollama
llm = ...

# TODO: Definir ferramenta de cálculo
def calculadora(expressao: str) -> str:
    ...

# TODO: Criar o agente
agente = ...

# Testar
resultado = agente.run("Quanto é 25 * 48?")
print(resultado)
from langchain_community.llms import Ollama
from langchain.agents import initialize_agent, AgentType
from langchain.tools import Tool

# Criar o LLM
llm = Ollama(model="llama3.2:3b")

# Definir ferramenta de cálculo
def calculadora(expressao: str) -> str:
    """Calcula uma expressão matemática."""
    try:
        return str(eval(expressao))
    except Exception as e:
        return f"Erro: {e}"

ferramenta = Tool(
    name="Calculadora",
    func=calculadora,
    description="Útil para cálculos matemáticos. Input: expressão matemática."
)

# Criar o agente
agente = initialize_agent(
    [ferramenta],
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

# Testar
resultado = agente.run("Quanto é 25 * 48?")
print(resultado)  # Deve imprimir: 1200

🤖 Exercícios: Claude Agent SDK

Exercício 3

Configurar Claude Agent SDK

▼

Objetivo

Instalar e configurar o Claude Agent SDK com uma ferramenta customizada.

Tarefa

  1. Instalar o Claude Agent SDK
  2. Configurar a API Key da Anthropic
  3. Criar uma ferramenta customizada que consulta uma API
  4. Executar o agente com uma tarefa
# Instalar SDK
# pip install claude-agent-sdk

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions, Tool

# Definir ferramenta customizada
def consultar_clima(cidade: str) -> str:
    """Consulta o tempo atual para uma cidade."""
    # Em produção, chamaria uma API real
    return f"Tempo em {cidade}: 22°C, parcialmente nublado"

ferramenta_clima = Tool(
    name="consultar_clima",
    description="Consulta o tempo atual. Input: nome da cidade.",
    func=consultar_clima
)

async def main():
    async for message in query(
        prompt="Qual está o tempo em Lisboa?",
        options=ClaudeAgentOptions(
            allowed_tools=["consultar_clima"],
            custom_tools=[ferramenta_clima]
        )
    ):
        if hasattr(message, "result"):
            print(message.result)

asyncio.run(main())

💻 Exercícios Práticos

Desafio 1

Agente de Pesquisa Web

Intermediário
▼

Objetivo

Criar um agente que pesquisa na web e resume informações.

Requisitos

  • Usar DuckDuckGo ou similar para pesquisa
  • Processar múltiplos resultados
  • Gerar um resumo estruturado

Código Inicial

python
from langchain_community.llms import Ollama
from langchain.agents import initialize_agent, AgentType
from langchain.tools import DuckDuckGoSearchRun

# TODO: Implementar o agente de pesquisa
...
from langchain_community.llms import Ollama
from langchain.agents import initialize_agent, AgentType
from langchain.tools import DuckDuckGoSearchRun

llm = Ollama(model="llama3.2:3b")
pesquisa = DuckDuckGoSearchRun()

ferramenta_pesquisa = Tool(
    name="PesquisaWeb",
    func=pesquisa.run,
    description="Pesquisa na web por informações."
)

agente = initialize_agent(
    [ferramenta_pesquisa],
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

resultado = agente.run(
    "Pesquisa sobre as últimas novidades em IA generativa e resume em 3 pontos"
)
print(resultado)
Desafio 2

Sistema Multi-Agente

Avançado
▼

Objetivo

Criar um sistema com múltiplos agentes que colaboram: pesquisador, escritor e revisor.

Arquitetura

  • Pesquisador: Encontra informações relevantes
  • Escritor: Redige o conteúdo
  • Revisor: Verifica qualidade e corrige
from langchain_community.llms import Ollama
from langchain.tools import Tool
from langchain.agents import initialize_agent, AgentType

llm = Ollama(model="llama3.2:3b")

# Agente Pesquisador
def pesquisa_info(topico: str) -> str:
    # Simulação de pesquisa
    return f"Informações sobre {topico}: ..."

agente_pesquisador = initialize_agent(
    [Tool(name="Pesquisa", func=pesquisa_info, description="Pesquisa informações.")],
    llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION
)

# Agente Escritor
def escrever_artigo(info: str) -> str:
    # Usar LLM para escrever
    return llm.invoke(f"Escreve um artigo baseado em: {info}")

# Agente Revisor
def revisar(texto: str) -> str:
    return llm.invoke(f"Melhora este texto: {texto}")

# Pipeline
def pipeline(topico: str):
    info = agente_pesquisador.run(f"Pesquisa sobre: {topico}")
    artigo = escrever_artigo(info)
    final = revisar(artigo)
    return final

resultado = pipeline("Inteligência Artificial em 2026")

🏆 Desafios Finais

🎯 Projeto Final

Para concluir o curso, propomos um projeto final que integra todos os conhecimentos:

  1. Criar um Agente Programador que possa gerar código HTML/CSS/JS básico
  2. Implementar um sistema de memória para guardar contexto entre sessões
  3. Adicionar validação de código gerado antes de guardar ficheiros
  4. Criar uma API REST para expor o agente

Recursos para o Projeto

📚

Documentação

Consulta os módulos anteriores para exemplos detalhados.

🛠️

Ferramentas

Usa Ollama, LangChain, e FastAPI como base.

💬

Suporte

Coloca dúvidas nos fóruns ou comunidades.