AIRUS PromptOps — Context Governance

Промпт в Notion — это записка на холодильнике, а не инфраструктура. Если промпт приносит деньги, у него должны быть владелец, версия, тесты, changelog, approval и rollback. AIRUS превращает промпты и контекст в управляемые production-артефакты.

Что делает

Prompt = не plain text, а управляемый пакет: инструкция, переменные, output schema, model-варианты, context policy, версия и gate. Каждый AI-ответ можно доказать prompt receipt: какая версия, какая модель, какой context, какой gate, какая цена.

Prompt Registry + версии
POST /v1/airus/prompts + /versions → semver-версии, история, diff. Промпт без версии — это продакшн на честном слове.
Lifecycle + rollback
draft → review → staging → production → deprecated. Прямой прыжок в прод запрещён; rollback возвращает предыдущую версию одним вызовом.
Context Policy Engine
Что можно в контекст, что нельзя: allow/block источников, data-classes, token budget, freshness, citation, provenance. Governance на платформе, а не в тексте промпта.
Prompt Gate + Receipt
Детерминированный gate: schema-validity, объявленные переменные, citation, cost-budget, injection/secret/safety-lint → Prompt Receipt (metadata-only).

Сигнал: governance не может жить внутри промпта

Известный кейс: агент нарушил инструкцию «не действовать без approval» после context compaction — инструкция просто выпала из контекста. Вывод: safety-правила, approvals и context-политики должны быть платформенным слоем, а не строкой в промпте.

  • Prompt-gate флажит anti-pattern governance_in_prompt_text — «approval/safety зашиты в текст» → выносите в ToolOps approval gate и Context Policy.
  • Context Policy Engine детерминированно решает, что попадёт в контекст, — не «мы аккуратно написали промпт».
  • Prompt Receipt связывает ответ с версией, моделью, политикой и gate-статусом — воспроизводимо и аудируемо.

Как вызвать

# 1. Context policy — что можно в контекст (JWT)
POST /v1/airus/context-policies
{ "policy_key": "ctx_support", "allowed_sources": ["support_kb"],
  "blocked_sources": ["hr_docs","finance_docs"], "data_classes_allowed": ["public","internal"],
  "max_context_tokens": 24000, "citation_required": true, "freshness_required": true }

# 2. Prompt package + версия (JWT)
POST /v1/airus/prompts            { "prompt_key": "support_answer", "context_policy_id": "..." }
POST /v1/airus/prompts/{id}/versions
{ "version": "1.4.2", "template": "Ответь на {{q}} по {{retrieved_context}}...",
  "variables": ["q","retrieved_context"], "output_schema": {"required":["answer","citations"]} }

# 3. Gate → Prompt Receipt (API-ключ, CI клиента)
POST /v1/airus/prompts/{id}/test  # → eval_gate_status, output_schema_valid, checks, cost_rub

# 4. Lifecycle
POST /v1/airus/prompts/{id}/promote   { "to_status": "production" }
POST /v1/airus/prompts/{id}/rollback  { "to_version": "1.4.1" }

Честно про gate

  • Gate — детерминированный: output-schema validity, объявленные/неиспользуемые переменные, citation requirement, cost-budget, injection/secret-lint, safety-instruction lint, governance-in-prompt anti-pattern, model-variants resolve. Это проверяемо и воспроизводимо.
  • Семантика (tone, hallucination risk via LLM-judge) — roadmap; связка с EvalOps golden-датасетами уже есть.
  • Prompt drift detector, A/B-тесты, prompt injection ML-scanner, prompt CI/CD, context provenance graph, prompt marketplace — roadmap.
  • Prompt Receipt — metadata-only: variables_hash по ключам, без сырых значений (правило #6).