Introdução a Agentes

Projeto Final — Agente para Site

Entrega completa — frontend, backend, LLM, histórico e uma tool externa (FAQ, pedidos ou produtos).

Intermediário 45 min 40 pontos Leitura 0%

Nesta aula você vai

  • Integrar todos os módulos em sistema entregável
  • Escolher um caso de negócio e implementar uma tool
  • Publicar assistente em página web acessível

Projeto Final — Agente para Site

Objetivos

  • Consolidar o curso em produto demonstrável
  • Entregar sistema completo sem frameworks complexos

Escolha UM caso de negócio

Opção Tool principal Dados mock
A — FAQ empresa buscar_faq(query) JSON com 30 perguntas
B — Consulta pedidos buscar_pedido(id) JSON orders.json
C — Catálogo produtos buscar_produto(q) JSON products.json

Todos exigem a mesma arquitetura — muda só executor da tool.

Entregáveis obrigatórios

/agente-final
├── public/
│   ├── index.html          # chat UI
│   └── style.css
├── src/
│   ├── server.js           # Express/Fastify/PHP router
│   ├── llmClient.js        # wrapper API
│   ├── agent.js            # loop tools
│   ├── tools/
│   │   └── buscarPedido.js
│   ├── db.js               # SQLite ou memória
│   └── prompts/
│       └── agent.system.txt
├── .env.example            # OPENAI_API_KEY=
└── README.md               # como rodar

Checklist funcional

  • Frontend envia mensagem, exibe resposta
  • Backend nunca expõe API key
  • System prompt versionado em arquivo
  • Histórico: mínimo últimas 10 mensagens por sessão
  • Rate limit: 20 msg/hora/IP (memória ok para demo)
  • 1 tool funcionando com dados reais ou mock
  • Tratamento de erro 503 amigável
  • README com npm install && npm start

Fluxo de implementação (ordem sugerida)

  1. Dia 1: llmClient + POST /api/chat texto puro (matérias 2–4)
  2. Dia 2: histórico em SQLite (matéria 5)
  3. Dia 3: define tool schema + executor mock
  4. Dia 4: agent loop com function calling
  5. Dia 5: polish UI + rate limit + README

Exemplo mock — pedidos

data/orders.json:

{
  "8842": { "status": "shipped", "tracking": "BR123456789", "customer": "demo" },
  "9011": { "status": "processing", "tracking": null, "customer": "demo" }
}
export function buscarPedido(id) {
  const order = orders[id];
  if (!order) return { found: false };
  return { found: true, ...order };
}

Critérios de avaliação (autoavaliação)

Critério Peso
Fluxo chat funciona 25%
Histórico persiste na sessão 20%
Tool retorna dado real/mock correto 25%
Segurança básica (key, rate limit) 20%
README claro 10%

Deploy mínimo

  • Frontend estático: Cloudflare Pages, Netlify, Vercel
  • Backend: Railway, Render, Fly.io, Cloudflare Workers
  • Variáveis de ambiente no painel do host

Próximo nível (fora deste curso)

Depois de entregar este projeto, você está pronto para:

  • RAG com documentação PDF
  • MCP para tools padronizadas
  • Multiagentes especializados
  • Observabilidade (LangSmith, Helicone — opcional)

Resumo

  • Projeto = frontend + backend + LLM + histórico + 1 tool
  • Mock JSON é válido — foco na arquitetura
  • Documente como rodar — isso é entrega profissional
  • Você saiu do ChatGPT para produto com IA