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

Введение в Moira

Moira — это движок оркестрации воркфлоу, разработанный специально для AI-агентов. Он направляет агентов через многошаговые процессы, используя структурированные воркфлоу с четкими директивами и критериями успеха.

AI-агенты мощные, но нуждаются в структуре. Без направления они могут:

  • Терять фокус на сложных многошаговых задачах
  • Пропускать важные шаги или предварительные условия
  • Выдавать непоследовательные результаты
  • Упускать проверки качества и валидацию

Moira предоставляет систему воркфлоу на основе графов узлов, где каждый шаг имеет:

Директива

Четкая инструкция, что нужно сделать

Условие завершения

Критерии успеха, которые должны быть выполнены

Схема входных данных

Ожидаемая структура ответа (опционально)

Соединения

Ссылки на следующие шаги в воркфлоу

Агент выполняет каждый шаг, проверяет завершение и переходит к следующему узлу на основе графа воркфлоу.

flowchart LR
    A[Старт воркфлоу] --> B[Выполнить шаг]
    B --> C{Проверить завершение}
    C -->|Успех| D[Следующий шаг]
    D --> B
    C -->|Воркфлоу завершен| E[Конец]
  1. Агент запускает воркфлоу через MCP инструмент
  2. Получает директиву текущего шага и условие завершения
  3. Выполняет директиву
  4. Возвращает результат через инструмент step()
  5. Движок проверяет и переходит к следующему шагу
  6. Повторяет до завершения воркфлоу

Воркфлоу — это направленный граф узлов. Каждый узел представляет шаг в процессе. Узлы могут ветвиться по условию, зацикливаться или делегировать подграфам.

{
"id": "my-workflow",
"metadata": {
"name": "Мой воркфлоу",
"version": "1.0.0",
"description": "Пример воркфлоу"
},
"nodes": [
{ "id": "start", "type": "start", "connections": { "default": "task-1" } },
{
"id": "task-1",
"type": "agent-directive",
"directive": "...",
"connections": { "success": "end" }
},
{ "id": "end", "type": "end" }
]
}

Moira поддерживает 7 типов узлов:

ТипНазначение
startТочка входа для выполнения воркфлоу
endТерминальный узел, отмечающий завершение
agent-directiveЗадача для агента с директивой и условием завершения
conditionВетвление выполнения на основе структурированных условий
expressionВычисление значений с помощью арифметических выражений
subgraphДелегирование другому воркфлоу
telegram-notificationОтправка уведомлений через Telegram

Шаблоны позволяют использовать динамический контент в директивах и условиях через синтаксис {{variable}}:

{
"directive": "Проанализируй {{projectName}} и создай {{reportType}} отчёт"
}

Переменные могут ссылаться на:

  • Начальные данные из start узла
  • Результаты предыдущих шагов
  • Параметры воркфлоу

Выполнение — это работающий экземпляр воркфлоу. Оно поддерживает:

  • Текущая позиция — Какой узел активен
  • Контекст — Переменные и результаты шагов
  • История — Завершенные шаги и их результаты

Moira подключается к AI-агентам через Model Context Protocol. MCP сервер предоставляет инструменты для:

ИнструментНазначение
listПросмотр доступных воркфлоу
startЗапуск выполнения воркфлоу
stepВыполнение текущего шага и переход
manageСоздание, редактирование, получение воркфлоу
sessionПолучение информации о пользователе и активных выполнениях