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

Редактирование Workflows

Используйте инструмент manage с действием edit:

mcp__moira__manage({
action: "edit",
workflowId: "my-workflow",
changes: {
// изменения здесь
},
});

Запустите управляющий workflow:

mcp__moira__start({
workflowId: "workflow-management-flow",
});

Выберите “edit” при запросе действия.

mcp__moira__manage({
action: "edit",
workflowId: "my-workflow",
changes: {
metadata: {
version: "2.0.0",
description: "Updated description",
},
},
});
mcp__moira__manage({
action: "edit",
workflowId: "my-workflow",
changes: {
updateNodes: [
{
nodeId: "task-node",
changes: {
directive: "New directive text",
completionCondition: "New condition",
},
},
],
},
});
mcp__moira__manage({
action: "edit",
workflowId: "my-workflow",
changes: {
addNodes: [
{
type: "agent-directive",
id: "new-node",
directive: "New task",
completionCondition: "Task complete",
connections: { success: "existing-node" },
},
],
},
});
mcp__moira__manage({
action: "edit",
workflowId: "my-workflow",
changes: {
removeNodes: ["node-to-remove"],
},
});
  1. Получите текущую структуру

    mcp__moira__manage({
    action: "get-structure",
    workflowId: "my-workflow"
    })
  2. Найдите узлы для редактирования

    mcp__moira__manage({
    action: "search-nodes",
    workflowId: "my-workflow",
    query: "search term",
    });
  3. Получите детали узла

    mcp__moira__manage({
    action: "get-node",
    workflowId: "my-workflow",
    nodeId: "node-id",
    });
  4. Примените изменения

    mcp__moira__manage({
    action: "edit",
    workflowId: "my-workflow",
    changes: {
    /* ... */
    },
    });
  5. Валидация

    mcp__moira__manage({
    action: "validate",
    workflowId: "my-workflow",
    });
{
updateNodes: [
{
nodeId: "source-node",
changes: {
connections: {
success: "new-target-node",
},
},
},
];
}
{
updateNodes: [
{
nodeId: "condition-node",
changes: {
connections: {
true: "when-true-node",
false: "when-false-node",
},
},
},
];
}

Всегда обновляйте версию при внесении изменений:

{
metadata: {
version: "1.1.0"; // было 1.0.0
}
}

Семантика версий:

  • Major (2.0.0): Ломающие изменения, перестроенный поток
  • Minor (1.1.0): Новые функции, новые узлы
  • Patch (1.0.1): Исправления ошибок, правки текста
mcp__moira__manage({
action: "diff",
workflowId: "my-workflow",
compareWorkflowId: "my-workflow-old",
});
{
updateNodes: [
{
nodeId: "task-node",
changes: {
directive: "Corrected directive text",
},
},
];
}
{
updateNodes: [
{
nodeId: "input-node",
changes: {
inputSchema: {
type: "object",
properties: {
existing_field: { type: "string" },
new_field: { type: "string" }, // добавлено
},
required: ["existing_field", "new_field"], // обновлено
},
},
},
];
}
{
addNodes: [
{
type: "agent-directive",
id: "inserted-node",
directive: "New step",
connections: { success: "original-target" }
}
],
updateNodes: [
{
nodeId: "original-source",
changes: {
connections: { success: "inserted-node" }
}
}
]
}
Error: Node 'task-1' connection target 'missing-node' not found

Решение: обновите соединение на валидный ID узла.

Warning: Node 'orphan-node' is not reachable from start

Решение: добавьте соединение от другого узла или удалите изолированный узел.

Error: Unknown node type 'custom-type'

Решение: используйте допустимые типы: start, end, agent-directive, condition, expression, telegram-notification, subgraph.