Como versionar prompts no Git: revisão, histórico e rollback

Como versionar prompts no Git: revisão, histórico e rollback

Estrutura de repositório, revisão por pull request e vínculo com avaliações para versionar prompts no Git e reverter com segurança quando algo piora.

••

Quer aplicar isso na sua empresa?

Agendar conversa com o Juan →

Como versionar prompts no Git: revisão, histórico e rollback

Para versionar prompts no Git, trate cada prompt como um arquivo de texto em um repositório, altere-o somente por pull request revisado e registre, para cada versão, o resultado de um conjunto fixo de avaliações. Assim, quando uma mudança piora o atendimento, você identifica a versão responsável e reverte sabendo qual comportamento está voltando. O histórico deixa de depender da memória de quem editou por último e passa a ser um registro que a empresa consegue auditar.

Principais pontos

  • Prompt é parte do sistema em produção: sem versão, não há como saber o que mudou nem como voltar.
  • Um repositório simples, com um arquivo por prompt e um manifesto de configuração, já resolve a maior parte dos casos.
  • A revisão por pull request deve exigir motivo da mudança, exemplos testados e resultado de avaliação anexado.
  • Cada versão precisa estar ligada ao modelo, aos parâmetros e ao conjunto de testes usados, senão o rollback é incompleto.
  • Reverter é fácil quando a versão em produção aparece nos logs de cada conversa e o processo está escrito antes do incidente.

Por que prompts precisam de versão como qualquer código?

Um prompt define como o agente fala, o que ele recusa, quando passa para uma pessoa e que informação ele pode citar. Mudar uma frase pode alterar o tom de todas as respostas ou fazer o agente prometer algo que a empresa não cumpre. Quando o texto vive em um painel de ferramenta, em uma planilha ou em um documento compartilhado, ninguém sabe quem mudou, quando e por quê.

O problema aparece de forma típica: o atendimento piora numa semana, alguém lembra que "ajustou uma instrução", mas a versão anterior não existe mais. Sem ela, a equipe tenta reescrever de memória e provavelmente cria uma terceira versão, diferente das duas.

O Git resolve isso sem ferramenta nova. Ele já guarda autoria, data, diferença linha a linha e mensagem explicando a mudança. Também permite revisão obrigatória antes de qualquer alteração chegar à produção. Para quem escreve instruções de atendimento, vale combinar este guia com o texto sobre como escrever prompt para atendimento ao cliente com IA, que trata do conteúdo do prompt. Aqui o foco é o ciclo de vida dele.

Prompt que não tem versão não tem como ser revertido.

Como organizar o repositório de prompts?

A estrutura deve ser pequena o bastante para que a equipe a siga sem esforço. Um repositório dedicado funciona bem quando vários sistemas compartilham prompts. Se há um único produto, uma pasta dentro do repositório dele basta, desde que as regras de revisão sejam as mesmas.

Uma organização possível:

  • prompts/atendimento/triagem.md: o texto do prompt, sem dados de clientes.
  • prompts/atendimento/triagem.config: modelo, temperatura, limite de resposta e outras configurações que afetam o comportamento.
  • prompts/atendimento/CHANGELOG.md: uma linha por mudança, com motivo e link para o pull request.
  • avaliacoes/atendimento/casos: exemplos de entrada com o comportamento esperado, versionados junto.
  • avaliacoes/atendimento/resultados: registros de cada rodada de avaliação, ligados a uma versão.
  • docs/RESPONSAVEIS.md: quem aprova mudanças em cada prompt.

Três decisões fazem diferença. Primeiro, separar o texto do prompt da configuração, porque trocar o modelo ou a temperatura muda o comportamento tanto quanto trocar uma frase, e isso precisa aparecer no histórico. Segundo, manter os casos de teste no mesmo repositório, para que uma mudança no prompt e a mudança nos testes sejam revisadas juntas. Terceiro, nunca guardar chaves de acesso, conversas reais ou dados pessoais. Os exemplos devem ser fictícios ou anonimizados, o que também reduz risco com a LGPD.

Para identificar versões, use as etiquetas (tags) do Git, com um nome claro por prompt, e registre o identificador do commit. O commit é a referência exata; a etiqueta é a forma legível para a equipe de operação.

