Echolot
Сценарии

Запуск и триггеры

Запускайте сценарий вручную, по расписанию, по вебхуку, как инструмент для ИИ-агентов или из командной строки и разрешайте триггеры, которые запускают сценарии без вас.

Сценарий запускается, когда что-то его начинает: вы кнопкой Запустить; ИИ-агент, когда вы предлагаете сценарий как инструмент; расписание; вебхук; или echolot flow run в терминале или CI. Что бы ни запускало сценарий, каждый запрос идёт тем же путём, что и отправка со страницы запроса.

Запуск вручную

  1. Откройте сценарий на странице «Сценарии».
  2. Нажмите Запустить на панели инструментов или ⌘R.
  3. Если у сценария есть входы, лист Запустить с именем сценария запрашивает их. В каждом поле показаны имя входа, тип и обязательность, а начальное значение — это значение по умолчанию. Оставьте поле пустым, чтобы использовать значение по умолчанию, и нажмите Запустить.

Сначала сценарий сохраняется, так что запуск использует то, что на холсте. Он выполняется с активным окружением окна. Запустить недоступна, пока в сценарии есть ошибки; её подсказка говорит «Сначала исправьте проблемы сценария».

Когда активно защищённое окружение, кнопка называется Запустить (Production)… (с именем этого окружения), и Echolot один раз спрашивает подтверждение перед запуском. Запросы внутри запуска больше не спрашивают.

Вид запуска

Пока сценарий выполняется, его блоки показывают своё состояние на холсте, а под ним открывается журнал запуска:

На холстеЗначение
Рамка акцентного цветаБлок выполняется или ждёт вас.
Зелёная рамкаБлок завершился.
Красная рамкаБлок завершился с ошибкой.

В журнале запуска по порядку перечислено:

  • каждый блок по мере завершения, с его временем;
  • строки из блоков «Журнал» и console.log в блоках «Вычислить»;
  • результаты тестов из блоков «Проверить» и pm.test, с числом пройденных и всех тестов (Тесты) в заголовке;
  • ошибки красным;
  • чем закончился запуск: Finished in 1.2 s, Stopped in … или Failed in … с причиной.

Нажмите на строку, чтобы выбрать её блок. Выберите любой блок, чтобы увидеть его Последний запуск в инспекторе с его значениями Входные данные и Результат по портам. Очистить очищает журнал и состояния на холсте; кнопка закрытия скрывает журнал, а Журнал запусков на панели инструментов показывает его снова.

Остановить (⌘.) занимает место Запустить, пока идёт запуск. Она завершает запуск, закрывает запрос, находящийся в пути, и убирает любой вопрос с экрана.

Если запуск завершился с ошибкой и доступна встроенная модель Mac, кнопка в заголовке журнала объясняет сбой по журналу.

Прежние запуски

Окно хранит последние 20 запусков открытого сценария, включая запуски, начатые расписанием или вебхуком. Они перечислены в Запуски на боковой панели (с тем, чем закончился каждый, когда начался и сколько длился) и в меню Запуски на панели инструментов. Нажмите на один из них, чтобы снова показать его на холсте: состояния блоков и Последний запуск каждого блока. Очистить холст в меню Запуски убирает их с холста.

Записи о запусках остаются в окне. Запросы, которые отправляет сценарий, попадают в историю рабочего пространства, как любая другая отправка.

Триггеры

Выберите блок Старт, чтобы увидеть Триггеры сценария в инспекторе. Кнопка «Запустить» и echolot flow run включена всегда. Отметьте остальные, чтобы добавить их:

  • Агенты (MCP-инструмент)
  • Расписание
  • Вебхук

На блоке «Старт» отображается небольшой значок для каждого включённого триггера, а боковая панель показывает их под именем сценария.

Инспектор блока «Старт» сценария Order status on webhook: раздел «Триггеры» с отмеченным «Вебхук», метод POST и путь /order-status, локальный адрес с «Скопировать URL» и «Скопировать токен», а также «Разрешено» с «Отозвать»

Разрешение триггера

Агенты, расписания и вебхуки запускают сценарии, когда вас нет у холста, поэтому каждому из них нужно ещё и ваше разрешение для этого сценария. Под каждым отмеченным триггером нажмите Разрешить. Тогда триггер показывает Разрешено и кнопку Отозвать.

