O que adversarial-openemr faz?
Plataforma de avaliação adversarial multiagente que realiza testes de invasão contínuos em um Clinical Co-Pilot do OpenEMR — 5 agentes, 50 ataques iniciais, juiz LLM de dois níveis (Haiku 4.5 → Sonnet 4.5) e estrutura de regressão determinística.
Visão Geral
Este skill permite configurar e executar uma avaliação adversarial automatizada contra um Clinical Co-Pilot baseado em OpenEMR. Ele utiliza múltiplos agentes para gerar ataques variados e um sistema de juiz em cascata para avaliar a segurança e a precisão das respostas do co-piloto.
Funcionalidades Principais
- 5 Agentes Especializados: Cada agente foca em diferentes vetores de ataque (ex.: injeção de prompt, extração de dados, comandos maliciosos).
- 50 Ataques Iniciais: Um conjunto diversificado de cenários de adversário pré-definidos para iniciar a avaliação.
- Juiz LLM de Dois Níveis:
- Haiku 4.5 (rápido e leve) para triagem inicial.
- Sonnet 4.5 (profundo e detalhado) para análise confirmatória.
- Estrutura de Regressão Determinística: Permite reproduzir testes anteriores e verificar se correções foram eficazes.
Como Funciona
- Configuração: Defina as credenciais do OpenEMR e o endpoint do Clinical Co-Pilot.
- Execução: Lance os 5 agentes com os 50 ataques iniciais.
- Avaliação: O juiz Haiku 4.5 avalia rapidamente as respostas; casos suspeitos são enviados ao Sonnet 4.5 para análise aprofundada.
- Relatório: Resultados são compilados em um relatório de regressão.
Requisitos
- Acesso a um servidor OpenEMR configurado.
- Chave de API para os modelos Claude (Haiku e Sonnet).
- Ambiente Python 3.9+ com dependências listadas em
requirements.txt.
Exemplo de Uso
# Instalar dependências
pip install -r requirements.txt
# Executar avaliação adversarial
python run_adversarial.py --target http://localhost:8080 --api-key $ANTHROPIC_API_KEY
Plataformas Suportadas
- Claude Code
- Cursor
- Codex
Estrutura do Repositório
.
├── agents/ # Código dos 5 agentes
├── attacks/ # 50 ataques iniciais (JSON)
├── judges/ # Lógica do juiz em dois níveis
├── harness/ # Estrutura de regressão determinística
├── requirements.txt # Dependências
└── README.md # Documentação (este arquivo)
Contribuição
Contribuições são bem-vindas! Por favor, abra uma issue ou pull request para sugerir melhorias.
Licença
Este projeto está licenciado sob a licença MIT.