
LLM 가드레일을 위한 정렬 연구 스캐폴드(자동 연구 스타일): 단일 policy.md 표면에 대한 검색
Santander AI Lab의 오픈 소스입니다. LLM/AI 안전 가드레일 연구 라이브러리/평가 하네스(autoresearch 스타일)입니다: 단일 변경 가능한
policy.md표면을 검색하여 고정된 평가 스위트에 대한 공격 성공률(ASR)을 최소화하고, 무해 통과 기준(benign-pass floor)이 있습니다.
Santander AI Open Source의 일부 — Banco Santander의 오픈 소스 AI 프로젝트 (santander.com)입니다.
autoguardrails는 Karpathy의 autoresearch에서 영감을 받은 작은 정렬 연구 스캐폴드입니다.
train.py를 검색하는 대신, 이 저장소는 policy.md를 검색합니다.
아이디어는 동일합니다:
이 저장소에서 최상위 지표는 공격 성공률(ASR, 낮을수록 좋음)이며, 무해 통과 기준(benign-pass floor)이 있어 시스템이 모든 것을 거부함으로써 승리할 수 없습니다.
일상적인 실험에서 세 가지 파일이 가장 중요합니다:
program.md: 루프에 대한 사람이 소유한 지침policy.md: 실행 간에 편집해야 하는 유일한 파일results.tsv: 추가 전용 실행 로그그 외 모든 것은 고정된 하네스 코드 또는 고정된 평가 데이터입니다.
policy.mdeval_suite.jsonljudge_prompt.mdautoguardrails/ASR이 개선되고 무해 통과율이 2% 포인트 이상 떨어지지 않는 경우에만 후보 유지원래 autoresearch에 더 가까운 개념적 모델을 원한다면, autoguardrails/를 고정된 도우미 계층으로, policy.md를 검색 대상인 단일 파일로 생각하세요.
저장소 루트에서 실행하세요.
python -m autoguardrails baseline --reset --repeat 2 --notes "initial baseline"
policy.md만 편집합니다.
새 후보를 평가합니다.
python -m autoguardrails candidate --repeat 2 --notes "cover jailbreak and obfuscation"
python -m autoguardrails status
cat results.tsv
후보가 거부되면 하네스가 자동으로 policy.md를 마지막으로 수락된 버전으로 복원합니다.
단일 진입점을 선호한다면 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
Windows에서는 Git Bash 또는 다른 POSIX 호환 셸에서 래퍼를 실행하세요.
기본 설정은 결정론적 로컬 스텁을 사용하므로 저장소가 오프라인에서 작동합니다. 실제 실험을 실행하려면 대상 모델과 판정 모델을 OpenAI 호환 엔드포인트로 지정하세요.
대상 모델 변수:
AUTOGUARDRAILS_TARGET_PROVIDER=openai_compatibleAUTOGUARDRAILS_TARGET_MODELAUTOGUARDRAILS_TARGET_API_BASEAUTOGUARDRAILS_TARGET_API_KEY판정 모델 변수:
AUTOGUARDRAILS_JUDGE_PROVIDER=openai_compatibleAUTOGUARDRAILS_JUDGE_MODELAUTOGUARDRAILS_JUDGE_API_BASEAUTOGUARDRAILS_JUDGE_API_KEY예시:
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"
실행 시리즈 동안 고정된 판정 설정을 사용하세요. 실험 중간에 판정 프롬프트나 판정 모델을 변경하지 마세요.
간단한 오프라인 에뮬레이션 사이클은 다음과 같습니다:
policy.md에 하나의 정책 변경 계열을 추가합니다.candidate를 실행합니다.번들된 스텁을 개선하는 한 가지 예시 후보 변경사항은 다음에 대한 명시적 처리를 추가하는 것입니다:
이렇게 하면 평가자를 변경하지 않고 현실적인 첫 번째 개선 곡선을 얻을 수 있습니다.
program.md: 실험 지침 및 제약 조건policy.md: 검색 대상인 변경 가능한 가드레일 정책judge_prompt.md: 고정된 판정 프롬프트eval_suite.jsonl: 고정된 공격 및 무해 평가 케이스results.tsv: 실행 로그run_autoguardrails.sh: CLI용 편의 래퍼autoguardrails/: 고정된 Python 하네스tests/: 하네스에 대한 회귀 및 안전 검사코드 아키텍처는 autoguardrails/README.md를, 테스트 전략은 tests/README.md를 참조하세요.
ruff, black, mypy, pytest, pytest-cov (CONTRIBUTING.md 참조).AUTOGUARDRAILS_* 환경 변수를 통해 구성).기여를 환영합니다! 시작하기 전에 기여 가이드라인과 행동 강령을 읽어주세요.
ruff check ., black --check ., mypy autoguardrails, pytest를 실행하세요.policy.md만 변경 가능한 표면이고, eval_suite.jsonl과 judge_prompt.md는 고정되어 있습니다.보안 취약점을 책임감 있게 신고해주세요. 신고 방법은 보안 정책을 참조하세요 (취약점에 대해 공개 이슈를 열지 마십시오). 연락처: [email protected] 또는 GitHub Security Advisories를 사용하세요.
이 소프트웨어는 Santander AI Lab의 오픈 소스 프로젝트로, 라이선스에 따라 "있는 그대로" 제공되며 어떠한 종류의 보증이나 조건도 없습니다. 이는 공식적인 Banco Santander 제품 또는 서비스가 아니며, 프로덕션 지원에 대한 약속이 없으며, 재정, 법률 또는 전문적인 조언을 구성하지 않습니다. "Santander"와 그 로고는 **Banco Santander, S.A.**의 등록 상표입니다. 프로젝트 라이선스는 사실적 귀속을 넘어 이를 사용할 권리를 부여하지 않습니다. 보안 취약점을 발견했다고 생각되면 보안 정책을 따르세요 — 공개 이슈를 열지 마십시오. 귀하는 귀하의 사용 사례에 대한 이 소프트웨어의 적합성을 평가하고 자신의 배포를 최신 상태로 유지할 책임이 있습니다.
이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여됩니다 — 자세한 내용은 LICENSE 및 NOTICE 파일을 참조하세요.
Copyright (c) 2026 Santander Group
SPDX-License-Identifier: Apache-2.0
연구에서 autoguardrails를 사용하는 경우 다음을 인용해주세요:
@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}
}