API VEGA

WhitePact — независимый слой принятия решений, управления и гарантий для автономных систем, работающий в рантайме: движок принятия решений по управлению с пятью исходами (ALLOW / ALLOW_WITH_REDACTION / REQUIRE_APPROVAL / DENY / QUARANTINE), оценка доверия, выявление предвзятости, guardrails, детекция галлюцинаций, маппинг соответствия нормативам (NIST AI RMF / EU AI Act / ISO 42001), аналитика затрат, мониторинг дрейфа, публичный Trust Index / лидерборд / AI Incident Database, а также MCP-сервер (30 инструментов, 20 ресурсов) с интеграциями trust-gate для LangChain, LangGraph и Google ADK.

┌──────────────────────────────────────────────────────────────────────────────┐
│                        WhitePact  v1.2.6                                     │
│                                                                              │
│  ┌──────────────┐  ┌─────────────┐  ┌──────────────┐  ┌──────────────────┐  │
│  │ Governance   │  │ Trust Score │  │  Compliance  │  │  Guardrails      │  │
│  │ 5-way decide │  │ 6-dim A–F   │  │ NIST/EU/ISO  │  │  PII + Tox       │  │
│  └──────────────┘  └─────────────┘  └──────────────┘  └──────────────────┘  │
│  ┌──────────────┐  ┌─────────────┐  ┌──────────────┐  ┌──────────────────┐  │
│  │ Hallucination│  │ Cost Intel  │  │   Red Team   │  │  Drift Monitor   │  │
│  │ Self-consist.│  │ Route+Budget│  │ 10 attacks   │  │  Alerts+Trend    │  │
│  └──────────────┘  └─────────────┘  └──────────────┘  └──────────────────┘  │
│  ┌──────────────┐  ┌─────────────┐  ┌──────────────┐  ┌──────────────────┐  │
│  │ AI Passport  │  │  BiasBuster │  │ PrivacyLabel │  │  MCP Server      │  │
│  │ SHA-256 cert │  │ 6 probes+CI │  │  Federated   │  │  30 tools/HTTP   │  │
│  └──────────────┘  └─────────────┘  └──────────────┘  └──────────────────┘  │
│  ┌──────────────────────────────────────────────────────────────────────────┐ │
│  │   Governance Dashboard — FastAPI · Per-org rate limit · Alembic · OTEL  │ │
│  └──────────────────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘

Какую проблему это решает

Каждая команда, выводящая AI в продакшен, сталкивается с одним и тем же пробелом: нет единого способа доказать, что модель — или действия автономного агента — безопасны, справедливы, соответствуют нормативам и подотчётны. Аудиты проводятся вручную, предвзятость обнаруживается уже в продакшене, комплаенс живёт в электронной таблице, вызовы инструментов агента остаются без контроля, и никто не знает, каким будет счёт за LLM в следующем месяце.

WhitePact закрывает эту потребность одной платформой — REST API, Python SDK, MCP-сервер и дашборд в реальном времени — покрывающей полный жизненный цикл управления:

ПроблемаМодульРезультат
Разрешить это действие агента, отредактировать его, отправить на одобрение, отклонить или поместить в карантин?WhitePactRuntimeGateway (ядро управления)Пятивариантное решение GovernanceDecision, детерминированное, без вызова LLM в цепочке принятия решения
Заслуживает ли эта модель доверия?TrustScoreEngineОценка 0–100, грейд A–F, уровень риска
Соответствует ли она нормативным требованиям?ComplianceEngineNIST AI RMF, уровень по EU AI Act, ISO 42001
Утекают ли через неё персональные данные (PII)?GuardrailsEngineБлокировка / редактирование с журналом аудита
Галлюцинирует ли она?HallucinationDetectorОценка риска, неподтверждённые утверждения
Подвержена ли она атакам?RedTeamSimulator10 векторов атак, идентификаторы CVE, доля безопасных отказов
Во сколько она обходится?CostTracker + ModelRouterЗатраты в USD по каждой модели, маршрутизация на самую дешёвую подходящую модель
Ухудшается ли её качество со временем?TrustDriftMonitorТренд за 7/30 дней, оповещения по уровню критичности
Есть ли в ней предвзятость?BiasBuster6 демографических проб, шлюз в CI
Снабжены ли данные метками с сохранением приватности?PrivacyLabelФедеративные DP-метки, данные не покидают устройство
Подлинный ли это медиаконтент?DeepfakeDetectorАнсамблевая оценка уверенности, определённый метод подделки
Можно ли доверять стороннему MCP-серверу до подключения к нему?SupplyChainScannerВердикты VERIFIED_FACT / INFERRED_SIGNAL / UNKNOWN — проверки на тайпсквоттинг, соответствие описания содержимому и известные инциденты
Ведётся ли защищённая от подделки запись каждого решения по управлению?EvidenceRepositoryХеш-цепочка записей EvidenceRecord, изоляция по организациям, verify_chain()
Попадает ли рискованное действие на проверку человеку?ApprovalRepositoryПроцесс PENDING → APPROVED/DENIED, защищённый от состояний гонки
Как эта модель ранжируется среди других — независимо?Public LeaderboardКросс-модельный рейтинг доверия на основе реальных вызовов API каждой модели, а не самоотчётов
Можно ли где угодно сослаться на оценку доверия и проверить её?Trust IndexБесплатный сертифицированный паспорт — самостоятельно оценённый или проверенный людьми, с верификацией по /verify/{id} и встраиваемым бейджем
Были ли у этой AI-системы публичные сбои раньше?AI Incident DatabaseПубличный реестр с краудсорсинговыми отчётами, модерацией и хеш-цепочками
Должен ли мой агент доверять этому стороннему инструменту перед его вызовом?rai_check_trust + интеграции с LangChain/LangGraph/ADKБесплатная проверка плюс реальный шлюз блокировки/паузы прямо внутри агента
Может ли любой MCP-клиент контролировать каждый вызов AI?MCP Server27 инструментов управления через stdio, Streamable HTTP или устаревший HTTP+SSE

