
Фреймворк защиты для безопасности LLM-агентов, который компилирует контракты задач, проверяет манифесты возможностей и контролирует эффекты с помощью проверок доказательств PLANT/WRAP на основе эталонных тестовых атак.
Код, сопровождающий анонимную подачу статьи. Репозиторий разделяет защитник APEX, нормализацию данных бенчмарков, доверенные манифесты возможностей и интеграции методов сравнения, чтобы каждый слой можно было проверять независимо.
python -m venv .venv
source .venv/bin/activate
pip install -e '.[test]'
export PYTHONPATH="$PWD/src:$PWD"
Компоненты, работающие на основе моделей, читают OPENAI_API_KEY и
необязательный OPENAI_BASE_URL из окружения. Копируйте .env.example
только как справку; код не читает локальные файлы учётных данных.
| Путь | Ответственность |
|---|---|
src/apex/defender/ | Контракты задач APEX, типизированные привязки, квитанции, проверки доказательств, PLANT, WRAP и обработка продолжений |
src/apex/core/ | Общий протокол, типы результатов, агрегация и независимая от провайдера граница модели |
benchmark/adapter/ | Преобразование релизов бенчмарков только для чтения в единый интерфейс BenchmarkCase |
benchmark/registry/ | Регистрация доверенных возможностей и манифесты для конкретных бенчмарков |
baseline/<name>/ | Одна реализация или интеграция среды выполнения на каждый метод сравнения |
tests/ | Инварианты репозитория и быстрые модульные проверки |
См. STRUCTURE.md для описания потока компонентов и точек расширения.
Компактные замороженные дескрипторы случаев для всех шести бенчмарков
включены в benchmark/data/. Полные вышестоящие репозитории и среды
выполнения в песочнице не вендорятся. Передача None выбирает упакованные
данные; явный data_root всё ещё может их переопределить.
from benchmark.adapter import adapter_for
adapter = adapter_for("scr", None)
attack_cases = list(adapter.cases("attack"))
Адаптер владеет идентификаторами случаев, метками разбиения, метками наборов, допустимостью и полезной нагрузкой, передаваемой среде выполнения бенчмарка. Он не изменяет содержимое бенчмарка и не регистрирует полномочия инструментов.
from benchmark.registry import module_for
registry = module_for("mcptox")
environment_plan = registry.load("12306-mcp")
Манифесты возможностей хранятся отдельно от адаптеров наборов данных, поскольку текст бенчмарка является недоверенным входом эпизода, тогда как манифест описывает принадлежащую оператору границу выполнения, доступную до эпизода.
Каждый benchmark/registry/data/<benchmark>/manifest.json — это финальный
артефакт реестра, использующий apex-benchmark-registry-v2. Пакет хранит
дедуплицированные capability_units, переиспользуемые окружения и явные
привязки случаев. Таким образом, бенчмарк с сотнями случаев не дублирует
идентичный манифест Tool сотни раз. Каждая единица сохраняет точную
схему ввода/вывода, effect, observation, effect_return, роль квитанции
и типизированные аннотации. Каждое окружение отдельно записывает источники,
Skills и agent_visible_surface.
Точные проверенные исходные входные данные из реализации эксперимента
хранятся в benchmark/registry/source/. Шаг сборки нормализует и
дедуплицирует эти существующие регистрации; он не выводит новую семантику
возможностей из подсказок бенчмарка. Перегенерируйте все финальные артефакты
командой:
pip install -e '.[registry]'
python scripts/build_registry_manifests.py
python scripts/audit_registry_coverage.py
Чтобы обновить упакованные дескрипторы случаев из локальных вышестоящих чекаутов, выполните:
python scripts/import_benchmark_data.py \
--research-root <research-checkout> \
--scr-root <SCR_Bench-checkout>
Импортёр SCR проверяет закреплённый коммит перед выводом своего компактного индекса раскрытия случаев/Skill.
TaskContractor компилирует доверенный запрос пользователя в контракт задачи.Детерминированные проверки остаются независимыми от целевой модели. Роли, работающие на основе моделей, подают типизированные кандидаты, которые должны пройти ту же границу валидации.
baseline/registry.py определяет 13 методов сравнения. Каждый метод имеет
выделенную папку, названную по методу, и точку входа implementation.py.
Зависимости с собственной средой выполнения импортируются лениво, чтобы ядро
APEX и адаптеры данных можно было тестировать без установки всех сред
бенчмарков.
python -m compileall -q src benchmark baseline tests
pytest
Перед релизом также запустите проверки анонимности из ANONYMITY.md. В подачу не должны добавляться учётные данные, файлы результатов, машинно-зависимые пути, Git-remote или метаданные автора.