Паттерн ветвления
Назначение
Заголовок раздела «Назначение»Маршрутизация выполнения workflow по различным путям на основе выбора пользователя, собранных данных или вычисленных условий.
Структура
Заголовок раздела «Структура»[get-choice] → [route] → choice=A → [path-a] → [merge] → choice=B → [path-b] → [merge]Реализация
Заголовок раздела «Реализация»Сбор выбора
Заголовок раздела «Сбор выбора»{ "type": "agent-directive", "id": "get-action", "directive": "Ask user: create new or edit existing?", "inputSchema": { "type": "object", "properties": { "action": { "type": "string", "enum": ["create", "edit"] } }, "required": ["action"] }, "connections": { "success": "route-action" }}Простая бинарная маршрутизация
Заголовок раздела «Простая бинарная маршрутизация»{ "type": "condition", "id": "route-action", "condition": { "operator": "eq", "left": { "contextPath": "action" }, "right": "create" }, "connections": { "true": "create-workflow", "false": "edit-workflow" }}Ветвление на несколько путей
Заголовок раздела «Ветвление на несколько путей»Для более чем 2 вариантов используйте цепочку условий:
{ "id": "check-create", "type": "condition", "condition": { "operator": "eq", "left": { "contextPath": "action" }, "right": "create" }, "connections": { "true": "create-branch", "false": "check-edit" }}{ "id": "check-edit", "type": "condition", "condition": { "operator": "eq", "left": { "contextPath": "action" }, "right": "edit" }, "connections": { "true": "edit-branch", "false": "delete-branch" }}Ветвление по булевому флагу
Заголовок раздела «Ветвление по булевому флагу»{ "type": "condition", "id": "check-has-tests", "condition": { "operator": "eq", "left": { "contextPath": "has_tests" }, "right": "yes" }, "connections": { "true": "run-tests", "false": "skip-tests" }}Ветвление по числовому значению
Заголовок раздела «Ветвление по числовому значению»{ "type": "condition", "id": "check-error-count", "condition": { "operator": "gt", "left": { "contextPath": "error_count" }, "right": 0 }, "connections": { "true": "fix-errors", "false": "proceed" }}Сложные условия
Заголовок раздела «Сложные условия»Комбинирование нескольких проверок:
{ "condition": { "operator": "and", "conditions": [ { "operator": "eq", "left": { "contextPath": "status" }, "right": "ready" }, { "operator": "gt", "left": { "contextPath": "items_count" }, "right": 0 } ] }}Объединение ветвей
Заголовок раздела «Объединение ветвей»Ветви обычно сходятся в общем узле:
[create-branch] → [save-workflow][edit-branch] → [save-workflow]Оба пути подключаются к одному целевому узлу.
Связанные паттерны
Заголовок раздела «Связанные паттерны»- Сбор информации - Сбор данных для принятия решений о маршрутизации
- Паттерн пропуска - Частный случай ветвления для опциональных шагов