
Каркас для исследований выравнивания (в стиле автоисследований) для защиты LLM: поиск по одной поверхности policy.md
Open source от Santander AI Lab. Библиотека / оценочный стенд (в стиле autoresearch) для исследования безопасности LLM / ИИ: выполняет поиск по единой изменяемой поверхности
policy.md, чтобы минимизировать показатель успешности атак (ASR) на фиксированном наборе оценок, с порогом корректных ответов.
Часть Santander AI Open Source — проекты открытого ИИ от Banco Santander (santander.com).
autoguardrails — это небольшой каркас для исследований выравнивания, вдохновлённый autoresearch от Карпати.
Вместо поиска по train.py этот репозиторий ищет по policy.md.
Идея та же:
В этом репозитории ключевой показатель — показатель успешности атак (ASR, чем ниже, тем лучше), с порогом корректных ответов, чтобы система не могла выиграть, отказывая во всём.
Для повседневных экспериментов наиболее важны три файла:
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: удобная обёртка для CLIautoguardrails/: фиксированный каркас на Pythontests/: регрессионные проверки и проверки безопасности каркасаСм. 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 заморожены.Пожалуйста, сообщайте об уязвимостях безопасности ответственно. См. нашу Политику безопасности о способах сообщения (не открывайте публичный issue для уязвимостей). Контакт: [email protected] или используйте GitHub Security Advisories.
Данное программное обеспечение является проектом с открытым исходным кодом от Santander AI Lab, предоставляется «как есть» в соответствии с его лицензией, без каких-либо гарантий или условий. Оно не является официальным продуктом или услугой Banco Santander, не несёт обязательств по производственной поддержке и не представляет собой финансовую, юридическую или профессиональную консультацию.
«Santander» и его логотип являются зарегистрированными товарными знаками Banco Santander, S.A. Лицензия проекта не предоставляет права на их использование, кроме фактической ссылки.
Если вы считаете, что нашли уязвимость в безопасности, следуйте нашей политике безопасности — не открывайте публичный issue. Вы несёте ответственность за оценку пригодности данного программного обеспечения для вашего варианта использования и за поддержание актуальности ваших собственных развёртываний.
Этот проект лицензирован под 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}
}