Предложение по улучшению: Разделить автоматизации на триггеры и действия

Привет!

Часто хочется использовать автоматизацию, но текущие возможности кажутся ограниченными. Часто бывает так, что в одном скрипте есть нужный функционал, который хотелось бы использовать в контексте другого скрипта.

Похоже, это связано с тем, как сейчас устроены и работают автоматизации. Мне бы хотелось видеть разделение на триггеры и действия.

  • Примеры триггеров:
    • При создании/обновлении темы
    • При создании/обновлении поста
    • При изменении настройки сайта
    • При закрытии темы
    • При получении пользователем значка
    • и т. д.
  • Примеры действий:
    • Создать баннерную тему
    • Закрыть тему
    • Ответить на тему
    • Создать тему
    • Добавить тег к теме
    • Выполнить вызов LLM
    • Отправить сообщение в Slack
    • и т. д.

Такая структура позволила бы:

  • Назначать несколько действий после одного триггера (например: при создании темы → выполнить вызов LLM → добавить тег к посту → ответить на тему)
  • Использовать данные полезной нагрузки триггера (и последующие данные, доступные из действий — например, ответ от LLM) динамически внутри действий

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

5 лайков

Я начал экспериментировать с этой идеей на примере своего личного помощника Jarvis:

Что вы думаете? Там даже есть интерактивная демонстрация.

Мне очень нравится цепочка «Триггер → Фильтр → Действие → Действие». Это делает автоматизацию гораздо более гибкой и понятной.

4 лайка

Мне очень нравится это предложение! Оно, похоже, решает большинство (если не все) проблем, с которыми сейчас сталкиваются автоматизации.

Кроме того, оно кажется гораздо более масштабируемым для новых триггеров и действий. Представляю, как это откроет возможности для лёгкого добавления дополнительных триггеров — например, theme_created или theme_updated — без необходимости беспокоиться о том, как они будут взаимодействовать с уже существующими скриптами. Новые триггеры сразу же получат доступ ко всем существующим действиям (уведомления в Slack, личные сообщения, вызовы LLM и т. д.). То же самое касается создания дополнительных действий, таких как assign_badge, add_to_group, add_to_logs_and_screening и так далее.

О, и «Dry run» (проверка без выполнения) и «Execution logs» (журналы выполнения) тоже на высоте — такой уровень наблюдаемости за тем, как на самом деле выполняются процессы, просто спасение.

3 лайка

Всего пара слов: помимо триггера, фильтра и действия, возможность добавлять задержки была бы очень ценной.

(Пример: онбординг/напоминания — отправлять сообщение через неделю после вступления в сообщество, затем через два месяца; или если участник не публиковал посты и не читал контент в течение x дней после вступления — выполнять какое-то действие… Конечно, это нужно не каждому сообществу, но для активного сообщества поддержки, как наше, это было бы очень полезно!)

2 лайка

Хотя это всё ещё находится на концептуальной стадии, я продолжу brainstorming по этой теме :smiley:

Что касается условий, я задумывался о том, насколько гибкими они могут быть. Было бы здорово реализовать что-то вроде скриншота, где пользователь имеет полный контроль над созданием критериев. Это позволит пользователям выбирать данные из trigger_context, определять способ их оценки и задавать значения, с которыми они сравниваются, а также выбирать между логикой AND / OR.

Это откроет возможности для более сложных сценариев, сохраняя при этом простоту и интуитивную понятность, например:

  • если {{category}} входит в {{выбранное пользователем значение}} И
  • если {{tag}} не равен {{выбранному пользователем значению}}

На скриншоте также показано, что делать после проверки условия, но это, вероятно, применимо только к разветвлённым пайплайнам. Для линейного пайплайна, который покрывает большинство случаев, процесс, скорее всего, просто завершится.

2 лайка