Introdução a Agentes
Projeto Final — Agente para Site
Entrega completa — frontend, backend, LLM, histórico e uma tool externa (FAQ, pedidos ou produtos).
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)
- Dia 1: llmClient + POST /api/chat texto puro (matérias 2–4)
- Dia 2: histórico em SQLite (matéria 5)
- Dia 3: define tool schema + executor mock
- Dia 4: agent loop com function calling
- 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