Разрешение выдаётся на сценарий в его нынешнем виде: сам сценарий, запросы, которые он отправляет, вместе с папками над ними, переменные, авторизация, прокси и сертификаты рабочего пространства и сценарии, которые он запускает. Измените что-либо из этого, на холсте, в Git или с помощью агента, и триггер перестаёт работать, пока вы не разрешите его снова. Тогда он пишет «Сценарий изменился с тех пор, как вы его разрешили.» и предлагает Разрешить снова. Сценарий не может разрешить сам себя: разрешение хранится в Echolot на вашем Mac, а не в рабочем пространстве. Сценарий с ошибками никогда не запускается от триггера.

Изменения значений окружения (например, свежий токен) разрешение не отзывают.

Агенты: сценарий как MCP-инструмент

Предложите сценарий ИИ-агентам, и он станет одним инструментом MCP-сервера Echolot: агент вызывает один инструмент, сценарий выполняет запросы, а секреты остаются в Echolot.

  1. Выберите блок «Старт» и отметьте Агенты (MCP-инструмент).
  2. Имя инструмента — это flow_ и имя файла сценария с подчёркиваниями (flow_place_test_order), пока вы не введёте другое: до 64 букв, цифр, _ и -.
  3. Напишите Что делает инструмент — для модели. Сначала там стоит описание сценария.
  4. Нажмите Разрешить.
  5. Включите Настройки › Агенты и подключите своего клиента. См. ИИ-агенты.

Аргументы инструмента — это входы сценария, а его результат — то, что получил блок «Результат». Place a test order предложен как place_test_order. Сценарий появляется в списке инструментов, пока включён набор инструментов Сценарии (по умолчанию он включён). Агенты могут запускать только сценарии, которые предложены и разрешены.

Когда агент запускает сценарий, Echolot один раз спрашивает вас перед запуском и показывает, что сценарий сделает: какие запросы отправит на какие адреса, какие переменные и секреты сохранит, какие файлы запишет, какие инструменты и сценарии запустит и где спросит человека. Внутри запуска то, что вы одобрили, выполняется без повторных вопросов; защищённые окружения, новые хосты и удаления всё равно спрашивают, как и всё, что отклоняют собственные правила агента.

Блоки группы «Люди» в сценарии, который запустил агент, обращаются к клиенту агента: он показывает сообщение, код и ссылку или запрашивает значения. Блок «Одобрить» всегда за вами: когда агент отвечает на него, Echolot сначала спрашивает вас.

Ассистент запускает сценарии так же.

Расписание

Запускайте сценарий сам, каждые столько-то минут или по календарю.

  1. Выберите блок «Старт» и отметьте Расписание. Начальное значение — каждые 60 минут.
  2. Выберите Интервал и заполните Каждые … мин либо выберите Задать время (cron) и введите строку cron (минута, час, день, месяц, день недели). Расписание бывает либо одно, либо другое и запускается не чаще раза в минуту.
  3. Нажмите Разрешить.

После разрешения инспектор показывает Следующий запуск с датой и временем. Запуски по расписанию происходят, пока открыто окно рабочего пространства, с активным окружением окна на момент запуска и начинаются со значений входов по умолчанию. Запуск, пропущенный, пока Mac спал или окно было закрыто, выполняется один раз, когда Echolot в следующий раз посмотрит; сценарий, который ещё выполняется, повторно не запускается. Неудавшийся запуск по расписанию показывает уведомление. Чтобы выполнять расписания без приложения, используйте echolot flow serve.

Строки cron состоят из пяти полей в часовом поясе вашего Mac: минута (0–59), час (0–23), день месяца (1–31), месяц (1–12 или jan–dec) и день недели (0–7 или sun–sat; 0 и 7 — воскресенье). В каждом поле допустимы *, числа, диапазоны (1-5), списки (1,15) и шаги (*/15, 8-18/2). Если ограничены и день, и день недели, достаточно совпадения любого из них.

Строка cronКогда запускается
0 6 * * *Каждый день в 6:00 (Morning stock check).
0 7 * * 1-5По будням в 7:00.
*/15 8-18 * * *Каждые 15 минут с 8:00 до 18:45.
0 9 1 * *Первого числа каждого месяца в 9:00.

