Santander AI Lab によるオープンソース。 LLM / AI 安全性 ガードレール研究のための ライブラリ / 評価ハーネス (autoresearch スタイル): 固定された評価スイートに対して攻撃成功率 (ASR) を最小化し、良性通過フロアを維持するために、単一の可変
policy.mdサーフェスを探索します。
Santander AI Open Source の一部 — Banco Santander (santander.com) によるオープンソース AI プロジェクト。
autoguardrails は、Karpathy の autoresearch に触発された小さなアライメント研究用スキャフォールドです。
train.py を探索する代わりに、このリポジトリは policy.md を探索します。
考え方は同じです:
このリポジトリでは、トップラインメトリクスは攻撃成功率 (ASR、低いほど良い) であり、良性通過フロアがあるため、システムはすべてを拒否することで勝利することはできません。
日常的な実験では、以下の3つのファイルが最も重要です:
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 に1つのポリシー変更ファミリーを追加します。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}
}