Установка

# Governance platform + REST API
pip install "rai-governance-platform[dashboard]"

# With PostgreSQL support
pip install "rai-governance-platform[dashboard,postgres]"

# With Redis + OpenTelemetry
pip install "rai-governance-platform[dashboard,redis,telemetry]"

# With LLM providers
pip install "rai-governance-platform[dashboard,openai,anthropic]"

# Everything
pip install "rai-governance-platform[all]"

Опубликованное имя пакета на PyPI (rai-governance-platform) и имя для импорта (responsibleai) появились до переименования в WhitePact и сохранены без изменений — в разделе 3 файла MIGRATION_WHITEPACT_V2.md объясняется, почему вместо переименования опубликованного пакета был добавлен пакет-алиас (whitepact).


Быстрый старт за 30 секунд

# Start the governance dashboard
pip install "rai-governance-platform[dashboard]"
uvicorn responsibleai.dashboard.app:app --port 8765

# Evaluate a model (no LLM key needed — supply your own scores)
curl -X POST http://localhost:8765/api/evaluate \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "gpt-4o",
    "provider": "openai",
    "fairness": 0.80,
    "privacy": 0.85,
    "security": 0.82,
    "robustness": 0.78,
    "compliance": 0.90,
    "authenticity": 0.88
  }'
{
  "trust_score": { "trust_score": 83.65, "grade": "B", "risk": "LOW" },
  "compliance": { "overall_score": 80.5, "eu_ai_act_tier": "limited_risk", "violations": 0 },
  "passport_id": "rai-a3f7c2b1",
  "passport_hash": "4d8e1f2a9c3b7e6d...",
  "drift_alert": null
}

Откройте http://localhost:8765, чтобы увидеть дашборд в реальном времени, и http://localhost:8765/api/docs — для интерактивной документации API.


Ядро управления — пять типов решений вместо бинарного «разрешить/запретить»

src/responsibleai/governance/ (полный контракт архитектуры — в разделах 4–8 файла SPEC.md) — это детерминированный runtime-механизм авторизации, который стоит перед вызовами инструментов агентом:

from responsibleai.governance import WhitePactRuntimeGateway, ActionRequest, AuthorityContext

gateway = WhitePactRuntimeGateway()
result = gateway.evaluate(
    action=ActionRequest(tool_name="rai_scan", arguments={"text": "..."}),
    authority=AuthorityContext(org_id="acme", agent_id="agent-1"),
)
print(result.decision)  # GovernanceDecision.ALLOW | ALLOW_WITH_REDACTION | REQUIRE_APPROVAL | DENY | QUARANTINE
  • Уровни риска (governance/risk.py) — каждый инструмент MCP классифицируется по жёстко заданной, защищённой от дрейфа таблице, а не выводится на лету в момент вызова.

  • Движок политик (governance/policy.py) — правила по принципу «первое совпадение выигрывает» с эффектами ALLOW / DENY / REQUIRE_APPROVAL.

  • Доказательства (governance/evidence.py) — каждое решение записывается в хеш-цепочный EvidenceRecord на уровне организации; verify_chain() обнаруживает подмену. Исходные значения аргументов никогда не сохраняются — только ключи-имена полей.

  • Процесс согласования (governance/approval.py) — решения с REQUIRE_APPROVAL ставят в очередь реальный, устойчивый к гонкам ApprovalRequest с API разрешения, а не просто строку в логе.

  • Сканер цепочки поставок (src/responsibleai/supplychain/) — прежде чем агент доверится стороннему MCP-серверу или инструменту, SupplyChainScanner возвращает один из трёх явных вердиктов (VERIFIED_FACT / INFERRED_SIGNAL / UNKNOWN) — никогда не единый непрозрачный балл доверия — на основе обнаружения тайпсквоттинга, сканирования описаний инструментов и перекрёстной сверки с известными инцидентами.

  • Identity Bridge (integrations/identity_bridge.py) — сопоставляет claims ID-токенов Entra ID, Google Workspace, Okta и AWS (Cognito / IAM Identity Center) с IdentityContext, а также map_groups_to_authority() для преобразования членства в группах IdP в AuthorityContext с предоставленными типами действий. См. раздел Identity Bridge в MACHINE_AUTHORITY_V1.md, где точно указано, что проверяется (корректность формы claims в соответствии с публичной документацией каждого провайдера), а что нет (тестирование на живых тенантах, разрешение имён групп через Graph/Admin-SDK, путь SigV4 без JWT в AWS).

Ни одно решение управления не принимается на основе LLM; почему — см. DETERMINISTIC_VS_PROBABILISTIC.md.

Увидеть сквозной сценарий: examples/08_whitepact_enterprise_scenario.py прогоняет полный сценарий (организация онбордит автономного финансового агента) через все восемь инвариантов машинной авторизации — потолок прав, делегирование, ослабление, кворум согласования, композиция workflow, бюджет автономии, межсетевой экран памяти, пакет доказательств — против реального кода, API-ключи не требуются:

python examples/08_whitepact_enterprise_scenario.py

MCP-сервер — управляйте каждым вызовом ИИ из Claude Code, Claude Desktop или любого MCP-клиента

