由 Santander AI Lab 开源。 一个 LLM / AI 安全 护栏研究 库 / 评估框架(autoresearch 风格):它在单一可变
policy.md表面上进行搜索,以在固定评估套件上最小化攻击成功率(ASR),并设有良性通过下限。
是 Santander AI Open Source 的一部分 — Banco Santander 的开源 AI 项目(santander.com)。
autoguardrails 是一个受 Karpathy 的 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 的 shell 中运行该封装脚本。
默认设置使用确定性的本地桩,以便仓库可以离线运行。要进行真实实验,请将目标模型和评判模型指向兼容 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 是冻结的。请负责任地报告安全漏洞。有关报告方式,请参阅我们的 安全政策(不要为漏洞提交公开 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}
}