Паттерн эскалации
Назначение
Заголовок раздела «Назначение»Когда автоматические повторные попытки не дают результата, эскалация пользователю для ручного вмешательства. Предотвращает бесконечные циклы и позволяет использовать человеческое суждение при сложных сбоях.
Структура
Заголовок раздела «Структура»[action] → [verify] → failure → [check-retries] → retries<max → [retry] → retries>=max → [escalate-to-user]Реализация
Заголовок раздела «Реализация»Проверка лимита повторов
Заголовок раздела «Проверка лимита повторов»{ "type": "condition", "id": "check-retry-limit", "condition": { "operator": "lt", "left": { "contextPath": "current_iteration" }, "right": 3 }, "connections": { "true": "fix-and-retry", "false": "escalate-to-user" }}Узел эскалации
Заголовок раздела «Узел эскалации»{ "type": "agent-directive", "id": "escalate-to-user", "directive": "Automated resolution failed after {{current_iteration}} attempts.\n\nProblem: {{last_error}}\nAttempted fixes: {{attempted_fixes}}\n\nAsk user how to proceed:\n- Provide manual fix instructions?\n- Skip this step?\n- Abort workflow?", "inputSchema": { "type": "object", "properties": { "user_decision": { "type": "string", "enum": ["fix", "skip", "abort"] }, "user_instructions": { "type": "string" } }, "required": ["user_decision"] }, "connections": { "success": "route-user-decision" }}Маршрутизация решения пользователя
Заголовок раздела «Маршрутизация решения пользователя»{ "type": "condition", "id": "check-abort", "condition": { "operator": "eq", "left": { "contextPath": "user_decision" }, "right": "abort" }, "connections": { "true": "workflow-aborted", "false": "check-skip" }}{ "type": "condition", "id": "check-skip", "condition": { "operator": "eq", "left": { "contextPath": "user_decision" }, "right": "skip" }, "connections": { "true": "proceed-to-next", "false": "apply-user-fix" }}Сбор контекста ошибок
Заголовок раздела «Сбор контекста ошибок»Отслеживание ошибок во время повторных попыток:
{ "id": "handle-error", "directive": "Record error details for escalation context.\n\nCurrent iteration: {{current_iteration}}\nError encountered: [describe error]", "inputSchema": { "properties": { "last_error": { "type": "string" }, "attempted_fix": { "type": "string" } }, "required": ["last_error"] }}Корректное прерывание
Заголовок раздела «Корректное прерывание»{ "type": "agent-directive", "id": "workflow-aborted", "directive": "User chose to abort workflow.\n\nCleanup tasks:\n- Save partial progress\n- Document what was completed\n- Note why abort was necessary", "inputSchema": { "properties": { "cleanup_completed": { "type": "boolean" }, "progress_summary": { "type": "string" } }, "required": ["cleanup_completed"] }, "connections": { "success": "end-aborted" }}Уровни эскалации
Заголовок раздела «Уровни эскалации»Для сложных workflow рассмотрите несколько уровней эскалации:
- Автоматический повтор: Первые 3 попытки
- Анализ агентом: Более глубокое исследование
- Уведомление пользователя: Информировать, но продолжить
- Вмешательство пользователя: Требуется решение
- Полное прерывание: Остановить workflow
Реальный пример
Заголовок раздела «Реальный пример»Из development-flow.json:
{ "id": "collect-user-feedback", "directive": "Verification failed {{current_iteration}} times.\n\nAsk user:\n- Provide guidance for resolution?\n- Skip this step?\n- Modify the plan?\n\nSummarize the problem and what has been attempted.", "inputSchema": { "properties": { "user_guidance": { "type": "string" }, "decision": { "type": "string", "enum": ["continue", "skip", "modify"] } }, "required": ["decision"] }}Связанные паттерны
Заголовок раздела «Связанные паттерны»- Цикл валидации - Автоматический повтор перед эскалацией
- Верификация шагов - Что запускает эскалацию