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

Hey!

I often find myself wanting to use Automation, but feeling limited by how they currently work. I often find one script has something I need, while I need that part to work within the context of another script.

It seems this is largely related to the way Automations currently work and are set up. I’d love to see things split into Triggers and Actions.

  • Example triggers:
    • When a topic is created/updated
    • When a post is created/updated
    • When a site setting changes
    • When a topic is closed
    • When a user earns a badge
    • etc.
  • Example actions:
    • Make a banner topic
    • Close a topic
    • Reply to a topic
    • Create a topic
    • Tag a topic
    • Run LLM call
    • Send a Slack message
    • etc.

This setup would allow for a few things:

  • Multiple actions to be assigned following a trigger (e.g. When topic is created> Run LLM Call> Tag post> Reply to the topic)
  • Allow for trigger payload data (and subsequent data made available from actions - e.g. LLM call response) to be used dynamically within actions

Ultimately, I feel Automation has a lot of potential, but each Script is siloed in a way that makes it very hard to customize to individual needs. Each currently assumes that the actions available will work for everyone.

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 лайка