Como revisar uma mudança de prompt por pull request?

A revisão de prompt é diferente da revisão de código, porque o texto não falha com erro explícito: ele continua rodando e apenas responde pior. Por isso o pull request precisa carregar evidência, não só a diferença de texto.

Um modelo de descrição do pull request, em forma de checklist:

  • Qual problema observado motivou a mudança, com um ou dois exemplos anonimizados.
  • O que mudou no comportamento esperado, em uma frase.
  • O que não deve mudar, como regras de encaminhamento para humano e limites de promessa.
  • Resultado da avaliação antes e depois, nos mesmos casos de teste.
  • Casos novos adicionados ao conjunto de testes para cobrir o problema.
  • Impacto em dados: o prompt passou a pedir ou citar informação pessoal?
  • Plano de reversão: qual versão volta se algo piorar.

O revisor deve ser alguém que conhece o processo de negócio, não só quem entende de modelos. Em atendimento, pode ser o responsável pela operação. Em um fluxo jurídico ou financeiro, alguém da área. Você pode configurar aprovação obrigatória por responsável de arquivo (por exemplo, com CODEOWNERS no GitHub ou recurso equivalente no GitLab) e bloquear a entrada na ramificação principal sem essa aprovação.

Regras que ajudam: uma mudança por pull request, sem misturar ajuste de tom com nova regra de negócio; mensagens de commit que expliquem o porquê, não só o quê; e proibição de edição direta em produção. Se a ferramenta permite editar o prompt em um painel, o painel deve ser alimentado a partir do repositório, não o contrário.

Para as barreiras que o prompt não deve substituir, como validação de saída e limites de ação, consulte o artigo sobre guardrails em agentes de IA. Prompt bem versionado não dispensa essas travas.

Como ligar cada versão ao resultado de avaliação?

Este é o ponto que transforma o histórico em ferramenta de decisão. Sem a ligação, o Git mostra que o texto mudou, mas não mostra se ficou melhor ou pior. Com ela, cada versão tem uma ficha.

A avaliação precisa de um conjunto de casos fixo, com resultado esperado definido por quem conhece o processo. A documentação da OpenAI sobre evals e o texto da Anthropic sobre como avaliar agentes de IA descrevem formas de montar esses conjuntos e de combinar verificações automáticas com revisão humana. O que importa para o versionamento é registrar a rodada de forma reprodutível.

Cada registro de avaliação deve conter:

  • O identificador do commit do prompt avaliado.
  • O modelo e a versão do modelo, além dos parâmetros usados.
  • A versão do conjunto de casos de teste.
  • O resultado por categoria de caso, e não apenas um resumo geral.
  • Os casos que falharam, com a resposta obtida.
  • Quem rodou, quando, e se houve revisão humana das respostas.

Guarde esse registro no repositório ou em um local referenciado por ele, e cite-o no pull request. Quando a versão for aprovada e etiquetada, a etiqueta aponta para um registro de avaliação. Daí sai a pergunta que importa no dia do problema: qual foi a última versão que passou nos casos relevantes?

Na operação, grave a versão do prompt em cada conversa ou execução. Convenções de telemetria para IA generativa, como as descritas pelo OpenTelemetry, ajudam a padronizar atributos como modelo e parâmetros. Seja qual for o formato, o ponto é que, diante de uma reclamação, você consiga dizer qual versão respondeu. O texto sobre como medir um piloto de automação com IA detalha como definir critérios de decisão antes de expandir.

Como reverter com segurança quando uma versão piora?

Reverter só é seguro se o processo estiver escrito antes do incidente. Em geral, o rollback tem quatro passos:

  • Passo um, confirmar a causa provável: compare a versão em produção com a anterior e verifique nos logs se o problema começou junto com a mudança. Mudança de modelo, de base de conhecimento ou de integração pode ter o mesmo efeito.
  • Passo dois, reverter pelo Git: use o comando de reversão (git revert) em vez de apagar histórico. Assim o erro e a correção ficam registrados, e a ação passa pela mesma revisão, mesmo que rápida.
  • Passo três, reavaliar a versão restaurada: rode o conjunto de casos atual. A versão antiga pode ter passado nos testes antigos e falhar em casos adicionados depois.
  • Passo quatro, registrar o incidente: acrescente o caso que revelou o problema ao conjunto de testes e anote a decisão no CHANGELOG.

