Решение проблем
Это руководство помогает восстановиться после типичных проблем при работе с MCP Moira workflows.
Восстановление контекста после архивации
Заголовок раздела «Восстановление контекста после архивации»Когда беседа архивируется или компактируется, агент теряет:
- Текущий execution ID (processId)
- Контекст шага workflow
- Информацию о прогрессе
Состояние workflow сохраняется на MCP сервере - теряется только память агента.
Шаги восстановления
Заголовок раздела «Шаги восстановления»- Найти активные executions:
session({ action: "executions" })Возвращает список executions со статусом, workflow ID и заметками:
[ { "executionId": "abc-123", "workflowId": "development-flow", "status": "waiting", "note": "Фича: система авторизации", "currentNodeId": "implement-step" }]- Получить текущий шаг без продвижения:
session({ action: "current_step", executionId: "abc-123" })Возвращает текущую директиву и контекст:
{ "directive": "Реализовать фичу...", "completionCondition": "Фича работает и протестирована", "inputSchema": { ... }}- Продолжить workflow:
step({ processId: "abc-123", input: { ... } })Сохранение Process ID
Заголовок раздела «Сохранение Process ID»Для облегчения восстановления сохраняйте process ID в рабочей директории:
# Создать process-id.txt в директории фичиecho "abc-123" > ./feature-name/process-id.txtВключайте в архивы сессий:
- Название фичи
- Process ID
- Описание текущего шага
Справочник инструментов навигации
Заголовок раздела «Справочник инструментов навигации»session - executions
Заголовок раздела «session - executions»Список всех активных workflow executions текущего пользователя.
Вызов: session({ action: "executions" })
Фильтры:
status: Массив статусов -["waiting", "running", "completed", "failed"]workflowId: Фильтр по конкретному workflowsearch: Поиск в заметках executions
Пример с фильтрами:
session({ action: "executions", status: ["waiting", "running"], search: "auth"})session - current_step
Заголовок раздела «session - current_step»Получает текущую директиву шага без продвижения workflow.
Вызов: session({ action: "current_step", executionId: "..." })
Параметры:
executionId(обязательно): ID execution для проверки
Возвращает:
directive: Что делатьcompletionCondition: Критерии успехаinputSchema: Структура ответа
session - execution_context
Заголовок раздела «session - execution_context»Получает полное состояние execution включая переменные контекста.
Вызов: session({ action: "execution_context", executionId: "..." })
Параметры:
executionId(обязательно): ID execution для просмотра
Возвращает:
executionId: UUID executionworkflowId: Выполняемый workflowstatus: Статус execution (running, waiting, completed, failed)currentNodeId: ID текущего узлаwaitingForInputNodeId: Узел ожидающий input (если есть)note: Заметка executioncontext.variables: Переменные контекстаcontext.nodeStates: Состояния узловcreatedAt,updatedAt,completedAt: Временные меткиerror: Сообщение об ошибке (если failed)
Типичные проблемы
Заголовок раздела «Типичные проблемы»”Process not found or expired”
Заголовок раздела «”Process not found or expired”»Причина: Неверный или истёкший processId
Решение:
- Используйте
session({ action: "executions" })для поиска активных executions - Используйте правильный executionId из списка
- Process ID - это UUID типа
abc123-def456-...
”Execution is not waiting for input”
Заголовок раздела «”Execution is not waiting for input”»Причина: Попытка продвинуть завершённый или упавший execution
Решение:
- Проверьте статус execution через
session({ action: "execution_context", executionId: "..." }) - Статус должен быть
waitingдля принятия input - Если
completedилиfailed, запустите новый execution
Ошибки валидации на step()
Заголовок раздела «Ошибки валидации на step()»Причина: Input не соответствует inputSchema
Решение:
- Проверьте
inputSchemaтекущего шага - Убедитесь что имена полей совпадают точно (регистрозависимо)
- Убедитесь что типы данных совпадают (string vs number)
- Включите все обязательные поля
Агент забывает контекст Workflow
Заголовок раздела «Агент забывает контекст Workflow»Причина: Сессия была архивирована/компактирована
Решение:
- Проверьте process-id.txt в рабочей директории
- Используйте
session({ action: "current_step" })для получения контекста - Напомните агенту: “Продолжай workflow {processId}“
Сценарии восстановления
Заголовок раздела «Сценарии восстановления»Сценарий: Возобновление после прерывания
Заголовок раздела «Сценарий: Возобновление после прерывания»Пользователь: Продолжай работу над фичей авторизации
Агент:1. session({ action: "executions", search: "auth" }) → Найден: executionId: "abc-123", status: "waiting"
2. session({ action: "current_step", executionId: "abc-123" }) → directive: "Реализовать endpoint логина"
3. [Выполняет работу]
4. step({ processId: "abc-123", input: { result: "done" } })Сценарий: Найти потерянный Process ID
Заголовок раздела «Сценарий: Найти потерянный Process ID»Пользователь: Какие workflows я запустил?
Агент:1. session({ action: "executions" }) → Список всех активных executions с заметками
2. session({ action: "execution_context", executionId: "abc-123" }) → Показывает полный контекст включая переменныеСценарий: Проверить почему Workflow застрял
Заголовок раздела «Сценарий: Проверить почему Workflow застрял»Агент:1. session({ action: "execution_context", executionId: "abc-123" }) → status: "waiting", currentNodeId: "validation-step"
2. session({ action: "current_step", executionId: "abc-123" }) → Показывает чего ожидает workflowСвязанная документация
Заголовок раздела «Связанная документация»- Руководство для агентов - Основы использования tools
- Справочник MCP Tools - Полная документация tools