Preparação para entrevista
SmellAbusos de controle

Pilha de Regras

Rule Stacking

Pilha de Regras (Rule Stacking) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Abusos de controle. O prompt acumula SEMPRE, NUNCA e IMPORTANTE em caixa alta, e as regras brigam entre si.

Elemento
07/37
Nível
Iniciante
Leitura
4 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 de uma operadora de saúde responde dúvidas de beneficiários. Este é um trecho do system prompt depois de um ano de incidentes (anonimizado):

IMPORTANTE: NUNCA dê diagnóstico.
SEMPRE seja empático.
NUNCA mencione valores de procedimentos.
ATENÇÃO: SEMPRE informe o valor da coparticipação quando perguntado.
NÃO responda sobre medicamentos.
IMPORTANTE!!! Em caso de sintomas graves, oriente procurar o pronto-socorro.
SEMPRE responda em no máximo 3 frases.
NUNCA deixe o beneficiário sem uma resposta completa.
... [mais 17 regras em maiúsculas]

Repare em três conflitos: “nunca mencione valores” e “sempre informe a coparticipação”; “no máximo 3 frases” e “nunca deixe sem resposta completa”; e a regra de sintomas graves, a mais importante de todas, enterrada no meio de outras 24 com o mesmo peso visual.

Num teste, o assistente respondeu a “estou com dor no peito há uma hora” com uma explicação da cobertura de cardiologia em três frases. Seguiu a regra de brevidade e ignorou a de urgência.

Sinais de Pilha de Regras:

  • O prompt tem muitas linhas com IMPORTANTE, NUNCA, SEMPRE, ATENÇÃO, em maiúsculas ou com exclamações.
  • Cada regra nasceu de um incidente específico.
  • Há regras que se contradizem, e ninguém decidiu qual vence.
  • As regras críticas têm o mesmo destaque das triviais.
  • Acrescentar uma regra conserta um caso e quebra outro.
  • O modelo segue algumas regras com rigor exagerado e ignora outras.
flowchart LR
  I(["1. Incidente"]):::io --> R["2. Nova regra em maiúsculas"]:::tool
  R --> P[("3. Pilha de regras")]:::store
  P --> M(["4. Modelo escolhe quais seguir"]):::llm
  M --> I
  1. Um caso dá errado em produção.
  2. A correção mais rápida é uma regra nova, com ênfase para “garantir” que funcione.
  3. A regra se soma às anteriores, sem revisão do conjunto.
  4. Com muitas regras de peso igual, o modelo resolve conflitos do seu jeito. Novos incidentes aparecem.
Checagem +20 XP de primeiraO teste envia 'dor no peito há uma hora'. O bot explica cobertura de cardiologia em três frases e não manda a pessoa ao pronto-socorro. Qual regra venceu e por quê?

Por que acontece

  • Regra é a correção mais barata. Uma linha resolve o incidente da vez e fecha o ticket.
  • Ênfase parece funcionar. Maiúsculas às vezes mudam o comportamento num teste, e viram hábito.
  • Ninguém é dono do prompt inteiro. Cada time acrescenta as suas regras sem ler as dos outros.
  • Sem eval, apagar dá medo. Ninguém sabe qual regra ainda é necessária.
  • Modelos atuais seguem instruções com mais literalidade. Ênfase que servia para modelos antigos agora gera rigidez exagerada.

O chatbot da DPD (2024) xingou um cliente depois de uma atualização. Um prompt que acumula correções de incidente é frágil exatamente assim: uma edição mexe numa regra e outra, que ninguém estava olhando, deixa de ser seguida.

Quanto custa ignorar

  • Comportamento imprevisível. Com regras em conflito, a resposta depende de qual o modelo priorizou naquela vez.
  • Risco em regras críticas. A regra que importa compete por atenção com vinte que não importam tanto.
  • Rigidez. Regras absolutas aplicadas fora do contexto geram respostas absurdas (“não posso falar de valores” para quem pergunta a coparticipação).
  • Manutenção. Cada mudança exige entender a interação com todas as outras regras.

Os conflitos da operadora, lado a lado