Há três armadilhas. A primeira é reverter o prompt sem reverter a configuração, quando a causa foi um parâmetro. A segunda é presumir que o modelo é estável: se o provedor atualizou o modelo por trás de um nome genérico, a mesma versão do prompt pode se comportar de outra forma, e por isso a versão do modelo deve ser fixada sempre que o provedor permitir. A terceira é perder o rastro de conversas já enviadas. Se o agente prometeu algo errado a clientes durante a janela do problema, a empresa precisa de um processo humano para corrigir, e o log de versões mostra quem foi afetado.

Em fluxos com mensagens ativas ou decisões que afetam pessoas, vale ter também um interruptor operacional para desligar o agente ou limitar suas ações, independente de qualquer mudança no repositório.

Cenário ilustrativo: uma regra de reembolso que mudou o tom

Imagine, como exemplo ilustrativo, uma empresa de serviços com um agente no WhatsApp para dúvidas de cobrança. A equipe quer que o agente seja mais acolhedor e abre um pull request alterando duas frases do prompt de triagem. A descrição lista o motivo, anexa a avaliação antes e depois e indica a versão anterior como plano de reversão.

Na avaliação, os casos de tom melhoram, mas um grupo de casos sobre pedidos de reembolso passa a falhar: o agente, tentando ser gentil, usa uma formulação que soa como promessa de devolução. O revisor, que conhece a política, reprova o pull request e pede um ajuste. A segunda versão corrige o tom sem alterar a regra de encaminhamento para uma pessoa.

Se o problema só fosse notado em produção, o caminho seria o mesmo, mais lento: ver nos logs que as conversas problemáticas usaram a versão nova, reverter pelo Git, reavaliar e acrescentar os casos de reembolso ao conjunto de testes. O que muda é o custo do erro, e o que impede que ele se repita é o caso agora registrado.

Como o método mapear, limitar, pilotar e transferir se aplica?

O versionamento acompanha as etapas do trabalho. Em mapear, a equipe levanta quais prompts existem, onde vivem hoje, quem os altera e quais decisões cada um influencia. Em limitar, define o que um prompt pode afirmar e fazer, e quem aprova mudanças em cada um. Em pilotar, roda um fluxo real com logs de versão e um critério de sucesso combinado, usando o conjunto de avaliação como referência. Em transferir, entrega o repositório, o modelo de pull request e o procedimento de rollback à equipe da empresa, que decide se expande, ajusta ou interrompe.

Se o prompt trata dados pessoais ou usa um provedor fora do país, avalie também o que a LGPD exige, tema do artigo sobre transferência internacional de dados com IA. O versionamento ajuda aqui porque registra quais dados o prompt passou a mencionar e quando.

Perguntas frequentes

Preciso de um repositório separado só para prompts? Não necessariamente. Se o prompt pertence a um único sistema, uma pasta no repositório dele facilita a revisão conjunta com o código. Um repositório próprio faz sentido quando vários produtos ou equipes compartilham prompts, ou quando quem os edita não é quem mexe no código.

Pessoas sem conhecimento técnico conseguem participar da revisão? Sim, e deveriam. Plataformas como GitHub e GitLab têm interface web para ler diferenças e comentar, sem linha de comando. O revisor de negócio avalia se o texto respeita a política da empresa, enquanto a equipe técnica cuida de testes e publicação.

Versionar o prompt basta para garantir o mesmo comportamento? Não. O comportamento depende também do modelo, dos parâmetros, das ferramentas conectadas e dos documentos consultados. Por isso o registro de cada versão deve incluir esses itens, e a avaliação precisa ser repetida quando qualquer um deles mudar.

O que fazer com conversas reais que revelam problemas no prompt? Use-as como inspiração, mas não as copie para o repositório sem tratamento. Remova nomes, telefones e qualquer dado que identifique a pessoa, e transforme o caso em um exemplo fictício equivalente. Isso mantém o conjunto de testes útil e reduz o risco de expor dados pessoais no histórico do Git, de onde é difícil apagá-los depois.

Fontes

promptsGitavaliação de IAagentes de IAgovernança