MCP-сервер (Model Context Protocol) предоставляет WhitePact как 30 инструментов и 20 ресурсов (10 канонических URI ресурсов, двойная публикация под схемами whitepact:// и rai:// — см. MIGRATION_WHITEPACT_V2.md) любому MCP-совместимому клиенту — Claude Code, Claude Desktop, Cursor, Windsurf или собственной среде исполнения агента. Поддерживаются три транспорта: stdio, Streamable HTTP (/mcp, актуальная спецификация MCP) и устаревший HTTP+SSE (/sse + /messages/, сохранён для старых клиентов). Когда клиент команды указывает на этот сервер, каждое взаимодействие с ИИ автоматически проходит через управление — пятиуровневые решения, оценка доверия, guardrails, проверки соответствия (NIST AI RMF / EU AI Act / ISO 42001), оценка предвзятости, обнаружение дрейфа, отслеживание затрат и хеш-цепочные аудиторские доказательства срабатывают при любом вызове без изменений в коде.

Установка

# Install
pip install "rai-governance-platform[dashboard,mcp]"

# Start the REST API (MCP tools call it internally)
RAI_DB_PATH=/var/lib/rai/governance.db \
RAI_API_KEYS=your-key-here \
uvicorn responsibleai.dashboard.app:app --host 127.0.0.1 --port 8765 &

# Add to Claude Code (~/.claude/claude_desktop_config.json or via /mcp)
{
  "mcpServers": {
    "whitepact": {
      "command": "whitepact-mcp",
      "env": {
        "RAI_API_URL": "http://localhost:8765",
        "RAI_API_KEY": "your-key-here"
      }
    }
  }
}

whitepact-mcp и responsibleai-mcp — это одна и та же точка входа; см. [project.scripts] в pyproject.toml. Оба имени продолжат работать — используйте то, которое предпочитаете.

Доступные инструменты (27)

ИнструментЧто делает
rai_scanОбнаруживает и вычищает PII и вредоносный контент, прежде чем он попадёт в лог
rai_trust_scoreСоставной AI Trust Score (0–100) по 6 измерениям управления
rai_complianceОценка соответствия NIST AI RMF / EU AI Act / ISO 42001
rai_hallucinationРиск галлюцинаций на основе хеджирования, согласованности, неподтверждённых утверждений
rai_cost_estimateСтоимость вызова API модели в USD по количеству токенов
rai_redteam_payloadsПейлоады состязательных атак (prompt injection, jailbreak и т. д.)
rai_redteam_analyzeОтчёт безопасности по ответам модели на red team-пейлоады
rai_compare_modelsСравнение двух моделей по всем 6 измерениям доверия
rai_audit_summaryСводка возможностей управления (инструменты, фреймворки, векторы атак)
rai_healthСтатус и доступность модулей движка управления
rai_bias_evaluateДемографическая предвзятость по 6 измерениям проверки с доверительными интервалами
rai_drift_checkДрейф балла доверия между базовой и текущей оценкой
rai_passport_generateПроверяемый, защищённый от подмены AI Passport для оценки рисков поставщиков
rai_budget_checkРасход против бюджета, разбивка по командам/моделям, прогноз на конец месяца
rai_policy_checkПроверка текста/ответа на соответствие политике управления (блоклисты, дисклеймеры)
rai_stream_scanСканирование PII/вредоносного контента по чанкам потокового вывода LLM
rai_benchmarkОценка ответов по наборам truthfulqa / bbq / hellaswag
rai_benchmark_promptsНабор вопросов для набора бенчмарков
rai_model_routeСамая дешёвая модель, справляющаяся с задачей, с учётом компромисса цена/качество
rai_pii_reportАудиторский отчёт по PII по категориям с рекомендациями по устранению в рамках GDPR/CCPA
rai_incident_logСтруктурированная запись инцидента управления для аудита/SIEM
rai_eu_ai_act_classifyКлассификация уровня риска по EU AI Act с дорожной картой соответствия
rai_iso42001_gapАнализ пробелов системы менеджмента ИИ ISO/IEC 42001:2023
rai_executive_summaryГотовое для совета директоров резюме управления с индикаторами статуса RAG
rai_org_statusСнимок статуса управления: модели, оценки, соответствие, риски
rai_webhook_statusСостояние доставки вебхуков, анализ сбоев, действия по устранению
rai_check_trustБесплатный публичный запрос Trust Index для сторонней модели/инструмента перед его вызовом агентом — в отличие от всех прочих инструментов выше, которые оценивают вывод, созданный самим вызывающим

Интеграции с фреймворками агентов — LangChain, LangGraph, Google ADK

src/responsibleai/integrations/ подключает rai_check_trust напрямую к трём фреймворкам агентов, чтобы агент мог блокироваться по публичному баллу доверия инструмента до его вызова, а не просто логировать вызов постфактум:

  • LangChain (langchain_middleware.py) — TrustGateMiddleware, middleware для wrap_tool_call, который полностью блокирует вызов, если его балл ниже порога. Требует pip install "rai-governance-platform[langchain]".

  • LangGraph (langgraph_gate.py) — make_trust_gate_node(), узел, который приостанавливает граф через interrupt() для решения человека «одобрить/отклонить» по вызову ниже порога, вместо жёсткой блокировки. Требует pip install "rai-governance-platform[langgraph]".

  • Google ADK (adk_toolset.py) — build_stdio_toolset() / build_http_toolset(), тонкие фабрики поверх McpToolset из ADK, которые автоматически обнаруживают инструменты MCP-сервера этого проекта без кастомного связующего кода. Требует pip install "rai-governance-platform[adk]".

Все три — или любое их подмножество — устанавливаются через pip install "rai-governance-platform[agent-frameworks]". Обоснование каждого см. в фазе B файла GAME_CHANGER_BUILD_PLAN.md.

Доступные ресурсы (20)

10 канонических ресурсов, каждый из которых объявляется одновременно по обеим схемам URI — whitepact:// и rai:// (двойная схема добавлена как расширение — см. MIGRATION_WHITEPACT_V2.md; в таблице ниже приведён канонический URI):

РесурсURIСодержимое
Состояние сервисаwhitepact://healthТекущий статус работоспособности governance-сервиса
Каталог цен на моделиwhitepact://models/catalogПоддерживаемые модели с ценами за токен
Фреймворки комплаенсаwhitepact://compliance/frameworksNIST AI RMF, EU AI Act, ISO 42001
Категории атак red teamwhitepact://redteam/categoriesКатегории состязательных атак
Измерения доверияwhitepact://trust/dimensions6 измерений, лежащих в основе Trust Score
Каталог bias-пробwhitepact://bias/probesДоступные bias-пробы и интерпретация оценок
Шаблон политики управленияwhitepact://governance/policyШаблон политики по умолчанию для rai_policy_check
Справочник грейдов доверияwhitepact://trust/gradesПороги грейдов, уровни риска, рекомендации по развёртыванию
Чек-лист NIST AI RMFwhitepact://compliance/checklist/nistПрактический чек-лист внедрения NIST
Чек-лист EU AI Actwhitepact://compliance/checklist/eu-ai-actЧек-лист комплаенса для операторов высокого риска

Листинги в MCP-каталогах

WhitePact уже сегодня присутствует в реальных MCP-каталогах и доступен для запросов — это не планы на будущее, всё проверено вживую:

  • Официальный реестр MCP — файл server.json в корне репозитория (схема 2025-12-11, версия листинга 1.2.3) опубликован как io.github.Guruprasath-Annadurai/whitepact; доступность подтверждена через registry.modelcontextprotocol.io. В листинге заявлены и PyPI/stdio-пакет (whitepact-mcp, self-hosted, бесплатный, без ограничений), и запись remotes, указывающая на хостинговые транспорты Streamable HTTP и SSE (whitepact-mcp-http.onrender.com), — удалённый коннектор в один клик, а не просто устанавливаемый пакет.

  • Плагин Antigravity CLI — каталог plugins/whitepact/ в корне репозитория оформлен по официальному формату манифеста плагинов Antigravity и подключается через serverUrl к тому же хостинговому транспорту Streamable HTTP. Официального каталога плагинов Antigravity пока не существует, поэтому плагин распространяется напрямую из репозитория — см. plugins/whitepact/README.md.

  • Smithery — листинг guruprasathannadurai-official/whitepact: при сканировании хостингового транспорта Streamable HTTP (whitepact-mcp-http.onrender.com/mcp — отдельный сервис Render, не связанный с основной панелью) обнаружено 30 инструментов и 20 ресурсов. В этом развёртывании не настроен сервер авторизации OAuth — используются только статические Bearer API-ключи, — поэтому публичный, не требующий аутентификации файл /.well-known/mcp/server-card.json отдаёт те же актуальные TOOL_DEFS/RESOURCE_DEFS, которые объявляет сам сервер; это нужно каталогам, чьи сканеры не могут выполнить полный аутентифицированный обход вживую.

Полный план распространения, включая каталоги, в которые заявка ещё не подана, описан в compliance/MCP_DISTRIBUTION_GUIDE.md.

Интеграции с платформами

WhitePact подключается к основным AI-платформам как единый MCP-сервер через клиенты, совместимые со стандартом, — без отдельных форков под каждую платформу и без дублирования логики управления. Каноническая матрица совместимости (PLATFORM_COMPATIBILITY.md), инструкции по настройке для каждой платформы (GitHub Copilot, Microsoft Copilot, Claude, Grok, Gemini, Amazon Q, AWS Bedrock AgentCore, Mistral Le Chat, Cursor) и список задач, которые всё ещё требуют участия человека (FOUNDER_ACTIONS.md), собраны в docs/integrations/. Для живой проверки на уровне протокола против хостингового эндпоинта запустите python scripts/integration_smoke.py.


Python SDK

Расчёт Trust Score

from responsibleai import TrustScoreEngine, PassportGenerator

engine = TrustScoreEngine()
score = engine.compute(
    fairness=0.80, privacy=0.85, security=0.82,
    robustness=0.78, compliance=0.90, authenticity=0.88,
)
print(f"{score.overall:.1f} / 100  Grade: {score.grade}  Risk: {score.risk_level}")
# → 83.7 / 100  Grade: B  Risk: LOW

passport = PassportGenerator().generate(
    model_name="gpt-4o", provider="openai", trust_score=score,
    compliance_summary={"overall": 80.5},
)
print(passport.passport_id)
passport.export_html("passport.html")

Guardrails — блокировка PII до попадания в логи

from responsibleai import GuardrailsEngine

guardrails = GuardrailsEngine()
result = guardrails.scan("Customer SSN is 123-45-6789, email: alice@company.com")

print(result.is_blocked)      # True
print(result.pii_count)       # 2
print(result.redacted_text)   # "Customer SSN is [SSN], email: [EMAIL]"

Обнаружение галлюцинаций

from responsibleai import HallucinationDetector

detector = HallucinationDetector()
result = detector.analyze(
    "AI will replace all human jobs by 2025.",
    candidates=[
        "AI will automate some repetitive tasks.",
        "AI creates new job categories alongside displacing others.",
    ],
)
print(f"Risk: {result.hallucination_risk:.2f}  Level: {result.risk_level}")

Комплаенс — NIST AI RMF, EU AI Act, ISO 42001

from responsibleai import ComplianceEngine

engine = ComplianceEngine()
report = engine.evaluate(
    fairness_score=0.80, privacy_score=0.85,
    security_score=0.82, robustness_score=0.78,
    compliance_maturity=0.90, use_case="credit_scoring",
)
print(f"Score: {report.compliance_score * 100:.1f}%")
print(f"EU AI Act tier: {report.eu_ai_act_tier.value}")  # high_risk

Симуляция атак red team

from responsibleai import RedTeamSimulator

simulator = RedTeamSimulator()
report = simulator.run_all()

print(f"Security score: {report.security_score:.1f}/100")
print(f"Vulnerabilities: {len(report.vulnerabilities)}")
for v in report.critical_vulnerabilities:
    print(f"  [{v['cwe_id']}] {v['name']}")

Аналитика затрат

from responsibleai import CostTracker, ModelRouter, TokenUsage, BudgetPolicy

tracker = CostTracker(db_path="~/.responsibleai/data.db",
                      policy=BudgetPolicy(monthly_limit_usd=500.0))
usage = TokenUsage.create(
    provider="openai", model="gpt-4o",
    input_tokens=2000, output_tokens=800, team="product",
)
record = tracker.record(usage)
print(f"This call: ${record.total_cost:.4f}")
print(f"Month to date: ${tracker.total_cost(30):.2f}")

router = ModelRouter()
decision = router.route("Classify this email as spam or not spam", "balanced")
print(f"Recommended: {decision.recommended_model}  ${decision.estimated_cost_per_1k:.4f}/1k tokens")

Мониторинг дрейфа Trust Score

from responsibleai import TrustScoreEngine, TrustDriftMonitor

monitor = TrustDriftMonitor(db_path=":memory:", alert_threshold=5.0)
engine = TrustScoreEngine()

for fairness in [0.90, 0.88, 0.85, 0.72]:
    score = engine.compute(fairness=fairness, privacy=0.85, security=0.80,
                           robustness=0.80, compliance=0.85, authenticity=0.85)
    alert = monitor.record("gpt-4o", "openai", score)
    if alert:
        print(f"Drift alert! {alert.severity}: {alert.delta:.1f} pt drop")

Панель управления Governance

Production-приложение на FastAPI со SPA в тёмной теме. Рабочий экземпляр доступен по адресу whitepact.com.

# Development (auth off, SQLite in-memory)
RAI_AUTH_ENABLED=false uvicorn responsibleai.dashboard.app:app --port 8765

# Production (auth + persistent DB)
RAI_API_KEYS=your-key-here \
RAI_DB_PATH=/data/responsibleai.db \
uvicorn responsibleai.dashboard.app:app --host 0.0.0.0 --port 8765 --workers 4

# Docker
docker compose up -d

Эндпоинты REST API

МетодПутьОписание
GET/api/healthПроверка состояния — БД, аутентификация, OTEL, версия
GET/api/metricsАптайм, количество запросов, доля ошибок, расходы за месяц
POST/api/evaluateПолная оценка → trust-рейтинг + комплаенс + паспорт
GET/api/trust-score/{model}/{provider}История оценок + тренд дрейфа
GET/api/modelsВсе оценённые модели
POST/api/scanGuardrails — обнаружение PII + маскирование
POST/api/hallucinationАнализ риска галлюцинаций
POST/api/cost/recordФиксация расхода токенов
GET/api/cost/summaryРазбивка расходов по модели / команде / дню
POST/api/cost/analyzeЭффективность промптов — выявление избыточности
POST/api/cost/routeМаршрутизация задачи на самую дешёвую подходящую модель
GET/api/cost/modelsПолный каталог цен на модели
GET/api/drift/{model}/{provider}Тренд дрейфа + история
GET/api/auditЖурнал аудита с пагинацией (в рамках организации)
GET/api/audit/exportЭкспорт журнала аудита в JSONL или CSV
GET/api/audit/summaryСчётчики аудита, сгруппированные по эндпоинтам
GET/api/redteam/payloadsБиблиотека red-team-пейлоадов (10 векторов)
POST/api/redteam/analyzeАнализ ответов модели на предмет уязвимостей
GET/api/billing/usageРасход токенов и состояние бюджета
GET/api/leaderboardПубличный межмодельный рейтинг доверия (без аутентификации)
GET/api/leaderboard/{model}/{provider}/historyДинамика одной модели во времени (без аутентификации)
GET/api/leaderboard/{model}/{provider}/diagnosticРезультаты по каждому промпту — требуется план PRO
POST/api/trust-index/assessБесплатная публичная самооценка по открытому стандарту Trust Index
GET/api/trust-index/verify/{passport_id}Проверка заявленного рейтинга Trust Index (без аутентификации)
GET/api/trust-index/checkБесплатный и публичный — trust-рейтинг и число инцидентов для указанной модели/инструмента по точному имени (без аутентификации); именно этот эндпоинт вызывают rai_check_trust и интеграции LangChain/LangGraph/ADK
GET/api/trust-index/registryВсе оценённые модели/инструменты — сертифицированные и самодекларированные, начиная с новейших (без аутентификации) — источник данных для публичной страницы /registry
GET/api/trust-index/certifiedКаталог сертифицированных паспортов (без аутентификации)
POST/api/trust-index/certify/{passport_id}Сертификация паспорта — только для супер-администратора
GET/api/trust-index/badge/{passport_id}.svgВстраиваемый бейдж доверия (Self-Assessed / Certified), без аутентификации
POST/api/incident-db/reportСообщение о публично наблюдаемом AI-инциденте (без аутентификации, с ограничением частоты запросов)
GET/api/incident-dbПросмотр опубликованных инцидентов — фильтры по модели, провайдеру, серьёзности и типу (без аутентификации)
GET/api/incident-db/checkПроверка инцидентов по точному совпадению для модели/провайдера перед деплоем — PRO/ENTERPRISE
GET/api/incident-db/verifyПересчёт хеш-цепочки по всем опубликованным записям (без аутентификации)
POST/api/orgs/{org_id}/keys/{key_id}/mfa/enrollРегистрация API-ключа в TOTP MFA
POST/api/orgs/{org_id}/keys/{key_id}/mfa/verifyПроверка кода TOTP / резервного кода
GET/POST/api/governance/evidenceЧтение/запись записей governance-свидетельств, защищённых хеш-цепочкой
GET/POST/api/governance/approvalsПостановка решений REQUIRE_APPROVAL в очередь и их обработка

Интерактивная документация доступна по адресу /api/docs. Публичная страница рейтинга — /leaderboard; опубликованная методика подсчёта оценок описана в compliance/LEADERBOARD_METHODOLOGY.md, а для запуска оценок используйте scripts/run_leaderboard_eval.py. Открытый стандарт Trust Index и проверка паспортов — по адресу /verify/{id}; подробности в compliance/TRUST_INDEX_SPEC.md. Бесплатная самооценка без регистрации — /assess; все оценённые модели и инструменты собраны в /registry. Файл /llms.txt указывает AI-краулерам и движкам ответов на эти страницы как на канонические источники — обоснование приведено в GAME_CHANGER_STRATEGY.md.

Production-возможности

ВозможностьПодробности
АутентификацияBearer-токен (RAI_API_KEYS) с RBAC (OWNER / ADMIN / ANALYST / VIEWER)
MFATOTP (RFC 6238) на шаге интерактивного входа, можно сделать обязательным на уровне организации, одноразовые резервные коды
Шифрование на уровне полейВключается опционально (RAI_FIELD_ENCRYPTION_KEY) для audit_log.ip_address, контактных данных репортёров инцидентов, секретов вебхуков и MFA-секретов — с поддержкой ротации ключей (MultiFernet)
Rate limiting по организациямКаждый Bearer-токен получает собственный бакет лимитов (ключ — SHA-256) — без общего глобального пула
CORSНастраиваемые источники (RAI_ALLOWED_ORIGINS)
Заголовки безопасностиCSP, X-Frame-Options, X-Content-Type-Options
Структурированное логированиеJSON через structlog + ID запросов
База данныхSQLite (по умолчанию) или PostgreSQL (RAI_DATABASE_URL) с миграциями Alembic
НаблюдаемостьТрейсы и метрики OpenTelemetry (RAI_OTEL_ENDPOINT)
ВебхукиДоставка с HMAC-подписью и очередь повторов, сохраняемая в БД (переживает перезапуски)
Обработка исключенийСырые stack trace не доходят до клиентов
Governance-свидетельстваХеш-цепочка, изоляция по организациям, защита от подделки (GET /api/governance/evidence)

Миграции базы данных (Alembic)

Изменениями схемы управляет Alembic. Выполните alembic history, чтобы получить актуальный и достоверный список миграций и таблиц — это значение меняется достаточно часто, поэтому жёстко указанное здесь число быстро устареет; источник истины — сама команда.

# Upgrade to latest schema
RAI_DB_PATH=/var/lib/rai/governance.db alembic upgrade head

# PostgreSQL
RAI_DB_URL=postgresql://user:pass@host:5432/responsibleai alembic upgrade head

# Show migration history
alembic history

# Generate a new migration after changing engine.py
alembic revision --autogenerate -m "add_new_column"

Все миграции используют render_as_batch=True, поэтому работают на SQLite и PostgreSQL без изменений.


Вебхук-уведомления

Зарегистрируйте эндпоинт и получайте подписанные события при срабатывании governance-порогов.

# Register a Slack webhook
curl -X POST http://localhost:8765/api/webhooks \
  -H "Authorization: Bearer your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ops-slack",
    "url": "https://hooks.slack.com/services/...",
    "events": ["drift_alert", "budget_exceeded", "guardrail_triggered"],
    "provider": "slack",
    "secret": "hmac-secret-for-signature-verification",
    "max_retries": 5
  }'

