Preparação para entrevista
SmellImpeditivos de mudança

Prompt Preso ao Modelo

Model-Pinned Prompt

Prompt Preso ao Modelo (Model-Pinned Prompt) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Impeditivos de mudança. Trocar de modelo ou de versão quebra tudo, porque o prompt depende de manias do modelo antigo.

Elemento
14/37
Nível
Intermediário
Leitura
5 min
Atualizado
Nesta página 7
  1. 01Como reconhecer
  2. 02Por que acontece
  3. 03Quanto custa ignorar
  4. 04Tratamento
  5. 05O que você ganha
  6. 06Quando ignorar
  7. 07É esse smell?
  8. ··Perguntas rápidas

Como reconhecer

Um assistente jurídico usa o mesmo modelo há um ano e meio. O time quer migrar para um modelo mais novo, mais barato e mais capaz. O prompt tem trechos como estes (anonimizado):

Pense passo a passo antes de responder. ESCREVA SEU RACIOCÍNIO entre
<pensamento> e </pensamento> e só depois a resposta.
NUNCA, EM HIPÓTESE ALGUMA, omita a cláusula de foro.
Responda começando exatamente com "Parecer:" (o parser depende disso).
Se a resposta passar de 800 palavras, você será penalizado.

Com o modelo novo, o raciocínio entre tags vaza para o texto final, as instruções em maiúsculas deixam o tom rígido demais, e o parser quebra porque a resposta começa com uma frase antes de “Parecer:”. A migração, prevista para uma semana, levou três.

Cada truque compensava uma mania do modelo antigo. “Pense passo a passo” forçava raciocínio visível. Maiúsculas e ameaça de penalidade empurravam uma instrução que o modelo antigo ignorava. O parser em split("Parecer:") tratava prosa como schema. O modelo novo segue a instrução à risca, às vezes demais, e o código que esperava um texto rígido quebra.

Sinais de Prompt Preso ao Modelo:

  • O prompt tem truques que compensavam limitações de um modelo antigo (raciocínio em tags, ameaças, repetição de instruções).
  • O código depende do formato exato do texto (“começa com”, “linha 2 é o título”).
  • Ninguém sabe quais instruções ainda são necessárias.
  • Trocar de modelo ou de versão é um projeto, não uma tarde.
  • Não existe eval que rode nos dois modelos e compare.
flowchart LR
  P(["1. Prompt ajustado ao modelo A"]):::llm --> A(["2. Modelo A: funciona"]):::llm
  P --> B(["3. Modelo B: comportamento diferente"]):::llm
  B --> X["4. Parser quebra, tom muda"]:::tool
  1. O prompt foi ajustado, ao longo do tempo, às manias de um modelo específico.
  2. Com aquele modelo, tudo funciona.
  3. Com um modelo novo, os truques produzem efeitos diferentes.
  4. O código que dependia do formato quebra, e o comportamento muda sem aviso.

Ajustar um template ao modelo da vez é normal. O smell é quando essa folha de truques é o único jeito de o sistema funcionar, e ninguém consegue tirá-la.

Checagem +20 XP de primeiraO parser faz text.split('Parecer:')[1]. No modelo novo a resposta abre com 'Segue o parecer técnico:'. Qual é a correção que ainda vai quebrar no próximo modelo?

Por que acontece

  • Ajustes por tentativa e erro. Cada problema foi resolvido com o truque que funcionou naquele modelo. Ninguém apagou o truque quando a causa sumiu.
  • Formato garantido por texto. Antes da saída estruturada, o jeito era pedir um formato e torcer. O parser nasceu nessa época e ficou.
  • Modelos novos seguem instruções de outro jeito. O que antes precisava de ênfase agora é seguido à risca, às vezes demais. Modelos com raciocínio interno ainda obedecem escreva seu raciocínio entre tags e duplicam o trabalho no texto visível.
  • Sem eval comparativo. Ninguém mede o prompt em outro modelo até a hora da migração. Aí o provedor já avisou a data de aposentadoria do snapshot.
  • Medo de apagar. “Não mexa, está em produção.” A folha de truques vira relíquia.

