Escalation Policy

Конкретные триггеры остановки агента. Каждый триггер — machine-checkable условие.

Отличие от Process-Escalation: Process описывает как эскалация работает (шаги, уровни, формат). Этот документ описывает когда агент обязан остановиться.


Триггер 1: Cost Overrun

Условие: task.cost_spent > task.budget_usd * 1.2 (потрачено > 120% бюджета)

ПорогДействиеЛог
80% бюджетаWarning в контекст агента: “Be concise, 80% budget used”audit.budget_warning
100% бюджетаSoft stop: завершить текущий LLM call, не начинать новыйaudit.budget_reached
120% бюджетаHard stop: status = 'failed', escalateaudit.budget_overrun

Кому: Director (если Executor) → CEO (если Director) → Human (если CEO или > $10)

Связь: Rules-Budget, INV-3


Триггер 2: Confidence Drop

Условие: агент вернул result.confidence < threshold (thresholds: INV-4)

Тип задачиThresholdДействие
Критическая (деплой, коммуникация)< 0.8Stop + escalate Human
Стандартная (research, analysis)< 0.6Stop + escalate Director/CEO
Некритическая (formatting)< 0.4Retry 1x с другим подходом, затем escalate

Лог: audit.low_confidence {confidence, threshold, task_type}

Запрещено: выполнять задачу при confidence ниже threshold. Ни “попробую”, ни “скорее всего”.


Триггер 3: Conflicting Evidence

Условие: агент обнаружил, что источники противоречат друг другу по ключевому выводу.

Признаки конфликта:

  • Два источника дают разные числа для одной метрики (TAM, pricing, user count) с расхождением > 2x
  • Источник A утверждает X, источник B утверждает NOT X
  • Scout и Researcher пришли к взаимоисключающим выводам

Действие:

  1. Зафиксировать оба варианта в result с пометкой "conflicting_evidence": true
  2. Не выбирать “более надёжный” — оба сохраняются
  3. Escalate → Director (или CEO, если Director = источник конфликта)

Лог: audit.conflicting_evidence {claim_a, claim_b, sources}

Связь: ConflictResolution, INV-5


Триггер 4: Tool Failure (3+ retries)

Условие: один и тот же tool call (web_search, LLM call, DB query) failed 3 раза подряд.

Действие:

  1. Stop: не пытаться 4-й раз
  2. Сохранить partial result (что удалось до failure)
  3. status = 'failed', error содержит все 3 error messages
  4. Escalate → Director

Лог: audit.tool_failure_exhausted {tool, attempts: 3, errors: [...]}

Не путать с: Judge rejection (это отдельный триггер — Условие 6)


Триггер 5: Out-of-Scope Drift

Условие: задача расползается за рамки original brief.

Machine-checkable признаки:

  • Агент создал > 2x child tasks от запланированного
  • Суммарный token count children > 3x parent budget_tokens
  • Агент вызывает tools не из своего allowed_tools списка
  • Payload содержит тему, не пересекающуюся с original question (semantic drift — проверяется Judge в 3.2)

Действие:

  1. Pause: завершить текущий шаг
  2. Escalate → Director с отчётом: “Original scope: X. Current scope: Y. Drift detected.”
  3. Director решает: продолжить с расширенным scope / вернуть к original / kill

Лог: audit.scope_drift {original_scope, current_scope, drift_signal}


Триггер 6: Policy Violation Risk

Условие: следующее действие агента может нарушить инвариант (Invariants) или правило Codex.

Примеры:

  • Агент собирается отправить данные на внешний API (INV-1)
  • Task result не содержит _meta (INV-2)
  • Агент собирается потратить > budget без approval (INV-3)

Действие:

  1. Немедленная остановка (до выполнения действия, не после)
  2. Escalate → CEO + Human (Codex violation = highest priority)
  3. Task: status = 'escalated', escalation_reason = 'policy_violation_risk'

Лог: audit.policy_violation_risk {invariant, action_blocked, context}


Триггер 7: Chamber Escalation

Условие: во время исполнения pipeline сработал любой критерий Level 2 или Level 3 по CriticalityPolicy.

Machine-checkable признаки:

  • Level 1 условия не выполнены целиком (хотя бы одно из пяти: confidence < 0.8, conflicting evidence, Judge < 6/10, impact > $5, non-factual question)
  • ИЛИ сработал явный Level 3 триггер (Go/No-Go на нишу, impact > $10, Judge FAIL, конфликтующие evidence на стратегическом вопросе, founder explicit request, confidence < 0.5, reputation/legal/financial экспозиция)
  • ИЛИ предыдущая Level 2 сессия вернула arbiter confidence < 8/10

Действие:

  1. Определить уровень по CriticalityPolicy §Criticality Assessment Procedure
  2. Level 2 → запустить auto-quorum Chamber session без участия founder’а. Если arbiter confidence ≥ 8/10 → результат auto-accepted, pipeline продолжается. Если < 8/10 → auto-escalate в Level 3.
  3. Level 3 → запустить full Chamber session с участием founder’а (blocking). Founder выбирает роль: Approver / Challenger / Contributor / Verifier.
  4. В обоих случаях: mandatory trace в session artifact по MultiLLMDeliberationPolicy §Audit Trail.

Лог: audit.chamber_escalation {level, trigger_criteria, question}

Связь: CriticalityPolicy, MultiLLMDeliberationPolicy, Deliberation-Chamber-Module, ADR-0016-chamber-v2-vision


Сводная таблица

ТриггерДействиеEscalate toPriority
Cost > 120%Hard stopDirector → CEO → Humanhigh
Confidence < thresholdStopDirector/CEO/Human (по типу)high
Conflicting evidenceStop + save bothDirectormedium
Tool failure 3xStop + save partialDirectormedium
Scope driftPauseDirectormedium
Policy violation riskImmediate stopCEO + Humancritical
Chamber Level 2 criteria metAuto-quorum Chamber (no founder)CEOmedium
Chamber Level 3 criteria metFull Chamber + founder participationHumanhigh

Связанные документы