Доставки сохраняются в базе данных. Если сервер перезапустится в середине цикла повторов, фоновый воркер продолжит работу с места остановки при следующем запуске. Расписание повторов: 1 с → 5 с → 30 с → 2 мин → 10 мин.

Проверяйте полезную нагрузку по заголовку X-RAI-Signature-256: sha256=.


Docker

git clone https://github.com/Guruprasath-Annadurai/Whitepact.git
cd Whitepact

python3 -c "import secrets; print(secrets.token_urlsafe(32))"

cp .env.example .env
# Edit .env — set RAI_API_KEYS

docker compose up -d
# Dashboard: http://localhost:8765
# API docs:  http://localhost:8765/api/docs

PostgreSQL + Redis (горизонтальное масштабирование)

# .env
RAI_DATABASE_URL=postgresql://rai:secret@db-host:5432/responsibleai
RAI_REDIS_URL=redis://redis-host:6379/0
RAI_OTEL_ENDPOINT=http://otel-collector:4318

pip install "rai-governance-platform[dashboard,postgres,redis,telemetry]"

# Run migrations before first start
RAI_DB_URL=postgresql://rai:secret@db-host:5432/responsibleai alembic upgrade head

Асинхронный слой работы с базой данных использует SQLAlchemy с пулом соединений (pool_size=10, max_overflow=20, pool_pre_ping=True). Когда задан RAI_REDIS_URL, rate limiting переключается на хранилище с бэкендом Redis.