Блоки группы «Люди» не могут никого спросить во время запуска по расписанию, поэтому там они завершаются ошибкой.

Вебхук

Запускайте сценарий, когда что-то отправляет запрос на локальный адрес.

  1. Выберите блок «Старт» и отметьте Вебхук.
  2. Выберите метод (GET, POST, PUT, PATCH или DELETE; по умолчанию POST) и путь, начинающийся с /. Сначала путь — это / и имя файла сценария.
  3. Нажмите Разрешить.

После разрешения инспектор показывает адрес, например POST http://127.0.0.1:52817/order-status, с кнопками Скопировать URL и Скопировать токен. Echolot слушает только на этом Mac (127.0.0.1), пока окно открыто. Порт выбирается один раз для рабочего пространства и сохраняется.

Вызывающие должны отправлять токен рабочего пространства, который Echolot создаёт при первом включении и хранит в связке ключей. Подойдёт любой из вариантов:

  • заголовок Authorization: Bearer <token>;
  • заголовок X-Echolot-Token: <token>;
  • параметр запроса ?token=<token>.
curl -X POST http://127.0.0.1:52817/order-status \
  -H "Authorization: Bearer <token>"

Order status on webhook входит в систему, получает заказ и отвечает им. Запрос и ключи JSON-тела заполняют входы сценария с теми же именами; другие ключи отбрасываются. Вход с именем body получает всё тело. Так сценарий со входом order принимает ?order=ord_7Hk2Lw или {"order": "ord_7Hk2Lw"}. Запуск использует активное окружение окна.

ОтветКогда
200 с результатом в JSONЗапуск пройден. Тело — то, что получил блок «Результат», или null.
401Токен отсутствует или неверен.
404Ни один разрешённый сценарий не отвечает на этот метод и путь; в ошибке перечислены те, что отвечают.
413Тело больше 8 МБ. Сценарий не запускается.
500Запуск завершился ошибкой. В теле есть error и ID запуска.
503Запуск был остановлен.

Запуск по вебхуку останавливается через две минуты. Блоки группы «Люди» не могут там никого спросить, поэтому завершаются ошибкой.

Фоновые запуски

Запуски, которые начинают расписания и вебхуки в приложении, появляются в Запуски сценария, пока он открыт, а неудавшийся показывает уведомление macOS с именем сценария и ошибкой. Они выполняются с вашими полномочиями, как запуск, который вы начинаете сами, но только для сценариев, которые вы разрешили.

Запуск из командной строки

Команда echolot запускает те же сценарии без приложения. В CI именно так сценарий становится условием выпуска.

# List the flows, their inputs and problems
echolot flow list -w Alpenglow.echolot

# Run one; exits with an error when the run or one of its tests fails
echolot flow run morning-stock-check -w Alpenglow.echolot --env staging --no-input

# Pass inputs as name=value (a flow made from the Paginate and export template)
echolot flow run export-products -w Alpenglow.echolot --input pages=5

# Run schedules and answer webhooks until Ctrl-C
echolot flow serve -w Alpenglow.echolot --port 4100
  • flow run печатает каждый блок по мере завершения, затем результат. --json вместо этого печатает запись о запуске. Блоки группы «Люди» спрашивают в терминале; с --no-input они завершают запуск ошибкой, что и нужно CI. Блоки «Уведомить» печатают свой текст.
  • flow serve запускает сценарии по расписанию, когда подходит время, и отвечает на вебхуки на порту 4100 (--port 0 выбирает свободный). --share слушает на всех сетевых интерфейсах, для контейнеров. Токен берётся из --token, иначе из ECHOLOT_WEBHOOK_TOKEN, иначе создаётся новый и печатается.
  • В командной строке вы запускаете сами, так что сценариям не нужно Разрешить: flow serve выполняет каждый сценарий с расписанием или вебхуком и без ошибок.

Все параметры описаны в echolot flow.

Только в версии для прямой загрузки

Инструмент командной строки входит в загрузку с сайта (Echolot › Установить инструмент командной строки…). В редакции для App Store установите его отдельно из архива на странице релизов.

Сравнить версии

На этой странице