Engenharia de produto de IA
A função de IA em si — construída para ser confiável desde o primeiro dia, com as costuras de avaliação já integradas para que possa ser provada depois.
#O que eu construo
Assistentes conversacionais / chatbots
RAG sobre a sua documentação, UI em streaming, citações de fonte e um guardião de escopo para que se mantenha no tema.
Agentes de voz com IA
Voz de entrada e saída que qualifica, agenda e faz o acompanhamento — com um gate de consentimento rígido nas chamadas de saída.
Ingestão e extração de documentos
Faturas, formulários e PDFs transformados em dados estruturados validados, com uma trilha de revisão para os casos de baixa confiança.
Copilots internos
Um assistente privado conectado à sua wiki, ao seu código e aos seus tickets — com acesso delimitado e auditável.
Engenharia de pipelines RAG
Chunking, embeddings, recuperação híbrida, reranking e grounding — com evals de qualidade de recuperação à frente.
Orquestração multiagente
Fluxos no estilo LangGraph com estado explícito, limites de ferramentas, retentativas e pontos de aprovação.
#Como eu construo
- Os outputs estruturados e o function-calling são validados por schema, com fallbacks em caso de falha de parsing e as entradas brutas registradas ao lado de cada decisão.
- O grounding é aplicado por construção onde importa — por exemplo, nenhuma rota de geração sem citação — não é pedido em um prompt na esperança de que funcione.
- O arnês de avaliação é projetado desde o início, para que a função seja demonstrável, não apenas lançável.
Concretamente, uma etapa de LLM é uma função tipada e validada — não uma chamada de texto livre que você espera que seja parseada:
const Ticket = z.object({
category: z.enum(["billing","bug","howto","other"]),
urgency: z.enum(["low","med","high"]),
needs_human: z.boolean(),
});
const out = Ticket.safeParse(await llm(prompt, { schema: Ticket }));
if (!out.success) return { category: "other", needs_human: true }; // safe fallback
log({ input, decision: out.data }); // every decision is auditable