BiasBuster — оценка предвзятости в CI

# Fail CI when demographic bias exceeds threshold
biasbuster run \
  --provider openai --model gpt-4o \
  --probes gender-bias,racial-bias,cultural-bias \
  --threshold 0.20 \
  --output report --format html
from biasbuster import BiasBusterRunner, GenderBiasProbe, RacialBiasProbe
from biasbuster.providers import OpenAIProvider
import asyncio

async def main():
    provider = OpenAIProvider(api_key="sk-...", model="gpt-4o")
    runner = BiasBusterRunner(provider=provider)
    suite = await runner.run([
        GenderBiasProbe(threshold=0.20),
        RacialBiasProbe(threshold=0.20),
    ])
    print(f"Score: {suite.overall_score:.4f}  {'PASSED' if suite.passed else 'FAILED'}")

asyncio.run(main())

Доступные пробы: gender-bias, racial-bias, age-bias, religious-bias, occupational-stereotype, cultural-bias

Подсчёт оценки: косинусное расхождение TF-IDF + асимметрия длины + расхождение тональности VADER, 95% доверительные интервалы по бутстрэпу, усиление при пересечении совместных отказов (×1.15).


PrivacyLabel — федеративная разметка данных на устройстве

from privacylabel import FederatedClient, FedAvgAggregator

