Автоматизация сценарием
Соберите на холсте сценарий, который входит, получает заказы, принимает решение и уведомляет вас; запустите его, поставьте по расписанию и запускайте из вебхука.
Сценарий связывает запросы и другие шаги на холсте, так что работа, которую вы делаете вручную, выполняется одним щелчком, по расписанию или когда её вызывает другая система. В этом руководстве вы построите Orders to ship: он входит в демо-магазин, получает заказы Хайди и отправляет уведомление, если какой-то заказ оплачен, но ещё не отправлен.
- Время: 20 минут.
- Вам понадобится: рабочее пространство Alpenglow с выбранным Без окружения. Его сценарий Morning stock check — готовый пример такой же формы.
- Вы узнаете: про блоки и связи, блоки «Если» и «Уведомить», журнал запуска, расписания, вебхуки и
echolot flow run.
1. Создайте сценарий
- Переключитесь на Сценарии (⌘5).
- Откройте меню + боковой панели (Новый сценарий) и выберите Пустой сценарий. Откроется сценарий Новый сценарий с блоком Старт, связанным с блоком Результат.
- Щёлкните пустое место холста, чтобы ни один блок не был выбран. В инспекторе задайте Имя
Orders to shipи ОписаниеSays when an order is paid but not shipped.
Пока сценарий открыт, в боковой панели перечислены Запросы рабочего пространства, которые можно перетащить на холст. Раздел Из шаблона в меню + вместо этого начинает с готового сценария, например Постраничный экспорт; см. шаблоны.
2. Добавьте запросы
- Наведите указатель на связь между Старт и Результат и нажмите её кнопку Разорвать эту связь.
- Перетащите Auth › Sign in из боковой панели на холст. Он превратится в блок Запрос с названием Sign in,
входом
sendи выходамиsuccessиfail. - Перетащите Orders › List orders на холст справа от него.
- Свяжите их: протяните связь от порта
runблока Старт к портуsendблока Sign in, затем от портаsuccessблока Sign in к портуsendблока List orders.
Sign in сохраняет токен в {{token}} при каждом успехе, поэтому List orders отправляет новый. Выход success
блока «Запрос» несёт ответ: status, headers, body, time и url. fail срабатывает, когда запрос не получил
ответа или проверка не прошла.
3. Примите решение блоком «Если»
-
Выберите Блок на панели инструментов (⇧⌘B), введите
Ifв поле Искать блоки или запросы и нажмите ↩. -
В инспекторе задайте Название
Waiting to ship?и Условие:value.body.items.some(o => o.status === 'paid')Условие — это JavaScript.
value— то, что пришло на вход: здесь это ответ List orders. -
Свяжите
successблока List orders со входомvalueблока «Если».
4. Уведомите себя
-
Протяните связь от порта
trueблока «Если» и отпустите над пустым местом холста. Там откроется выбор блока. Выберите Уведомить: он сразу связан сtrue. -
В настройках блока задайте Название
Orders to shipи Сообщение:{{value.body.total}} orders, at least one paid and waiting.{{value…}}подставляет части того, что пришло на вход; переменные рабочего пространства тоже работают. -
Свяжите
successблока List orders также со входомvalueблока Результат. Вебхук отвечает тем, что доходит до Результат (шаг 7).
Выберите Упорядочить, чтобы выстроить блоки в порядке выполнения, и По размеру (⌥⌘0), чтобы увидеть их все.

5. Запустите его
- Нажмите Запустить (⌘R).
- Во время выполнения каждый блок показывает значок, затем Готово. Журнал запуска под холстом перечисляет все блоки с их временем.
- Уведомление говорит Orders to ship: 3 orders, at least one paid and waiting. Заказ демо
ord_8Jm4Qxоплачен. В первый раз macOS спросит, можно ли Echolot показывать уведомления. - Выберите List orders. Последний запуск в инспекторе показывает, что вошло и что вышло; переключайте Показать между Входные данные и Результат.
Измените условие на o.status === 'cancelled' и запустите снова: блок «Если» отправляет значение на false, который ни с
чем не связан, поэтому уведомления нет. Верните как было.
Когда запуск завершается ошибкой, блок с ошибкой показывает её. Там, где доступна встроенная модель Mac, Объяснить ошибку в журнале запуска говорит, что пошло не так. Прошлые запуски остаются в меню Запуски на панели инструментов. Подробнее — в разделе запуск и триггеры.
6. Запускайте по расписанию
- Выберите блок Старт. В его инспекторе есть раздел Триггеры.
- Включите Расписание. Задайте Каждые (минуты)
60или введите строку cron в Или строка cron (минута час день месяц день недели), например0 7 * * 1-5— семь часов утра по будням. - Нажмите Разрешить. Echolot просит вас разрешить сценарий, прежде чем что-либо запустит его без вас, и просит снова после его изменения (Разрешить снова). Отозвать это останавливает.
Инспектор показывает следующий запуск. Расписания работают, пока открыто окно рабочего пространства. Чтобы запускать их
без приложения, используйте echolot flow serve -w Alpenglow.echolot на Mac или сервере, который остаётся включённым.
7. Запускайте из вебхука
-
В Триггеры блока Старт включите Вебхук. Оставьте метод POST и задайте путь
/orders-to-ship. -
Нажмите Разрешить. Инспектор покажет адрес на
127.0.0.1с кнопками Скопировать URL и Скопировать токен. -
В Терминале вызовите его, передав токен как Bearer-токен:
curl -X POST 'http://127.0.0.1:PORT/orders-to-ship' -H 'Authorization: Bearer TOKEN'Вставьте скопированные URL и токен. Сценарий запустится, а ответом будет то, что дошло до Результат: заказы.
Строка запроса и тело JSON заполняют входы сценария. Вебхук отвечает только на этом Mac и пока открыто окно;
echolot flow serve обслуживает вебхуки без приложения, по умолчанию на порту 4100. Ещё один пример — Order status on webhook в Alpenglow. Сценарий можно также предложить ИИ-агентам как инструмент (Агенты (MCP-инструмент)); см.
агентов.
8. Запустите из Терминала
echolot flow list -w Alpenglow.echolot
echolot flow run "Orders to ship" -w Alpenglow.echolotОн выводит каждый блок по мере завершения с его временем, затем текст уведомления и результат:
✓ start Start 0 ms
✓ … Sign in 168 ms
✓ … List orders 116 ms
✓ … Waiting to ship? 4 ms
notification: Orders to ship — 3 orders, at least one paid and waiting.
✓ … Notify 0 ms
Orders to ship: passed in 304 msВ CI добавьте --no-input, чтобы сценарий, которому нужен человек, завершался ошибкой, а не ждал. Сценарий — это файл в
папке flows рабочего пространства, поэтому он попадает в Git вместе с запросами, которые использует. См.
echolot flow.
Дальше
- Блоки: «Одобрить», «Спросить», «Для каждого», «Опрос», «Записать файл» и остальные.
- Шаблоны: вход по коду устройства, обновление токена, постраничный экспорт, монитор доступности.
- Безопасная работа агента с вашим рабочим пространством: предложите сценарий агенту как один инструмент.
Спецификация в первую очередь и мок
Возьмите или спроектируйте спецификацию OpenAPI, проверьте её линтером, запустите по ней мок, отправляйте запросы к моку и сверяйте реальные ответы со спецификацией.
Проверка MCP-сервера
Добавьте MCP-сервер демо-магазина, посмотрите, что он предлагает, вызовите его инструменты, прочитайте, как его видит модель, и сохраните вызовы как запросы с проверками.