Regra A Regra B O que o modelo faz na prática
NUNCA mencione valores SEMPRE informe a coparticipação Recusa o valor ou inventa um meio-termo
No máximo 3 frases NUNCA deixe sem resposta completa Corta a orientação de urgência para caber
NÃO fale de medicamentos Oriente sintomas graves Fala de cobertura e cala o “vá ao PS”

Coparticipação é a parte do procedimento que o beneficiário paga no Brasil. A pessoa pergunta um número que o contrato manda informar. A pilha trata esse número como se fosse tabela de preço de clínica. LGPD e regra de saúde não se resolvem com mais uma linha em maiúsculas: a decisão de fluxo precisa ser código.

Tratamento

Refatoração Escolha quando
Trocar Regras por Exemplos As regras tentam descrever tom, formato ou comportamento em casos de borda. Poucos exemplos bem escolhidos mostram o que vinte regras tentam dizer. Destino: Seletor de Exemplos.
Trocar Regra de Prompt por Aresta de Grafo A regra é uma decisão de fluxo (“em caso de sintomas graves, faça X”). Ela sai do prompt e vira um passo em código, que não pode ser ignorado. Destinos: Roteamento e Encadeamento de Prompts.

Antes de qualquer uma, monte um eval com os incidentes que geraram as regras. Ele é o que permite apagar com segurança: veja Criar Eval Antes de Mexer no Prompt.

Como fatiar a pilha da operadora:

  1. Urgência vira um classificador + rota em código para o texto de pronto-socorro. Sem competir com “3 frases”.
  2. Coparticipação vira ferramenta que busca o valor no contrato. A regra “nunca cite preço de procedimento” deixa de brigar com um número que a ferramenta devolve.
  3. Tom (empatia, brevidade) vira dois ou três exemplos, não oito SEMPRE.

Apagar vem depois de medir. A tentação é pôr a regra crítica em maiúsculas no topo. Isso pode subir a taxa no teste e ainda falhar na sexta à noite.

Checagem +20 XP de primeiraUma regra diz 'em caso de suspeita de fraude, transfira para o time de segurança'. Ela está no meio de 15 regras de estilo, e o modelo às vezes não transfere. O que fazer?

O que você ganha

  • Regras críticas garantidas por código, não por ênfase.
  • Um prompt curto, que explica o contexto e o objetivo em vez de listar proibições.
  • Comportamento consistente, sem conflitos para o modelo resolver.
  • Cada incidente vira um caso de eval, não uma linha a mais no prompt.

Quando ignorar

  • Poucas regras, sem conflito. Três ou quatro instruções claras e compatíveis são normais em qualquer prompt.
  • Restrições de formato simples. “Responda em português” ou “use no máximo 200 palavras” não precisam virar código.
  • Protótipo. Para descobrir o comportamento desejado, regras rápidas são aceitáveis. Consolide antes de ir para produção.

É esse smell?

Checagem +20 XP de primeiraO prompt tem 6 regras, todas sobre formato da resposta, sem conflitos entre si, e o modelo segue todas no eval. É Pilha de Regras?

Checagem +20 XP de primeiraO prompt tem 4 mil tokens: 30 parágrafos de política da empresa e 5 regras de comportamento. Qual é o smell principal?

Checagem +20 XP de primeiraDois times editam o mesmo prompt. Cobrança acrescenta NUNCA ofereça produto. Vendas acrescenta SEMPRE ofereça upgrade. O eval oscila semana a semana. Qual é o diagnóstico?

Checagem +20 XP de primeiraVocê montou o eval com os 20 incidentes que geraram as regras. Remover 12 linhas em maiúsculas não muda o eval. O que você faz com as 12?

Perguntas rápidas

O que é Pilha de Regras?

Pilha de Regras (Rule Stacking) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Abusos de controle. O prompt acumula SEMPRE, NUNCA e IMPORTANTE em caixa alta, e as regras brigam entre si.

Como corrigir Pilha de Regras?

Com Trocar Regras por Exemplos e Trocar Regra de Prompt por Aresta de Grafo. Cada refatoração traz o passo a passo seguro, com eval antes e depois.

Onde Pilha de Regras aparece na prática?

Nos cenários reais Bot de suporte com escalonamento humano e Assistente de saúde com guardrails.

Para ir além

Relações

Buscar