client = FederatedClient(
    node_id="hospital-node-01",
    provider=MyProvider(),
    epsilon_per_round=0.1,
    total_epsilon=1.0,
    delta=1e-6,
    gradient_clip=1.0,
)
# Raw data stays on disk — only privatised gradients leave the device
summary = await client.train_round("data/local_records.jsonl")
print(f"Privacy budget used: ε={summary.privacy_spent['spent_epsilon']:.3f}")

Реализованы механизмы Лапласа, Гаусса, экспоненциальный механизм и DP-SGD. Поддерживается агрегация, устойчивая к византийским отказам, на основе геометрической медианы Вайцфельда.


GitHub Actions — шлюз контроля предвзятости в CI

- name: Bias evaluation
  run: |
    pip install "rai-governance-platform[openai]"
    biasbuster run \
      --provider openai --model gpt-4o-mini \
      --probes gender-bias,racial-bias,cultural-bias \
      --threshold 0.20
  env:
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

Переменные окружения

ПеременнаяПо умолчаниюОписание
RAI_DB_PATHgovernance.dbПуть к базе SQLite
RAI_DB_URL(не задано = SQLite)Полный URL SQLAlchemy — имеет приоритет над RAI_DB_PATH
RAI_DATABASE_URL(не задано)Псевдоним для RAI_DB_URL
RAI_API_KEYS(пусто = аутентификация выключена)Bearer-токены, разделённые запятыми
RAI_AUTH_ENABLEDtrueВключение/отключение принудительной аутентификации
RAI_REDIS_URL(не задано = in-memory)URL Redis для распределённого rate limiting
RAI_RATE_LIMIT_DEFAULT100/minuteОграничение частоты запросов на организацию (ключ — Bearer-токен)
RAI_OTEL_ENDPOINT(не задано = отключено)HTTP-эндпоинт OTLP
RAI_OTEL_SERVICE_NAMEresponsibleaiИмя сервиса для трассировок
RAI_ALERT_THRESHOLD5.0Падение Trust Score, при котором срабатывает оповещение о дрифте
RAI_MONTHLY_BUDGET_USD10000.0Месячный лимит расходов на AI
RAI_LOG_LEVELINFOУровень логирования
RAI_LOG_JSONtrueСтруктурированные JSON-логи
RAI_HOST127.0.0.1Адрес для привязки
RAI_PORT8765Порт

