Sobre mimMeus ProjetosAgente DicoMinhas MúsicasLeituras
Portfolio Agent – Estudo de caso

Portfolio Agent

Um agente de IA bilíngue e durável integrado a este portfólio para responder sobre minha carreira, projetos e decisões técnicas.

  • Eve
  • OpenAI
  • json-render
  • Transformers.js
  • Next.js

Desafio

Tornar um agente de portfólio realmente útil para recrutadores e engenheiros sem permitir que ele invente fatos profissionais ou vire um assistente genérico sem limites.

Abordagem

Gerar contexto canônico permanente a partir dos mesmos dados tipados usados pelo portfólio e instruir o modelo a verificar cada afirmação nesse contexto. Os componentes de UI generativa recebem apenas identificadores do portfólio, então cards e linhas do tempo são renderizados com os dados do próprio site em vez de fatos escritos pelo modelo, e cada spec é validada antes de chegar ao navegador. As ferramentas padrão do harness ficam desligadas, e uma suíte de evals cobre fundamentação, prompt injection, idioma e escolhas de UI. O speech-to-text roda inteiro em um Web Worker.

Resultado

Uma experiência bilíngue fundamentada no portfólio público, transparente quando uma informação não está disponível e com transcrição de voz local.

Arquitetura

  1. pergunta
  2. chamada ao modelo
  3. identificadores

Propriedades do design

Toque em uma parte do diagrama para ver a fonte.

Decisões e trade-offs

  1. Os componentes de UI generativa recebem identificadores do portfólio, nunca texto livre

    O modelo escolhe qual projeto, empresa ou skill mostrar, e o card renderiza os fatos desse item a partir dos dados do próprio site, então o modelo nunca escreve o que um card diz.

    CustoUm componente só mostra o que os dados já registram; um tipo novo de fato exige mudar o código, não o prompt.

  2. A comparação com uma vaga passa por uma segunda checagem, feita por outro modelo

    É o único componente com texto escrito pelo modelo, e um visitante já conseguiu fazer o agente renderizar uma ofensa nele. O verificador vê só o bloco, não a conversa, e falha fechado.

    CustoUma chamada a mais ao modelo por comparação, e uma comparação legítima pode ser recusada.

  3. As perguntas de continuação são geradas fora do loop do agente

    Uma ferramenta que o agente chamava no fim de cada resposta era pulada em cerca de um terço das vezes, então o chat agora pede as perguntas numa chamada estruturada curta depois que o turno termina.

    CustoUm endpoint separado, que precisa do seu próprio rate limit e limite de tamanho.

ConcluídoInternet