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

Руководство для AI агентов

Это руководство объясняет как AI агенты используют MCP Moira tools для выполнения workflows.

MCP Moira предоставляет следующие инструменты:

ToolНазначение
listСписок доступных workflows
startЗапуск выполнения workflow
stepПродвижение workflow с input
manageCRUD операции с workflows
sessionИнформация о пользователе и executions
settingsНастройки пользователя
tokenТокены для upload/download
helpДокументация
start({ workflowId: "task-breakdown-flow" })

Возвращает:

{
"processId": "abc-123-def",
"directive": "Разбей задачу на шаги...",
"completionCondition": "Задача разбита на 3+ шага",
"inputSchema": {
"type": "object",
"properties": {
"steps": { "type": "array" }
},
"required": ["steps"]
}
}

После выполнения работы описанной в directive:

step({
processId: "abc-123-def",
input: {
"steps": ["Шаг 1", "Шаг 2", "Шаг 3"]
}
})

Возвращает следующую директиву или статус завершения.

Повторяйте вызовы step() пока workflow не вернёт завершение.

Каждый шаг workflow возвращает:

ПолеОписание
processIdUUID выполнения, используйте во всех step() вызовах
directiveЧто делать (инструкция)
completionConditionКогда готово (критерии успеха)
inputSchemaКак структурировать ответ (JSON Schema)

directive = ЧТО делать completionCondition = КОГДА успешно завершено

Пример:

  • directive: “Запусти все тесты проекта”
  • completionCondition: “Все тесты проходят (0 ошибок)”

Агент должен:

  1. Выполнить директиву (запустить тесты)
  2. Проверить что completionCondition выполнено (0 ошибок)
  3. Только тогда продолжить с step()

Когда указан inputSchema, ответ должен точно соответствовать схеме.

Пример схемы:

{
"type": "object",
"properties": {
"result": {
"type": "string",
"enum": ["pass", "fail"]
},
"evidence": {
"type": "string"
}
},
"required": ["result", "evidence"]
}

Валидный ответ:

{
"result": "pass",
"evidence": "Все 302 теста прошли"
}
session({ action: "executions" })

Возвращает все активные executions текущего пользователя со статусом, workflow ID и заметками.

Возобновить workflow после прерывания:

session({ action: "current_step", executionId: "abc-123" })

Возвращает текущую директиву без продвижения workflow.

session({ action: "execution_context", executionId: "abc-123" })

Возвращает состояние execution включая переменные контекста и историю.

Отслеживайте прогресс execution с заметками:

start({ workflowId: "dev-flow", note: "Фича: система авторизации" })

Обновить заметку во время выполнения через step() input:

step({
processId: "abc-123",
input: {
"task_result": "done",
"execution_note": "Шаг 3: Интеграционные тесты"
}
})

Или через session tool:

session({
action: "update-note",
executionId: "abc-123",
note: "Шаг 3: Интеграционные тесты"
})
list()
list({ search: "test" })
list({ visibility: "public", limit: 10 })
// 1. Запуск
start({ workflowId: "research" })
// → { processId: "xyz", directive: "...", ... }
// 2. Выполнить работу, затем продвинуться
step({ processId: "xyz", input: { findings: "..." } })
// → { directive: "следующий шаг...", ... }
// 1. Найти execution
session({ action: "executions" })
// → [{ executionId: "xyz", status: "waiting", ... }]
// 2. Получить текущий шаг
session({ action: "current_step", executionId: "xyz" })
// → { directive: "...", completionCondition: "...", ... }
// 3. Продолжить
step({ processId: "xyz", input: { ... } })

Если step() возвращает ошибку валидации, проверьте:

  1. Имена полей - Должны точно соответствовать схеме (регистрозависимо)
  2. Обязательные поля - Все required свойства должны присутствовать
  3. Типы данных - String vs number vs boolean должны совпадать
  4. Enum значения - Должны быть одним из допустимых значений