Также читаются эквиваленты с двойным префиксом WHITEPACT_* в тех случаях, когда они описаны в MIGRATION_WHITEPACT_V2.md; имена RAI_* остаются основным и всегда поддерживаемым вариантом.


Разработка

git clone https://github.com/Guruprasath-Annadurai/Whitepact.git
cd Whitepact

python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# Full test suite (run it to see the current test count and coverage —
# see CONTRIBUTING.md's Running Tests section for why no number is
# hardcoded here)
pytest

# Dashboard tests only
RAI_DB_PATH=:memory: RAI_AUTH_ENABLED=false pytest tests/test_dashboard_api.py

# Webhook persistence tests
pytest tests/test_webhook_persistence.py

# MCP server tests
pytest tests/test_mcp_server.py

# Lint + type check
ruff check src/ tests/
mypy src/responsibleai src/biasbuster

Дорожная карта

Канонический план NOW/NEXT/LATER см. в ROADMAP.md. Список ниже — сохранённая для справки историческая сводка изменений по версиям.

  • v0.1 — BiasBuster: гендерная проба, 4 провайдера, CLI, интеграция с CI

  • v0.2 — Расовые, возрастные, религиозные и профессиональные пробы, HTML-генератор отчётов, федеративный DP в PrivacyLabel

  • v0.3 — Культурная предвзятость, интерсекциональный анализ, ансамбль DeepfakeDetector

  • v0.4 — Cost Intelligence (CostTracker, ModelRouter, тарифы для 16 моделей), Trust Drift Monitor

  • v0.5 — Governance Dashboard (FastAPI), Trust Score, AI Passport, Guardrails, галлюцинации, комплаенс, Red Team, CI/CD, Docker, SLA

  • v0.6 — Асинхронный PostgreSQL (SQLAlchemy), rate limiting через Redis, APM на OpenTelemetry, интеграционные тесты LLM

  • v1.0 — Оповещения о дрифте через WebSocket, эндпоинт Prometheus, многотенантный RBAC, API управления организациями

  • v1.1 — MCP-сервер (10 инструментов, 5 ресурсов), API журнала аудита, API red team, API биллинга, миграции Alembic, rate limiting на уровне организации, очередь повторных попыток webhook с сохранением в БД

  • v1.2 — Публичный Leaderboard, Trust Index и паспорта с встраиваемыми бейджами, база данных AI-инцидентов, TOTP MFA, расширенное шифрование полей, webhooks с сохранением в БД, полная переработка UI дашборда, брендирование white-label, по-настоящему работающий hosted-инстанс — полный список в CHANGELOG.md

  • Миграция WhitePact (1.2.01.2.2) — ядро принятия решений по governance, MCP Streamable HTTP + OAuth/OIDC, уровневая классификация рисков + движок политик, доказательства на основе хеш-цепочки, процесс согласований, кворум из нескольких утверждающих + цепочки делегирования, обнаружение upstream MCP-инструментов, сканер доверия и цепочки поставок для MCP, HA-развёртывание через Helm, безопасность цепочки поставок (SBOM/provenance), инженерия релизов, open source governance, действующие листинги в официальном MCP Registry и Smithery — полный поэтапный журнал и перечень незавершённого — в MIGRATION_WHITEPACT_V2.md

  • v2.0 и далее — поэтапный план до v6.0 см. в VERSION_ROADMAP.md

  • Стратегическое направлениеGAME_CHANGER_STRATEGY.md описывает ставку на инфраструктуру (бесплатный публичный реестр доверия, агент-ориентированный примитив проверки доверия, цитируемость в AI-движках ответов) как альтернативу пути enterprise SaaS, а GAME_CHANGER_BUILD_PLAN.md разбивает её на конкретные инженерные этапы применительно к текущей кодовой базе


