Pare de confiar em resultados de geração única; só tire conclusões depois de deixar vários modelos colidirem. Uma explicação do design da skill do Claude Code que transporta a estrutura adversarial das GANs para a fase de inferência.
- Autor: Ryousuke Wayama (@wayama_ryousuke
- Data: 2026-07-09
- Contexto: Conceito inspirado em GANs (tweet de previsão de 2023) / Design discutido com Claude Fable 5
- Repositório: https://github.com/makinux/adversarial-panel
Contexto: Por que Respostas Únicas Não São Suficientes
As respostas de LLMs são mais perigosas não quando estão erradas, mas quando estão erradas, porém confiantes. Uma única passagem de um único modelo estruturalmente carece de um mecanismo para detectar isso. Mesmo com autocrítica, os pontos cegos durante a geração e a crítica são correlacionados, pois derivam dos mesmos pesos; além disso, está comprovado que os modelos possuem um viés de autopreferência, avaliando sua própria saída como superior. Em suma, "escrever e revisar por si mesmo" é um conflito de interesses desde o início para qualquer auditoria.
A inspiração para esta skill vem das GANs. A essência de uma GAN não é apenas a estrutura de geradores e discriminadores competindo, mas o princípio subjacente: a assimetria onde detectar é mais fácil que criar. Em vez de o gerador garantir sua própria correção, uma garantia de qualidade maior é obtida, pelo mesmo custo computacional, ao deixar adversários independentes atacarem e só aprovar o que sobrevive. Enquanto as GANs executavam esse loop via gradientes, o adversarial-panel o executa via crítica em linguagem natural. Apenas o meio do sinal mudou; a estrutura do jogo permanece a mesma.
No entanto, simplesmente alinhar vários modelos não tem valor. O que funciona são as duas características de design a seguir, que a skill é intencionalmente projetada para criar:
- Descorrelação de Erros — Um revisor só consegue pegar um descuido do gerador se seus modos de falha diferirem. Como painéis do mesmo modelo compartilham pontos cegos, "concordância unânime" é menos evidência do que parece. Cruzar famílias de modelos é o núcleo.
- Vantagem de Verificação — Refutar uma resposta dada é mais fácil do que criar a resposta. Portanto, os críticos são direcionados para mirar em alegações verificáveis. Não "Acho suspeito", mas "Falha na entrada X" — refutar através da reprodução, não apenas da afirmação.
Arquitetura: Facilitador e Painelistas
Existem apenas dois tipos de componentes. A sessão principal (o próprio Claude Code) atua como o facilitador, lidando com a progressão, verificação e integração, enquanto 2 a 4 painelistas cuidam das respostas e da crítica mútua. O facilitador não deve expressar suas próprias opiniões pela boca do painel (proibição de captura do facilitador); se adicionar uma opinião, ela deve ser rotulada como "Visão do Facilitador."

Figura 1 — Configuração do adversarial-panel. O facilitador distribui um briefing autossuficiente (linha sólida), e os painelistas atacam as respostas uns dos outros (crítica cruzada) antes de retornar as respostas e críticas ao facilitador (linha tracejada). Este loop é executado para cada rodada.
Os painelistas são selecionados com prioridade em maximizar a heterogeneidade:
- Diferentes Famílias de Modelos — CLIs externos como Codex via Bash. Isso proporciona a mais forte descorrelação de erros.
- Diferentes Modelos Claude — Via o parâmetro de modelo da ferramenta de agente (Opus/Sonnet/Haiku).
- Mesmo Modelo + Ramificação Metodológica Forçada — Um argumentando a partir de primeiros princípios, um a partir de taxas base (visão externa), um procurando apenas por contra-evidências, e um reexecutando alegações verificáveis. Diferencie pelo método, não apenas pela persona.
O padrão é 2 painelistas × 3 rodadas. Como o custo escala com o número de painelistas e rodadas, a expansão para 3-4 painelistas é apenas para quando o usuário exigir rigor.
Protocolo: 4 Rodadas + Síntese

Figura 2 — Progressão do Protocolo. O branco representa as tarefas do facilitador, o roxo representa as tarefas dos painelistas. Uma porta de verificação é inserida após a Rodada 1 para verificar se as "respostas têm substância." Para consultas baratas, as Rodadas 2 e 3 podem ser mescladas em uma.
Rodada 0 — Enquadramento e Julgamento de Necessidade
Primeiro, determine se um painel deve ser aberto. Para consultas de baixo risco ou casos onde a confiança é justificada, responda diretamente e apresente o painel apenas como uma opção. Um painel completo é acionado apenas para consultas importantes, controversas ou verificáveis — porque é aí que a crítica vale o custo.
A defesa contra a "armadilha do triagem" está embutida aqui. Como o modelo que deve detectar o ponto cego é o que opera esta porta, quanto mais confiantemente ele falha em uma tarefa, menos provável é que a porta se abra. Portanto, se um usuário solicitar explicitamente um painel, ele executa independentemente da confiança, e para consultas importantes, o julgamento é baseado no tamanho dos riscos, não na autoconfiança.
Em seguida, escreva um briefing autossuficiente. Como os subagentes não conseguem ver o contexto da conversa, o briefing deve incluir a consulta, contexto, restrições e formato de saída, além de instruções para "separar fatos de especulação e anexar níveis de confiança e condições de falseabilidade (quais observações anulariam isso) a alegações principais." As condições de falseabilidade devem ser específicas e inspecionáveis, como "falha na entrada X" ou "contradiz a fonte Y"; frases genéricas como "se evidências contrárias aparecerem" são tratadas como dados ausentes (teatro de calibração).
Rodada 1 — Respostas Independentes (Paralelas/Cegas)
Lance todos os painelistas em paralelo. É um requisito absoluto que ninguém veja as respostas dos outros; um painelista que vê a resposta de outro vai se ancorar nela, quebrando a premissa de independência.
Após o retorno, a porta de verificação: linhas de status ou despejos de erro não são respostas. Incluí-los na ata faria com que rodadas subsequentes criticassem fantasmas (o problema do painelista fantasma descrito depois). Painelistas com falha são repetidos; se falharem duas vezes, o nível de heterogeneidade é reduzido em um grau para continuar, e a configuração real do painel é divulgada ao usuário.
Rodada 2 — Crítica Cruzada (Paralela)
Cada painelista recebe as respostas dos outros painelistas. Eles devem atacar alegações específicas com citações — erros factuais, evidências fracas, saltos lógicos, alternativas ignoradas ou suposições implícitas. Alegações verificáveis são refutadas através da reprodução (executar código, recalcular valores, verificar fontes). A inflação de concordância, resumos ou elogios é proibida. Tanto concessões quanto ataques exigem justificativas.
Rodada 3 — Visões Finais (Paralelas)
Cada painelista recebe as críticas feitas contra ele. Eles devem conceder aos ataques válidos (com razões, não por cortesia social), defender alegações sobreviventes com razões, e declarar incertezas restantes, além de confiança calibrada e condições de falseabilidade. Conversão total sem justificativa é um sinal de bajulação, então a base para a conversão é questionada antes da aceitação.
Síntese — Integração pelo Facilitador
A saída final consiste em três partes: Pontos de Concordância / Pontos de Conflito / Conclusão.
- Pontos de Concordância — Acompanhados pelo argumento de suporte mais forte, especificando se a convergência é evidência forte (painel heterogêneo) ou evidência fraca (painel homogêneo, possíveis pontos cegos compartilhados).
- Pontos de Conflito — Escritos como "Quem, O quê, com Qual Evidência" + a decisão do facilitador, ponderada pela força da evidência. Se um lado tem evidência reproduzível e o outro tem intuição, uma decisão é tomada. Apresentar ambos os lados igualmente não é neutralidade, mas falso equilíbrio.
- Conclusão — Inclui níveis de confiança, condições que poderiam mudar a conclusão, opiniões minoritárias que valem a pena preservar, e uma trilha de auditoria de críticas aceitas/rejeitadas.
Três Invariantes a Manter Durante Todo o Processo
Invariante | Conteúdo |
|---|---|
Independência | As respostas da Rodada 1 devem ser geradas às cegas. Painelistas que veem as respostas dos outros ficam ancorados e não são mais amostras independentes. |
Adversarialidade | Concordância sem novos argumentos é uma falha de rodada. Force a instrução: "Oponha-se a pelo menos uma alegação central; encontre-a." |
Sem média | Síntese não é fazer média. Conflitos são preservados e julgados. No momento em que você soma e divide por dois, o sinal gerado pelo painel desaparece. |
Correspondência com GANs
A intenção de design de "transportar a geração adversarial para a inferência" pode ser mapeada da seguinte forma. É fundamental que os modos de falha no lado do painel correspondam perfeitamente aos modos de falha conhecidos das GANs.
GAN (Treinamento) | adversarial-panel (Inferência) |
|---|---|
Gerador | Respostas independentes dos painelistas (Rodada 1) |
Discriminador | O lado atacante da crítica cruzada (Rodada 2) |
Atualizações de Gradiente | Crítica em linguagem natural e concessões/defesas fundamentadas (Rodada 3) |
Equilíbrio Minimax | Síntese do facilitador com julgamento (Síntese) |
Vantagem do Discriminador | Assimetria de verificação — mais fácil detectar do que criar |
Sem Compartilhamento de Pesos | Separação de famílias de modelos — descorrelação de erros |
Colapso de Modo | Convergência bajuladora (concordância mútua) |
Modos de Falha e Contramedidas — Todos Observados em Produção
Esta coleção de anti-padrões de skill não é uma lista de preocupações teóricas, mas um catálogo de minas terrestres reais encontradas.
- Painelista Fantasma Strings de status ou despejos de erro se misturam na ata como respostas, fazendo com que todas as rodadas subsequentes argumentem contra o vazio. → Contramedida: Porta de verificação imediatamente após a Rodada 1. Force a execução em primeiro plano para CLIs externos e proíba wrappers que retornam antes da conclusão.
- Convergência Bajuladora Todos concordam na Rodada 2 sem novos argumentos. Equivalente ao colapso de modo em GANs. → Contramedida: Adicione "Você está se opondo a pelo menos uma alegação central. Encontre-a" ao prompt de crítica.
- Captura do Facilitador O facilitador faz o painel expressar suas próprias opiniões anteriores, lavando-as através da autoridade do consenso. → Contramedida: As visões do facilitador devem ser separadas com rótulos.
- Teatro de Confiança Confiança numérica sem condições de falseabilidade. "80% de confiança" não significa nada a menos que você possa dizer qual observação o faria retirá-la. → Contramedida: Trate confiança sem condições de falseabilidade como ausente.
- Ilusão de Diversidade Tratar personas diferentes do mesmo modelo como revisores independentes. O nome de função "Red Team" não descorrelaciona erros — apenas modelos diferentes, metodologias diferentes ou a reprodução real de alegações cria descorrelação. → Contramedida: Rebaixe explicitamente a convergência em painéis homogêneos como evidência fraca.
Casos de Uso e Como Chamá-lo
A skill em si está publicada em makinux/adversarial-panel. Ao colocá-la no Claude Code como ~/.claude/skills/adversarial-panel/SKILL.md, ela é acionada por chamadas explícitas ou linguagem natural como:
"Peça ao Opus e ao Codex para fazerem uma revisão adversarial deste design." "Sério? Deixe-os debater para ter certeza." / "red-team isso" / "Quero uma segunda opinião." Ela também se torna candidata ativa a ser acionada quando você pressiona por certeza em pontos importantes com "tem certeza?"
É adequada para consultas importantes que são controversas ou verificáveis. Seleção de arquitetura, hipóteses de causa raiz para falhas, previsões técnicas ou verificação de conclusões de pesquisa. Por outro lado, abri-la para consultas de baixo risco é um desperdício de custo, que a triagem da Rodada 0 filtra. O custo é proporcional ao número de painelistas × rodadas; 2×3 é o padrão para uso diário, expandindo para 3-4 em momentos críticos.
A degradação para ambientes precários também está definida:
- Sem mecanismo de subagente → Substituir por seções separadas em execução sequencial (fraco, pois pesos e contexto são compartilhados — anotado na síntese).
- Apenas uma única família disponível → Reduzir para ramificação metodológica (3º nível) e rebaixar o poder probatório da convergência.
- CLI externo falha duas vezes → Remover aquele painelista, continuar e divulgar.
Relate qual nível realmente foi executado com base na medição, não na intenção — esta é a chave para a auditabilidade.
Conclusão: Da Inferência ao Treinamento
Quando previ em 2023 que "a geração adversarial é a próxima para LLMs", tinha em mente um esquema de treinamento semelhante ao das GANs.
https://x.com/wayama_ryousuke/status/1658698942161510400
Verificando a resposta três anos depois, as estruturas adversariais foram colocadas em prática primeiro na inferência (crítica em linguagem natural) em vez do treinamento (gradientes). Modelos específicos para crítica como CriticGPT, pesquisas de debate multiagente e operações de revisão cruzada em codificação — a indústria está convergindo para a mesma estrutura a partir de diferentes entradas.
O próximo estágio é provavelmente a reintegração. Enquanto os resultados da revisão em tempo de inferência são atualmente descartáveis, converter críticas em sinais de recompensa para RL (a abordagem RLAIF) permite que os resultados adversariais se acumulem nos pesos — retornando ao que as GANs originalmente faziam. Se chegarmos ao ponto de "treinar o próximo modelo com os resultados de revisões adversariais", esta skill terá sido um protótipo de um período de transição. Até lá, vale bem a pena colidir modelos uns contra os outros antes de apostar em uma resposta de passagem única.
Este artigo é uma explicação do design para a skill do Claude Code adversarial-panel (SKILL.md). Conceito: [@wayama_ryousuke](https://x.com/@wayama_ryousuke) (Inspirado por GANs, design discutido com Claude Fable 5). Diagramas seguem as convenções de configurações de agente Executor/Conselheiro.





