Перейти к содержимому

Решение проблем

Это руководство помогает восстановиться после типичных проблем при работе с MCP Moira workflows.

Восстановление контекста после архивации

Заголовок раздела «Восстановление контекста после архивации»

Когда беседа архивируется или компактируется, агент теряет:

  • Текущий execution ID (processId)
  • Контекст шага workflow
  • Информацию о прогрессе

Состояние workflow сохраняется на MCP сервере - теряется только память агента.

  1. Найти активные executions:
session({ action: "executions" })

Возвращает список executions со статусом, workflow ID и заметками:

[
{
"executionId": "abc-123",
"workflowId": "development-flow",
"status": "waiting",
"note": "Фича: система авторизации",
"currentNodeId": "implement-step"
}
]
  1. Получить текущий шаг без продвижения:
session({ action: "current_step", executionId: "abc-123" })

Возвращает текущую директиву и контекст:

{
"directive": "Реализовать фичу...",
"completionCondition": "Фича работает и протестирована",
"inputSchema": { ... }
}
  1. Продолжить workflow:
step({ processId: "abc-123", input: { ... } })

Для облегчения восстановления сохраняйте process ID в рабочей директории:

Окно терминала
# Создать process-id.txt в директории фичи
echo "abc-123" > ./feature-name/process-id.txt

Включайте в архивы сессий:

  • Название фичи
  • Process ID
  • Описание текущего шага

Список всех активных workflow executions текущего пользователя.

Вызов: session({ action: "executions" })

Фильтры:

  • status: Массив статусов - ["waiting", "running", "completed", "failed"]
  • workflowId: Фильтр по конкретному workflow
  • search: Поиск в заметках executions

Пример с фильтрами:

session({
action: "executions",
status: ["waiting", "running"],
search: "auth"
})

Получает текущую директиву шага без продвижения workflow.

Вызов: session({ action: "current_step", executionId: "..." })

Параметры:

  • executionId (обязательно): ID execution для проверки

Возвращает:

  • directive: Что делать
  • completionCondition: Критерии успеха
  • inputSchema: Структура ответа

Получает полное состояние execution включая переменные контекста.

Вызов: session({ action: "execution_context", executionId: "..." })

Параметры:

  • executionId (обязательно): ID execution для просмотра

Возвращает:

  • executionId: UUID execution
  • workflowId: Выполняемый workflow
  • status: Статус execution (running, waiting, completed, failed)
  • currentNodeId: ID текущего узла
  • waitingForInputNodeId: Узел ожидающий input (если есть)
  • note: Заметка execution
  • context.variables: Переменные контекста
  • context.nodeStates: Состояния узлов
  • createdAt, updatedAt, completedAt: Временные метки
  • error: Сообщение об ошибке (если failed)

Причина: Неверный или истёкший processId

Решение:

  1. Используйте session({ action: "executions" }) для поиска активных executions
  2. Используйте правильный executionId из списка
  3. Process ID - это UUID типа abc123-def456-...

Причина: Попытка продвинуть завершённый или упавший execution

Решение:

  1. Проверьте статус execution через session({ action: "execution_context", executionId: "..." })
  2. Статус должен быть waiting для принятия input
  3. Если completed или failed, запустите новый execution

Причина: Input не соответствует inputSchema

Решение:

  1. Проверьте inputSchema текущего шага
  2. Убедитесь что имена полей совпадают точно (регистрозависимо)
  3. Убедитесь что типы данных совпадают (string vs number)
  4. Включите все обязательные поля

Причина: Сессия была архивирована/компактирована

Решение:

  1. Проверьте process-id.txt в рабочей директории
  2. Используйте session({ action: "current_step" }) для получения контекста
  3. Напомните агенту: “Продолжай 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" } })
Пользователь: Какие workflows я запустил?
Агент:
1. session({ action: "executions" })
→ Список всех активных executions с заметками
2. session({ action: "execution_context", executionId: "abc-123" })
→ Показывает полный контекст включая переменные
Агент:
1. session({ action: "execution_context", executionId: "abc-123" })
→ status: "waiting", currentNodeId: "validation-step"
2. session({ action: "current_step", executionId: "abc-123" })
→ Показывает чего ожидает workflow