Безопасность и гарантии открытого кода

Официальный проект OpenSSF/OSPS BadgeApp в настоящее время фиксирует OpenSSF Best Practices Silver и OSPS Baseline Level 1. Это добровольные подтверждения со стороны проекта, а не независимый аудит, тест на проникновение, сертификация SOC 2 или ISO. Актуальные технические границы и границы публичных заявлений поддерживаются в WHITEPACT_TRUST_STATUS.md и PUBLIC_TRUST_CLAIMS.md.

Потребители релизов могут ознакомиться с доказательствами подписанных тегов, процессом выпуска релизов, политикой безопасности, границей доказательств SLSA и руководством по верификации релизов. Повторно используемый пайплайн trusted-builder присутствует в ветке main. Релиз v1.2.6 полностью прошёл этот путь: его wheel и sdist были воспроизведены, захешированы, снабжены аттестациями, независимо проверены в задаче публикации, опубликованы на PyPI без пересборки, сверены по хешам с PyPI и приложены к GitHub Release вместе с CycloneDX SBOM. Независимая потребительская верификация была повторена 2026-08-31. Доказательства этого релиза оценены как соответствующие SLSA v1.2 Build L3; SLSA — это фреймворк соответствия требованиям, а не сертификация и не гарантия безопасности артефакта.

Дополнительные материалы

  • SPEC.md — действующий архитектурный контракт

  • MACHINE_AUTHORITY_PROBLEM.md — проблема, которую решает работа над слоем полномочий в v3

  • MACHINE_AUTHORITY_V1.md — перечень восьми ключевых инвариантов машинных полномочий (Delegation Graph, Autonomy Budget, Memory Firewall, Evidence Bundle и другие)

  • ENFORCEMENT_BOUNDARY.md — где именно заканчиваются полномочия каждого инварианта: встроенное принуждение (inline enforcement) против добровольной контрольной точки (voluntary chokepoint)

  • LEGACY_TO_MACHINE_AUTHORITY_MAP.md — сопоставление концепций RBAC/OAuth/IAM с их аналогами в WhitePact — для читателей, пришедших из мира традиционного контроля доступа

  • MIGRATION_WHITEPACT_V2.md — журнал миграции с разбивкой по этапам: что уже сделано, а что — явно нет

  • DEFINITION_OF_DONE.md — итоговый отчёт: что реально на сегодняшний день, а что нет — и всё это можно проверить

  • SECURITY_THREAT_MODEL.md — актуальная модель угроз безопасности и поверхности атаки

  • DETERMINISTIC_VS_PROBABILISTIC.md — почему решения по управлению (governance) детерминированы

  • SLA.md, ENTERPRISE_SECURITY.md, SECURITY.md — позиция по корпоративным вопросам и безопасности, изложенная честно

  • compliance/SOC2_ALTERNATIVE_PATH.md — реальные, бесплатные и независимо проверяемые сигналы доверия на данный момент; честный путь к настоящему SOC 2, когда на него найдётся бюджет

  • docs/ACCESSIBILITY.md, docs/INTERNATIONALIZATION.md — подход к доступности по стандарту WCAG2AA и архитектура i18n дашборда — оба с реальными автоматическими проверками в CI

  • compliance/PROJECT_CONTINUITY_PLAN.md — чек-лист доступа и восстановления, который понадобился бы второму человеку, если основатель станет недоступен; честно обозначен как план, а не как доказательство устойчивости к bus factor (второго человека с таким доступом пока нет)


Лицензия

MIT — см. LICENSE.