
Andamio de investigación de alineación (estilo autoresearch) para barreras de seguridad de LLM: búsqueda sobre una única superficie policy.md
Código abierto por Santander AI Lab. Una biblioteca / arnés de evaluación de investigación en seguridad de LLM / IA (estilo autoresearch): busca sobre una única superficie mutable
policy.mdpara minimizar la tasa de éxito de ataques (ASR) frente a un conjunto de evaluación fijo, con un umbral de paso benigno.
Parte de Santander AI Open Source — proyectos de IA de código abierto de Banco Santander (santander.com).
autoguardrails es un pequeño andamio de investigación de alineación inspirado en el autoresearch de Karpathy.
En lugar de buscar sobre train.py, este repositorio busca sobre policy.md.
La idea es la misma:
En este repositorio, la métrica principal es la tasa de éxito de ataques (ASR, cuanto menor mejor), con un umbral de paso benigno para que el sistema no pueda ganar rechazándolo todo.
Para la experimentación diaria, tres archivos importan más:
program.md: las instrucciones humanas para el buclepolicy.md: el único archivo que debes editar entre ejecucionesresults.tsv: el registro de ejecución de solo adiciónTodo lo demás es código de arnés fijo o datos de evaluación fijos.
policy.mdeval_suite.jsonljudge_prompt.mdautoguardrails/ASR mejora y el paso benigno no cae más de 2 puntos porcentualesSi deseas un modelo mental más cercano al autoresearch original, piensa en autoguardrails/ como la capa auxiliar fija y policy.md como el único archivo bajo búsqueda.
Ejecuta desde la raíz del repositorio.
python -m autoguardrails baseline --reset --repeat 2 --notes "initial baseline"
Edita solo policy.md.
Puntúa el nuevo candidato.
python -m autoguardrails candidate --repeat 2 --notes "cover jailbreak and obfuscation"
python -m autoguardrails status
cat results.tsv
Si un candidato es rechazado, el arnés restaura policy.md a la última versión aceptada automáticamente.
Si prefieres un único punto de entrada, usa 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
En Windows, ejecuta el envoltorio desde Git Bash u otro shell compatible con POSIX.
La configuración predeterminada utiliza un stub local determinista para que el repositorio funcione sin conexión. Para ejecutar experimentos reales, apunta el modelo objetivo y el modelo juez a endpoints compatibles con OpenAI.
Variables del modelo objetivo:
AUTOGUARDRAILS_TARGET_PROVIDER=openai_compatibleAUTOGUARDRAILS_TARGET_MODELAUTOGUARDRAILS_TARGET_API_BASEAUTOGUARDRAILS_TARGET_API_KEYVariables del modelo juez:
AUTOGUARDRAILS_JUDGE_PROVIDER=openai_compatibleAUTOGUARDRAILS_JUDGE_MODELAUTOGUARDRAILS_JUDGE_API_BASEAUTOGUARDRAILS_JUDGE_API_KEYEjemplo:
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"
Usa una configuración de juez congelada durante una serie de ejecuciones. No cambies las indicaciones del juez ni los modelos de juez a mitad del experimento.
Un ciclo de emulación fuera de línea simple se ve así:
policy.md.candidate.Un ejemplo de cambio de candidato que mejora el stub incluido es agregar manejo explícito para:
Eso te da una primera curva de mejora realista sin cambiar el evaluador.
program.md: instrucciones y restricciones del experimentopolicy.md: política de guardarraíl mutable bajo búsquedajudge_prompt.md: indicación de juez congeladaeval_suite.jsonl: casos de evaluación fijos de ataque y benignosresults.tsv: registro de ejecuciónrun_autoguardrails.sh: envoltorio de conveniencia alrededor de la CLIautoguardrails/: arnés Python fijotests/: pruebas de regresión y seguridad para el arnésConsulta autoguardrails/README.md para la arquitectura del código y tests/README.md para la estrategia de pruebas.
ruff, black, mypy, pytest, pytest-cov (consulta CONTRIBUTING.md).AUTOGUARDRAILS_* descritas anteriormente).¡Las contribuciones son bienvenidas! Por favor, lee nuestras Guías de Contribución y Código de Conducta antes de comenzar.
ruff check ., black --check ., mypy autoguardrails y pytest antes de abrir un PR.policy.md es la única superficie mutable; eval_suite.jsonl y judge_prompt.md están congelados.Por favor, reporta las vulnerabilidades de seguridad de manera responsable. Consulta nuestra Política de Seguridad para saber cómo reportar (no abras un issue público para vulnerabilidades). Contacto: [email protected] o usa GitHub Security Advisories.
Este software es un proyecto de código abierto del Santander AI Lab, proporcionado "tal cual" bajo su licencia, sin garantías ni condiciones de ningún tipo. No es un producto o servicio oficial de Banco Santander, no conlleva ningún compromiso de soporte de producción y no constituye asesoramiento financiero, legal o profesional.
"Santander" y su logotipo son marcas registradas de Banco Santander, S.A. La licencia del proyecto no otorga ningún derecho para usarlos más allá de la atribución factual.
Si crees que has encontrado una vulnerabilidad de seguridad, sigue nuestra política de seguridad — no abras un issue público. Eres responsable de evaluar la idoneidad de este software para tu caso de uso y de mantener tus propias implementaciones actualizadas.
Este proyecto está licenciado bajo la Apache License 2.0 — consulta los archivos LICENSE y NOTICE para más detalles.
Copyright (c) 2026 Santander Group
SPDX-License-Identifier: Apache-2.0
Si usas autoguardrails en tu investigación, por favor cítalo:
@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}
}