Перейти к основному содержимому
Продвинутый10–14 часов

Лаборатория test oracle для side effects AI-агентов

Проверяйте agent workflow по trajectory, permissions, tool calls, side effects и authoritative state системы учёта, а не только по финальному тексту.

agent testingtrajectory evaluationauthority testingидемпотентностьstate reconciliation

Сценарий

Задача

Агент может читать CRM, создавать task и обновлять статус. Текстовый ответ может выглядеть правильно, но timeout после write, duplicate delivery или устаревшее approval оставят неправильный side effect. Постройте test oracle, который проверяет фактическую историю действий и authoritative final state, а не narration модели.

Пошаговое выполнение

1. Определите observable truth

Результат: У каждого consequential step есть детерминированная postcondition.

Задачи

  • Перечислите разрешённые tool actions
  • Определите authoritative system для каждого side effect
  • Задайте idempotency-key contract
  • Опишите запрещённые transitions

Проверки

  • Финальный assistant text не используется как единственный oracle
  • Для каждой write action есть authoritative read-back

2. Зафиксируйте expected trajectory

Результат: Тест знает допустимую последовательность state/tool transitions.

Задачи

  • Опишите normal path
  • Добавьте approval и deny paths
  • Добавьте escalation и abstain paths
  • Определите stop conditions

Проверки

  • Tool call вне scope считается failure даже при правильном final answer
  • Approval привязан к точным action и version

3. Инъецируйте failures вокруг side effects

Результат: Retries не создают дублей и не скрывают неизвестный state.

Задачи

  • Инъецируйте timeout после accepted write
  • Инъецируйте duplicate event
  • Инъецируйте stale precondition
  • Отзовите permission
  • Инъецируйте partial downstream failure

Проверки

  • UNKNOWN ведёт в reconciliation, а не blind retry
  • Duplicate delivery не создаёт повторный side effect

4. Постройте CI gate

Результат: Критические authority/state regressions блокируют release.

Задачи

  • Разделите text, trajectory и outcome graders
  • Задайте severity-aware thresholds
  • Сохраните trace artifact
  • Добавьте постоянные regression cases из incidents

Проверки

  • Критический side-effect failure не компенсируется высоким text-quality score
  • Regression report содержит точный configuration fingerprint

Критерии приёмки

  • Authoritative final state проверяется детерминированным oracle
  • Trajectory имеет явные allowed/prohibited transitions
  • Timeout-after-write проходит reconciliation test
  • Duplicate action не выполняется дважды
  • Критическая permission/side-effect regression блокирует release