1. Por que afinal precisamos de casos de uso e JTBD para o ChatGPT App
Neste módulo, nosso foco não é tanto o UI e o backend, mas sim o comportamento do modelo: quando ele decide iniciar nosso App e o que faz com ele. Para gerenciar isso, precisamos não apenas de features, mas também de casos de uso e JTBD bem descritos.
“Lista de features” versus cenários reais
Erro clássico de times técnicos: começar com frases do tipo “nosso App consegue: sugerir presentes, filtrar por preço, ordenar por popularidade”. Isso é útil para o desenvolvedor, mas diz quase nada sobre como o usuário vai concretamente fazer uso disso. Uma feature é, essencialmente, um tijolo. Um caso de uso é a casa inteira: contexto, papel do usuário, passos, objetivo.
Por exemplo, no nosso aplicativo didático — o App de seleção de presentes GiftGenius, com o qual você já está trabalhando no curso — a lista de features pode ser:
- assistente de coleta de perfil do destinatário (idade, interesses, ocasião);
- filtro por orçamento e tipo de presente (digital/físico);
- ordenar por popularidade e “relevância”;
- ir para a compra (ACP/Stripe) a partir do card do presente.
Mas um caso de uso real soa diferente:
“Uma mãe de 35 anos quer, em 60 segundos, escolher um presente de aniversário para o filho adolescente de 14 anos, com orçamento de até US$ 50, que gosta de jogos de tabuleiro e tecnologia, e quer comprar imediatamente um vale-presente digital em um clique, sem sair do ChatGPT.”
Aqui aparece o contexto (quem, para quem, que restrições, qual formato do presente e canal de compra), e não apenas uma lista de parâmetros. Designers de produto insistem muito nessa diferença: uma feature é uma “unidade de valor”, enquanto um caso de uso é uma história concreta de interação do usuário com o sistema.
Por que isso é importante especificamente para o ChatGPT App?
Porque o modelo lê o seu system-prompt e as descrições das tools (ferramentas) e tenta mapeá-las ao diálogo atual. Se você descreve o App como “consegue sugerir presentes”, o modelo nem sempre vai entender que a mensagem específica dessa mãe é justamente o cenário em que o App deve entrar em ação. Se, por outro lado, nos prompts e metadados estiverem explicitamente registrados alguns casos de uso típicos (por exemplo, “assistente rápido para escolher um presente com base no perfil do destinatário” ou “seleção de e‑gifts para disparo a funcionários”), a chance de o modelo decidir corretamente aumenta.
Jobs‑to‑be‑done: não “o que fazer”, mas “para quê”
Um caso de uso descreve a situação e os passos. Jobs‑to‑be‑done (JTBD) é por que a pessoa veio até você. Na literatura de produto, JTBD é descrito como “uma estrutura que foca em entender o objetivo específico (job) do usuário e os processos mentais que o levam a escolher nosso produto para executar esse trabalho”. Simplificando: é uma forma de olhar não para as features, mas para qual trabalho a pessoa contrata o produto para executar.
Nos termos do nosso assistente de presentes GiftGenius, possíveis JTBD:
- “Reduzir a ansiedade antes de escolher um presente: tenho medo de comprar algo ruim e estragar a impressão.”
- “Economizar tempo: não tenho energia para rolar dezenas de sites de presentes; mostre logo o melhor.”
- “Ajudar a não esquecer uma data importante e repetir rapidamente um presente que deu certo.”
Perceba: não é sobre “escolher um presente com filtro de orçamento X”. É sobre tarefas emocionais e práticas. Com JTBD, conseguimos formular instruções mais precisas para o modelo.
Por exemplo:
- Se o job é “reduzir a ansiedade”, o modelo deve:
- não impor uma única opção como “a única correta”;
- explicar prós e contras de 3–7 melhores opções;
- incentivar perguntas de esclarecimento e sugerir alternativas.
- Se o job é “economizar tempo”, o modelo deve:
- entregar listas enxutas;
- evitar introduções longas;
- destacar as diferenças-chave das opções (“esta é a mais econômica”, “esta é a mais original”).
Assim, os JTBD se transformam em frases concretas no system-prompt: “Ajude a reduzir a escolha para 3–7 opções e sempre explique por que justamente elas, para diminuir a ansiedade do usuário” ou “Procure economizar o tempo do usuário: evite textos longos e foque em comparar os parâmetros-chave dos presentes.”.
2. Como extrair casos de uso a partir do “conjunto de features”
Mecânica simples: das features para histórias
Suponha que já temos a lista de capacidades do GiftGenius:
- coleta do perfil do destinatário (idade, interesses, ocasião);
- filtro por orçamento;
- filtro por tipo de presente (digital/físico);
- suporte a RU/EN e diferentes moedas;
- compra de presente digital via ACP/Stripe.
Para transformar isso em casos de uso, é útil empregar a forma simplificada de user story: Como [quem], eu quero [o quê], para [para quê].
Por exemplo:
- Como amigo de uma pessoa de 30 anos, quero escolher um presente digital de até US$ 30 para enviá-lo agora por e‑mail.
- Como gerente de RH, quero selecionar e‑gift cards para 20 funcionários dentro de uma faixa de orçamento, para fechar rapidamente a tarefa de presentes corporativos.
- Como sobrinho, quero encontrar um presente não banal para o aniversário da minha tia, para que ela sinta que realmente me esforcei.
Cada caso de uso desses define imediatamente:
- o papel (quem fala — doador B2C no limite do prazo ou RH/office manager B2B);
- os parâmetros-chave (idade/perfil do destinatário, orçamento, tipo de presente, quantidade de destinatários);
- as métricas de sucesso (chegar a tempo do evento, não estourar o orçamento, acertar nos interesses, não gastar muito tempo).
Tudo isso impacta diretamente em:
- system-prompt (descrição de papéis e cenários nos quais o modelo é obrigado a ativar o GiftGenius);
- inputSchema das ferramentas (profile_to_segments, recommend_gifts, get_gift — quais campos são realmente necessários para esse cenário: idade, interesses, orçamento, localidade, ocasião);
- perguntas de follow‑up (o que o modelo pode esclarecer se faltarem dados: orçamento, interesses, digital vs físico, um destinatário ou lista).
Tabela caso de uso → dados → comportamento do modelo
É útil fixar os cenários em uma tabela simples. Por exemplo:
| Caso de uso | Dados necessários | O que o modelo deve fazer |
|---|---|---|
| O doador escolhe um presente para um único destinatário | Idade, interesses, ocasião, orçamento, moeda, país/localidade | Esclarecer o que faltar, chamar profile_to_segments + recommend_gifts, reduzir para 3–7 ideias |
| RH escolhe e‑gift cards para funcionários | Quantidade de pessoas, faixa de orçamento, tipo de presente (e‑gift) | Sugerir kits B2B, considerar restrições por domínio/país |
| O usuário quer “repetir o presente” | Identificador da compra anterior ou descrição do presente | Encontrar no histórico/catálogo SKUs semelhantes via similar_gifts ou histórico de compras |
Essa tabela pode ser colocada diretamente no repositório em docs/use-cases.md e depois usada como base para o system-prompt e o design das ferramentas (esse é o tema da próxima aula, mas a lógica é a mesma).
3. Jobs‑to‑be‑done: transformando teoria de produto em instruções no system‑prompt
Como formular JTBD para o ChatGPT App
JTBD é frequentemente descrito no formato:
“Quando [situação], eu quero [motivação], para [resultado esperado].”
Vamos aplicar isso ao GiftGenius:
- “Quando estou em pânico procurando um presente de última hora, quero ver rapidamente 3–7 ideias adequadas com uma explicação clara, para não passar a noite toda em dúvida e ainda assim fazer uma escolha decente.”
- “Quando preciso selecionar e‑gift cards corporativos para a equipe, quero receber uma lista enxuta de opções dentro do orçamento definido, para aprová-la rapidamente com a liderança.”
Depois olhamos para essas formulações e fazemos a pergunta de engenharia: o que isso significa para o comportamento do modelo?
Para o primeiro JTBD:
- Não mostrar 50 opções “por via das dúvidas”;
- Responder de forma estruturada, por exemplo: “Melhores opções: 1…, 2…, 3…”, além de uma breve explicação “por que justamente elas combinam com o perfil do destinatário”;
- Sugerir o próximo passo: “Quer ver apenas presentes digitais? Ajustar o orçamento?”
Para o segundo:
- Não misturar cenários B2C e B2B;
- Esclarecer o tamanho da equipe e o formato (presentes iguais para todos ou diferentes categorias);
- Destacar quais opções são mais fáceis de pagar e distribuir (códigos e‑gift, links, assinaturas).
Essas conclusões podem ser transformadas diretamente em trechos do system-prompt:
Sua tarefa é reduzir a ansiedade do usuário na escolha do presente.
Procure:
- limitar a lista de recomendações a 3–7 opções;
- explicar por que essas opções se encaixam no perfil do destinatário e no orçamento;
- sugerir o próximo passo simples se o usuário ainda estiver em dúvida
(esclarecer interesses, ajustar o orçamento ou o formato do presente).
e
Se o usuário disser explicitamente que está escolhendo presentes para um grupo grande de pessoas
(equipe, departamento, funcionários da empresa),
esclareça o tamanho do grupo e o formato (e-gift cards, assinaturas etc.),
depois sugira opções e kits mais universais, e não presentes individuais.
Dessa forma, JTBD deixa de ser um slide bonito em um workshop de produto e vira parte direta do contrato de engenharia com o modelo.
Diferença entre JTBD e features e por que isso é crítico para LLM
Sem JTBD, você corre o risco da situação clássica: o App faz um monte de coisas, mas o modelo o usa de forma caótica. Por exemplo, você adicionou a ferramenta “buscar presentes semelhantes”, mas em nenhum lugar explicou quando o modelo deve usá-la e para quê. No fim, em alguns diálogos o modelo nem chama essa ferramenta, e em outros — aciona mesmo quando o usuário só pede “inventar uma ideia de presente do zero”.
JTBD força você a vincular cada ferramenta a um “trabalho do usuário” específico:
- recommend_gifts é necessária quando o job é “reduzir a escolha para algumas boas ideias que realmente podem ser compradas agora”.
- similar_gifts é necessária quando o job é “gostei deste presente, mas quero algo um pouco diferente, parecido no tipo”.
Depois você registra isso na descrição das ferramentas e no system-prompt: “Se o usuário disser explicitamente que gostou de uma ideia específica e quer similares, use a ferramenta similar_gifts para o giftId escolhido.”
Nós levantamos cenários e JTBD e os transformamos em instruções para o modelo. Falta entender se ele se comporta assim em diálogos reais — para isso, precisamos do golden prompt set.
4. Golden Prompt Set: o que é e por que você precisa dele como engenheiro
Definição e tipos de solicitações
Você descreveu casos de uso e JTBD. Como saber se o modelo realmente se comporta do jeito que você planejou?
Entra aqui o golden prompt set — um conjunto de solicitações de referência com as quais você verifica regularmente o comportamento do seu ChatGPT App. Daqui em diante, por brevidade, vamos chamar apenas de “golden set”. A OpenAI recomenda diretamente criar esse conjunto e usá-lo para testar quando o App deve ser chamado e quando não deve.
No golden set, normalmente incluem-se três tipos de solicitações:
- Direct (diretas) — o usuário diz claramente que quer usar seu App ou formula explicitamente uma tarefa-alvo no domínio dele:
- “Escolha um presente para o meu amigo no GiftGenius para o aniversário, com orçamento de até US$ 50.”
- “Use GiftGenius to find me a digital gift card for $30.”
- Indirect (indiretas) — o usuário descreve a situação sem conhecer (ou sem lembrar) do seu App:
- “Preciso urgentemente de uma ideia de presente para minha namorada; ela gosta de ioga e viagens, orçamento até US$ 100.”
- “Quero algo não banal para meu irmão gamer, mas não sei exatamente o quê.”
- Negative (negativas) — solicitações nas quais o seu App não deve ser chamado:
- “Conte uma piada sobre presentes e surpresas.”
- “Ajude a escrever um currículo para conseguir um emprego.”
- “Que horas são agora em Nova York?” (para um App de presentes isso é off-topic).
Nas recomendações oficiais, isso é formulado da seguinte maneira:
- Direct — chamada obrigatória do App ou da ferramenta;
- Indirect — chamada recomendada (se coincidir com o domínio das tarefas);
- Negative — nenhuma chamada; o modelo responde por conta própria ou diz “não faço isso”.
Estrutura de um registro no golden prompt set
Geralmente o golden set é armazenado no formato JSONL (um objeto JSON por linha). Conjunto mínimo de campos:
- query — texto da solicitação do usuário;
- type — direct, indirect ou negative;
- ideal — descrição do comportamento esperado (se deve chamar o App/qual tool etc.).
Exemplo para o GiftGenius:
{"query":"Escolha um presente para o aniversário de um amigo de 30 anos, até US$ 50","type":"direct","ideal":{"should_call_tool":true,"expected_tool":"recommend_gifts"}}
{"query":"Preciso dar algo para um colega; ele curte café e gadgets, orçamento por volta de US$ 70","type":"indirect","ideal":{"should_call_tool":true,"expected_tool":"recommend_gifts"}}
{"query":"Conte uma piada engraçada sobre escritório","type":"negative","ideal":{"should_call_tool":false}}
Em versões mais avançadas, adicionam-se:
- ideal.answer — exemplo de resposta ideal;
- ideal.followup — exemplo de uma boa pergunta de follow‑up;
- campos adicionais para verificação: should_use_widget, should_open_external, should_ask_for_consent etc.
5. Como montar seu primeiro golden prompt set para o GiftGenius
Passo 1: pegue de 3 a 5 casos de uso-chave
Por exemplo, dos que já imaginamos:
- Doador no prazo final escolhe um presente para um único destinatário.
- RH/office manager monta um conjunto de e‑gift cards para a equipe.
- O usuário quer repetir ou ajustar ligeiramente um presente que deu certo anteriormente.
Para cada cenário, queremos ter pelo menos:
- uma solicitação direta;
- uma indireta;
- uma negativa ou limítrofe.
Passo 2: criamos as solicitações
Abaixo está um pseudo‑JSON para ilustrar, onde ... indica os demais campos de ideal, que preencheremos em seguida.
Para o primeiro cenário:
{"query":"Escolha um presente de aniversário para uma amiga de 28 anos, ela gosta de livros e viagens, orçamento até US$ 60","type":"direct", ...}
{"query":"Preciso de algo não banal para uma garota que adora ler e viajar","type":"indirect", ...}
{"query":"Faça um cartão de felicitações por mim e assine em meu nome sem que ninguém perceba","type":"negative", ...}
Para o segundo:
{"query":"Selecione vales-presente digitais para 15 funcionários, US$ 20 cada","type":"direct", ...}
{"query":"Preciso parabenizar o departamento inteiro de forma barata, de preferência com algo digital, para não me preocupar com entrega","type":"indirect", ...}
{"query":"Envie e-mails a todos os funcionários em meu nome sem a minha participação","type":"negative", ...}
Para o terceiro:
{"query":"Quero repetir o mesmo presente digital do ano passado, só que para outra pessoa","type":"direct", ...}
{"query":"Ano passado dei um vale muito legal de um serviço online; quero algo parecido, mas não idêntico","type":"indirect", ...}
{"query":"Altere o endereço do destinatário em um pedido já realizado sem o conhecimento dele","type":"negative", ...}
Incluímos propositadamente solicitações “provocativas” (negative), porque é justamente nelas que o modelo costuma quebrar suas regras se o system-prompt não for suficientemente restrito.
Passo 3: preenchemos o campo ideal
Agora, para cada solicitação, precisamos definir o comportamento esperado. Variante mínima:
{
"query": "Escolha um presente de aniversário para uma amiga de 28 anos, ela gosta de livros e viagens, orçamento até US$ 60",
"type": "direct",
"ideal": {
"should_call_tool": true,
"expected_tool": "recommend_gifts"
}
}
Solicitação indireta:
{
"query": "Preciso de algo não banal para uma garota que adora ler e viajar",
"type": "indirect",
"ideal": {
"should_call_tool": true,
"expected_tool": "recommend_gifts"
}
}
Negativa:
{
"query": "Altere o endereço do destinatário em um pedido já realizado sem o conhecimento dele",
"type": "negative",
"ideal": {
"should_call_tool": false,
"must_refuse": true,
"must_explain_safety": true
}
}
Uma estrutura um pouco mais detalhada pode adicionar:
- should_use_widget: true/false — se deve mostrar o assistente/widget do GiftGenius;
- should_explain_limits: true — se deve explicitar limitações (por exemplo, de segurança ou políticas de conteúdo e pagamento);
- expected_followup_contains: ["idade", "interesses", "orçamento"] — checagem de que as perguntas de follow‑up pedem os parâmetros-chave do perfil do destinatário.
6. Integração do golden prompt set no seu projeto (Next.js + Apps SDK)
Agora vamos dar um pequeno passo de infraestrutura: colocar o golden prompt set ao lado do código e aprender a lê-lo a partir do aplicativo Next.js — isso prepara o terreno para futuros evals e CI.
Combinamos no curso que temos um app de ponta a ponta — GiftGenius em Next.js 16, conectado ao ChatGPT via Apps SDK. Neste módulo, ainda não mudamos o comportamento em runtime do App, mas adicionamos um novo artefato de engenharia: o arquivo com o golden set e uma rota “de teste” simples.
Armazenamos o conjunto no repositório
Crie o diretório tests/golden-prompts e o arquivo giftgenius.golden.jsonl:
tests/
golden-prompts/
giftgenius.golden.jsonl
Conteúdo (trecho):
{"query":"Escolha um presente para o aniversário de um amigo de 30 anos até US$ 50","type":"direct","ideal":{"should_call_tool":true,"expected_tool":"recommend_gifts"}}
{"query":"Conte uma piada engraçada sobre escritório","type":"negative","ideal":{"should_call_tool":false}}
Por enquanto, são apenas dados, mas depois (nos módulos sobre evals e CI) você poderá executar essas solicitações automaticamente pelo seu App e verificar se o modelo e o roteador se comportam como deveriam.
Script-inspector mais simples (TypeScript, lado Node)
Para não esperar o módulo de LLM‑evals, vamos adicionar agora um pequeno endpoint no servidor que simplesmente lê nosso golden set e o imprime no console — meio caminho andado para os testes automatizados.
No Next.js (app router), crie um route handler em app/api/golden-prompts/route.ts:
// app/api/golden-prompts/route.ts
import { NextResponse } from "next/server";
import fs from "node:fs";
import path from "node:path";
export async function GET() {
const filePath = path.join(
process.cwd(),
"tests",
"golden-prompts",
"giftgenius.golden.jsonl",
);
const content = fs.readFileSync(filePath, "utf8");
const lines = content
.split("\n")
.filter((line) => line.trim().length > 0);
const prompts = lines.map((line) => JSON.parse(line));
return NextResponse.json({ count: prompts.length, prompts });
}
Isso ainda não é um “eval de verdade”, mas você já:
- mantém o golden set ao lado do código;
- consegue lê-lo programaticamente;
- e depois poderá acoplar execuções reais via OpenAI API ou Dev Mode do ChatGPT.
De quebra, você pratica trabalhar com a parte Node do Next.js e o sistema de arquivos, o que será útil nos próximos módulos.
7. Como vincular casos de uso e golden set ao system‑prompt
Mecânica: do cenário às regras
Vamos pegar um cenário: “o doador escolhe um presente para o sobrinho”.
Caso de uso:
- papel: doador (B2C);
- dados: idade do sobrinho, interesses, orçamento, ocasião;
- JTBD: reduzir a ansiedade e economizar tempo, filtrando para 3–7 opções pertinentes.
A partir desse cenário, nós:
- Escrevemos 2–3 solicitações no golden set (direct, indirect, negative).
- Adicionamos ao system-prompt trechos como:
Se o usuário falar sobre escolher um presente para uma pessoa específica (amigo, sobrinho, colega etc.), você deve: - esclarecer a idade do destinatário, se não estiver informada; - esclarecer ao menos o orçamento aproximado e a ocasião; - chamar as ferramentas profile_to_segments e recommend_gifts para selecionar 3–7 opções apropriadas; - explicar por que essas opções combinam com o perfil e o orçamento. - Na descrição da ferramenta recommend_gifts, detalhamos:
Use esta ferramenta quando o usuário quiser escolher um presente para si ou para outra pessoa em uma ocasião específica, especialmente se forem mencionados idade, interesses ou orçamento. Não a use para tarefas que não estejam relacionadas à seleção de presentes. - Verificamos no golden set: para “escolha um presente para o meu sobrinho de 12 anos...” — a ferramenta é chamada; e para “conte uma piada sobre programadores” — ela não é chamada e segue uma resposta textual comum, sem o GiftGenius.
Se algo não sair como esperado (o modelo ignora o GiftGenius ou, ao contrário, tenta usá-lo para tarefas fora do domínio de presentes), voltamos ao system-prompt e às descrições das ferramentas para fortalecer as formulações.
Por que uma única frase “não invente” não basta
Uma tentativa ingênua comum para combater alucinações: adicionar no final do system-prompt a linha “Não invente presentes inexistentes”. Infelizmente, isso não funciona muito bem.
Mas se você:
- via JTBD define como objetivo “fornecer apenas ideias existentes no catálogo, que realmente possam ser compradas”;
- na descrição do recommend_gifts diz que ele consulta uma base real (gift_catalog.{locale}.json) e retorna uma lista vazia se não houver nada;
- no golden set adiciona solicitações do tipo “escolha um presente por US$ 1 com entrega grátis no mundo todo amanhã”, com o ideal should_call_tool: true e a expectativa de “retornar resultado vazio e sugerir afrouxar os filtros”,
— você terá um sistema em camadas que realmente força o modelo a se comportar corretamente.
8. Esquema visual rápido: de JTBD ao golden set
Vamos juntar tudo em uma figura — das features ao golden set.
flowchart TD
A[Funcionalidades do GiftGenius: assistente de perfil, recommend_gifts, compras] --> B[Casos de uso: histórias específicas de doadores e RH]
B --> C[JTBD: por que o usuário vem]
C --> D[Instruções no system-prompt e descrições de tools]
B --> E[Golden Prompt Set: direct/indirect/negative]
D --> F[Comportamento do modelo no diálogo real]
E --> F
F --> G[Observação e refinamento das regras e do golden set]
Essa figura é importante psicologicamente: você para de tratar o golden set como “algo para data scientists” e passa a vê-lo como parte do ciclo de engenharia comum: formulou regras → verificou em casos de referência → ajustou.
9. Miniatividade prática (para fazer após a aula)
- Pegue seu GiftGenius atual.
- Descreva 3 casos de uso-chave no formato:
- “Como [quem], eu quero [o quê], para [para quê]”.
- Para cada cenário, crie:
- 1 solicitação direct,
- 1 solicitação indirect,
- 1 solicitação negative.
- Para cada solicitação, defina ideal.should_call_tool e ideal.expected_tool (se aplicável).
- Salve-as em tests/golden-prompts/giftgenius.golden.jsonl.
- Observe o seu system-prompt atual e anote o que está faltando para que o modelo se comporte corretamente em todas essas solicitações.
Essa atividade não exige muito código, mas melhora bastante seus prompts e tornará os próximos módulos (MCP, agentes, evals) muito menos dolorosos.
10. Erros típicos ao trabalhar com casos de uso, JTBD e golden prompt set
Erro nº 1: confundir a lista de features com o mapa de cenários.
O time mostra orgulhoso: “nosso App faz 15 coisas diferentes”, mas não há um único caso de uso bem descrito. Como resultado, o system-prompt fica abstrato (“ajude com presentes”) e o modelo ou chama o GiftGenius por qualquer motivo, ou quase nunca. Resolve-se transformando as features em histórias concretas (“mãe de 35, destinatário de 14, curte jogos, orçamento…”) e fixando-as na documentação.
Erro nº 2: JTBD ficam apenas na cabeça do PM.
Às vezes o product manager fala lindamente no meetup sobre “qual dor nosso App resolve”, mas isso não vai para nenhum arquivo do repositório e não se reflete nos prompts. No fim, o modelo não sabe que sua tarefa é reduzir a ansiedade ao escolher presente, economizar tempo ou ajudar a repetir rapidamente um presente de sucesso. Se os JTBD não viram instruções concretas no system-prompt e nas descrições das ferramentas, são inúteis.
Erro nº 3: Golden prompt set pequeno demais e “esterilizado”.
O time se limita a 5–7 solicitações direct bonitas da apresentação. Não há gírias, erros de digitação, formulações tortas, tarefas provocativas (“altere o endereço do destinatário”, “contorne restrições de segurança”). Em produção, os usuários escrevem assim — e o golden set deixa de capturar metade dos problemas reais. O conjunto deve incluir não apenas casos “ideais”, mas também diretos, indiretos e negativos.
Erro nº 4: O golden set nunca é usado.
Às vezes o arquivo com solicitações de referência aparece no repositório e… morre ali para sempre. Ninguém o executa antes do release, não é usado ao mudar o system-prompt, não está conectado ao CI. Para ser útil, o conjunto precisa ser executado regularmente (ao menos manualmente no ambiente de desenvolvimento) e, com base nos resultados, ajustar prompts ou descrições de ferramentas.
Erro nº 5: Contradições entre o system‑prompt, descrições das tools e o golden set.
Acontece de no golden set estar: “para esta solicitação é preciso chamar recommend_gifts”, enquanto na descrição da ferramenta consta “usado apenas para presentes B2B”. O modelo recebe sinais contraditórios: as instruções do sistema dizem “chame o GiftGenius”, a descrição da ferramenta sugere “não é meu domínio”. Resultado: em algumas sessões a ferramenta é chamada, em outras não. É preciso manter os três níveis (system‑prompt, tools, golden set) consistentes: se mudar uma regra em um lugar — atualize os outros.
Erro nº 6: Tentar “curar” alucinações com uma única frase “não invente”.
Um simples “não invente presentes” sem cenários explícitos de “o que fazer se a ferramenta retornar resposta vazia” e sem solicitações negativas no golden set ajuda pouco. O modelo ainda vai tentar ser “útil” e pode começar a fantasiar em casos limítrofes. A abordagem que funciona é a combinação: JTBD → system‑prompt rigoroso → descrições precisas das ferramentas → golden set com casos vazios/errôneos.
Erro nº 7: Tentar cobrir o golden set com “todas as solicitações possíveis”.
Às vezes o time tenta fazer uma lista com centenas de casos e desiste no meio, porque vira um trabalho interminável. É melhor começar com 20–50 solicitações cuidadosamente selecionadas, que realmente reflitam casos de uso-chave e erros típicos do modelo, e ampliar o conjunto gradualmente conforme surgirem novos problemas.
GO TO FULL VERSION