Quanto custa ignorar

  • Preso a um modelo velho. O time paga mais por um modelo pior porque migrar é arriscado. Quando o provedor aposenta o snapshot, a migração vira emergência.
  • Quebra forçada. Atualizações pequenas de versão já mudam o texto o bastante para o split falhar.
  • Prompt inchado. Truques empilhados deixam o system prompt maior, mais caro em toda chamada, e mais difícil de ler. Veja Prompt Inchado.
  • Tom e política. Ameaça e maiúsculas vazam para o usuário. Num parecer jurídico, “você será penalizado” não deveria estar no caminho da cláusula de foro.

Tratamento

Refatoração Escolha quando
Criar Eval Antes de Mexer no Prompt Sempre, primeiro. Um eval que roda nos dois modelos e compara por categoria transforma a migração numa decisão medida. Destinos: Bancada de Evals e Dataset de Ouro.
Extrair Template Versionado O prompt está espalhado ou sem versão. Um template por modelo, versionado, permite migrar uma rota de cada vez e voltar atrás. Destino: Registro de Templates.

Junto com isso, troque formatos garantidos por texto por Saída Estruturada (Trocar Texto Livre por Saída Estruturada) e remova truques que o modelo novo não precisa.

A ordem que evita a migração de três semanas:

  1. Eval no modelo atual, com as categorias que o parser hoje esconde (cláusula de foro presente, valor extraído, tom).
  2. Schema no lugar do split. parecer, foro, riscos como campos, não como prosa.
  3. Apagar truques (tags de raciocínio, ameaça, maiúsculas de rotina) numa branch, medir.
  4. Rodar o mesmo eval no modelo novo. Onde cair, ajuste mínimo e versionado, não uma nova folha de ameaças.
  5. Migrar uma rota por vez, com o template antigo ainda publicado para rollback.

Antes e depois do prompt, o miolo que sobra:

# depois
Você é um assistente jurídico. Responda no schema.
Inclua sempre a cláusula de foro quando o contrato tiver uma.
Não invente jurisprudência.

Três linhas no lugar de um parágrafo de truques. O schema segura o formato. O eval segura o resto.

Checagem +20 XP de primeiraVocês vão migrar na sexta. Alguém sugere manter as tags <pensamento>, as maiúsculas e a penalidade 'por segurança', e só trocar o id do modelo. O que fazer?

O que você ganha

  • Migração de modelo em dias, com um número antes e depois.
  • Prompts mais curtos, sem truques herdados.
  • Código que não depende do formato do texto.
  • Liberdade para escolher o modelo pelo custo e pela qualidade, não pelo medo.

Quando ignorar

  • O modelo atual atende e não será aposentado. Se não há motivo para migrar, não há urgência. Mas monte o eval mesmo assim: a data de aposentadoria sempre chega.
  • Prompts descartáveis. Um script de uso único pode depender do modelo que estiver disponível.

É esse smell?

Checagem +20 XP de primeiraO time troca de modelo a cada lançamento novo, roda o eval de 150 casos e decide em um dia. O prompt tem algumas instruções específicas para o modelo atual, versionadas. É Prompt Preso ao Modelo?

Checagem +20 XP de primeiraO código extrai a resposta com text.split('Resposta:')[1]. Com um modelo novo, às vezes vem 'Resposta final:'. Qual é a correção mais direta?

Checagem +20 XP de primeiraO prompt pede 'escreva seu raciocínio entre <pensamento>' porque o modelo antigo não tinha raciocínio interno. O modelo novo tem. O que fazer com a instrução?

Checagem +20 XP de primeiraO system prompt cita o nome do modelo ('você é baseado no modelo X') e nada mais depende dele. Há eval, schema e migração em um dia. É Prompt Preso ao Modelo?

Perguntas rápidas

O que é Prompt Preso ao Modelo?

Prompt Preso ao Modelo (Model-Pinned Prompt) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Impeditivos de mudança. Trocar de modelo ou de versão quebra tudo, porque o prompt depende de manias do modelo antigo.

Como corrigir Prompt Preso ao Modelo?

Com Criar Eval Antes de Mexer no Prompt e Extrair Template Versionado. Cada refatoração traz o passo a passo seguro, com eval antes e depois.

Onde Prompt Preso ao Modelo aparece na prática?

Nos cenários reais Assistente jurídico e Assistente de saúde com guardrails.

Para ir além

Relações

Buscar