
Estrutura de pesquisa de alinhamento (estilo autoresearch) para salvaguardas de LLM: busca sobre uma única superfície policy.md
Open source pelo Santander AI Lab. Uma biblioteca / arcabouço de avaliação de pesquisa em guardrails de LLM / segurança de IA (estilo autoresearch): ela busca sobre uma única superfície mutável
policy.mdpara minimizar a taxa de sucesso de ataques (ASR) contra um conjunto de avaliação fixo, com um piso de aprovação benigna.
Parte do Santander AI Open Source — projetos de IA open source do Banco Santander (santander.com).
autoguardrails é um pequeno arcabouço de pesquisa em alinhamento inspirado no autoresearch do Karpathy.
Em vez de buscar sobre train.py, este repositório busca sobre policy.md.
A ideia é a mesma:
Neste repositório, a métrica principal é a taxa de sucesso de ataques (ASR, quanto menor, melhor), com um piso de aprovação benigna para que o sistema não possa vencer recusando tudo.
Para a experimentação do dia a dia, três arquivos são os mais importantes:
program.md: as instruções de propriedade humana para o looppolicy.md: o único arquivo que você deve editar entre execuçõesresults.tsv: o log de execuções somente-acréscimo (append-only)Todo o restante é código de arcabouço fixo ou dados de avaliação fixos.
policy.mdeval_suite.jsonljudge_prompt.mdautoguardrails/ASR melhorar e a aprovação benigna não cair mais de 2 pontos percentuaisSe você quiser um modelo mental mais próximo do autoresearch original, pense em autoguardrails/ como a camada auxiliar fixa e em policy.md como o único arquivo sob busca.
Execute a partir da raiz do repositório.
python -m autoguardrails baseline --reset --repeat 2 --notes "initial baseline"
Edite apenas policy.md.
Avalie o novo candidato.
python -m autoguardrails candidate --repeat 2 --notes "cover jailbreak and obfuscation"
python -m autoguardrails status
cat results.tsv
Se um candidato for rejeitado, o arcabouço restaura policy.md automaticamente para a última versão aceita.
Se você preferir um único ponto de entrada, use run_autoguardrails.sh:
sh run_autoguardrails.sh status
sh run_autoguardrails.sh evaluate
sh run_autoguardrails.sh baseline "initial baseline" 2
sh run_autoguardrails.sh candidate "cover jailbreak and obfuscation" 2
No Windows, execute o wrapper a partir do Git Bash ou de outro shell compatível com POSIX.
A configuração padrão usa um stub local determinístico para que o repositório funcione offline. Para executar experimentos reais, aponte o modelo alvo e o modelo avaliador (judge) para endpoints compatíveis com OpenAI.
Variáveis do modelo alvo:
AUTOGUARDRAILS_TARGET_PROVIDER=openai_compatibleAUTOGUARDRAILS_TARGET_MODELAUTOGUARDRAILS_TARGET_API_BASEAUTOGUARDRAILS_TARGET_API_KEYVariáveis do modelo avaliador (judge):
AUTOGUARDRAILS_JUDGE_PROVIDER=openai_compatibleAUTOGUARDRAILS_JUDGE_MODELAUTOGUARDRAILS_JUDGE_API_BASEAUTOGUARDRAILS_JUDGE_API_KEYExemplo:
export AUTOGUARDRAILS_TARGET_PROVIDER=openai_compatible
export AUTOGUARDRAILS_TARGET_MODEL=gpt-4.1-mini
export AUTOGUARDRAILS_TARGET_API_BASE=https://your-endpoint.example/v1
export AUTOGUARDRAILS_TARGET_API_KEY=your-target-key
export AUTOGUARDRAILS_JUDGE_PROVIDER=openai_compatible
export AUTOGUARDRAILS_JUDGE_MODEL=gpt-4.1-mini
export AUTOGUARDRAILS_JUDGE_API_BASE=https://your-endpoint.example/v1
export AUTOGUARDRAILS_JUDGE_API_KEY=your-judge-key
python -m autoguardrails baseline --reset --repeat 2 --notes "real-model baseline"
Use uma configuração de avaliador (judge) congelada durante uma série de execuções. Não altere prompts ou modelos do avaliador (judge) no meio do experimento.
Um ciclo simples de emulação offline é assim:
policy.md.candidate.Um exemplo de mudança candidata que melhora o stub incluído é adicionar tratamento explícito para:
Isso proporciona uma primeira curva de melhoria realista sem alterar o avaliador.
program.md: instruções e restrições do experimentopolicy.md: política de guardrail mutável sob buscajudge_prompt.md: prompt do avaliador (judge) congeladoeval_suite.jsonl: casos de avaliação fixos de ataque e benignosresults.tsv: log de execuçõesrun_autoguardrails.sh: wrapper de conveniência para a CLIautoguardrails/: arcabouço Python fixotests/: verificações de regressão e segurança do arcabouçoConsulte autoguardrails/README.md para a arquitetura do código e tests/README.md para a estratégia de testes.
ruff, black, mypy, pytest, pytest-cov (veja CONTRIBUTING.md).AUTOGUARDRAILS_* descritas acima).Contribuições são bem-vindas! Por favor, leia nossas Diretrizes de Contribuição e o Código de Conduta antes de começar.
ruff check ., black --check ., mypy autoguardrails e pytest antes de abrir um PR.policy.md é a única superfície mutável; eval_suite.jsonl e judge_prompt.md estão congelados.Por favor, reporte vulnerabilidades de segurança de forma responsável. Consulte nossa Política de Segurança para saber como reportar (não abra uma issue pública para vulnerabilidades). Contato: [email protected] ou use o GitHub Security Advisories.
Este software é um projeto open source do Santander AI Lab, fornecido "as is" (no estado em que se encontra) sob sua licença, sem garantias ou condições de qualquer tipo. Não é um produto ou serviço oficial do Banco Santander, não possui compromisso de suporte em produção e não constitui aconselhamento financeiro, jurídico ou profissional.
"Santander" e seu logotipo são marcas registradas do Banco Santander, S.A. A licença do projeto não concede nenhum direito de uso além da atribuição factual.
Se você acredita ter encontrado uma vulnerabilidade de segurança, siga nossa política de segurança — não abra uma issue pública. Você é responsável por avaliar a adequação deste software ao seu caso de uso e por manter suas próprias implantações atualizadas.
Este projeto é licenciado sob a Apache License 2.0 — consulte os arquivos LICENSE e NOTICE para detalhes.
Copyright (c) 2026 Santander Group
SPDX-License-Identifier: Apache-2.0
Se você usar autoguardrails em sua pesquisa, por favor cite-o:
@software{autoguardrails2026,
author = {{Santander AI Lab}},
title = {autoguardrails: an autoresearch-style guardrail policy loop},
year = {2026},
url = {https://github.com/SantanderAI/autoguardrails},
license = {Apache-2.0}
}