Μετάβαση στο κύριο περιεχόμενο

Αυτοματισμοί

Οι αυτοματισμοί εκτελούν μια οδηγία βάσει προγράμματος και παραδίδουν το αποτέλεσμα ως κανονική συνεδρία chat. Ημερήσια σύνοψη ειδήσεων, εβδομαδιαία ανασκόπηση ή μηνιαία αναφορά εκτελούνται headless στον server, εμφανίζονται στη λίστα chat και ανοίγουν σαν κάθε άλλη συνομιλία.

Δομή

Ένας αυτοματισμός έχει όνομα, οδηγίες ελεύθερου κειμένου, ένα ή περισσότερα triggers, προαιρετικό μοντέλο (κενό σημαίνει Auto: το προεπιλεγμένο μοντέλο chat κατά την εκτέλεση), στόχο και προτίμηση ειδοποίησης. Ο στόχος καθορίζει το αποτέλεσμα: Chat session (προεπιλογή) βάζει τις οδηγίες σε ουρά ως συνομιλία, ενώ Work task ξεκινά απομονωμένο sandbox Work με τις οδηγίες ως πρώτο μήνυμα και προαιρετική ονομασμένη πολιτική. Με ενεργές ειδοποιήσεις, αποτυχημένες εκτελέσεις εμφανίζονται και στα εισερχόμενα ειδοποιήσεων. Όνομα και οδηγίες κρυπτογραφούνται σε αδράνεια και ο αυτοματισμός ανήκει στον δημιουργό του.

Τα triggers χρησιμοποιούν το μοντέλο ημερολογίου — once, hourly, daily, weekly, monthly, yearly — και μπορούν να είναι έως πέντε. Η επόμενη εκτέλεση είναι η πλησιέστερη μελλοντική εμφάνιση, υπολογισμένη στη ζώνη ώρας του server.

Εκτέλεση

Ο scheduler κάνει tick κάθε λεπτό πίσω από coordination lease ώστε ένα replica να προωθεί τα προγράμματα. Όταν έρθει η ώρα, καταγράφεται εκτέλεση, μπαίνει σε ουρά durable job automation.run.v1 και το next_run_at προωθείται με compare-and-set, ώστε κάθε εμφάνιση να ενεργοποιείται το πολύ μία φορά. Το job δημιουργεί συνεδρία chat με το όνομα και περνά την οδηγία από το ίδιο durable pipeline με τις άλλες συνομιλίες, συμπεριλαμβανομένων routing παρόχου, προεπιλογών περσόνας και αποθήκευσης.

Αν ο server ήταν εκτός λειτουργίας, το επόμενο tick εκτελεί μία φορά την πρόσφατη εμφάνιση και παραλείπει παλαιότερες. Η παύση καθαρίζει το πρόγραμμα· η συνέχιση ή επεξεργασία το επανυπολογίζει. Η διαγραφή αφαιρεί το ιστορικό μέσω foreign-key cascade.

Η κατάσταση προκύπτει από το durable ledger: επιτυχία μετά την παραγωγή chat, αποτυχία όταν job γίνει dead-lettered και stalled όταν μια εκτέλεση δεν ξεκινήσει εντός 30 λεπτών.

Οι στόχοι Work χρησιμοποιούν τον κύκλο ζωής Work αντί για chat job. Η εκτέλεση συνδέεται με την εργασία, επιτυγχάνει όταν ο agent ολοκληρώσει ή ζητήσει input και αποτυγχάνει σε σφάλμα/ακύρωση. Η πρόσβαση Work ελέγχεται κατά την ενεργοποίηση· ανάκληση δίνει work-access-denied. Η επιλεγμένη πολιτική επικυρώνεται στην αποθήκευση και τα όριά της ισχύουν σε κάθε εργασία. Μόνο άμεσοι πάροχοι τρέχουν στο Work και το μοντέλο πρέπει να υποστηρίζει εργαλεία.

Ρουτίνες agents

Ένας αυτοματισμός Work μπορεί να δεθεί σε υπάρχουσα εργασία μέσω workTaskId, όπως η ενότητα Routines στο panel του agent. Κάθε εμφάνιση ξεκινά εκτέλεση στον υπάρχοντα χώρο και συνομιλία με το μοντέλο, πάροχο και runtime policy της εργασίας· τα αντίστοιχα πεδία του αυτοματισμού δεν ισχύουν. Η σύνδεση επικυρώνεται στην αποθήκευση. Διαγραμμένη εργασία δίνει work-task-missing, ενώ ήδη εκτελούμενη εργασία ή live preview δίνει work-task-busy αντί για αναμονή.

Triggers webhook

Πέρα από το πρόγραμμα, έναν αυτοματισμό μπορεί να τον ενεργοποιήσει εξωτερικό σύστημα — pipeline CI, υπηρεσία cron, οικιακός αυτοματισμός. Στο παράθυρο επεξεργασίας, το Webhook trigger → Enable παράγει μυστικό ανά αυτοματισμό· αποθηκεύεται μόνο το SHA-256 του, οπότε το απλό κείμενο εμφανίζεται ακριβώς μία φορά. Η εναλλαγή του μυστικού ακυρώνει αμέσως το προηγούμενο και η απενεργοποίηση του webhook κλείνει ξανά το endpoint.

Το εξωτερικό σύστημα ενεργοποιεί τον αυτοματισμό με:

curl -X POST https://your-host/api/automations/<automationId>/webhook \
-H "Authorization: Bearer lwh_..."

(Το X-Libre-Webhook-Secret: lwh_... λειτουργεί ως εναλλακτική κεφαλίδα.) Η απάντηση είναι 202 με το id της εκτέλεσης σε ουρά — η ίδια διαδρομή χειροκίνητης εκτέλεσης με το Run now, οπότε οι εκτελέσεις κλείνουν, ειδοποιούν και εμφανίζονται στο ιστορικό με τον ίδιο τρόπο. Η σύγκριση του μυστικού γίνεται σε σταθερό χρόνο, ένας ανύπαρκτος αυτοματισμός και ένα λάθος μυστικό απαντούν πανομοιότυπα (κανένα oracle για id αυτοματισμού) και ένας αυτοματισμός σε παύση απαντά 409: σε αντίθεση με το Run now του ιδιοκτήτη, εξωτερικός καλών δεν μπορεί να εκτελέσει μέσα από παύση.

API

Όλα τα endpoints εκτός από την ενεργοποίηση webhook απαιτούν πιστοποίηση και λειτουργούν μόνο στους αυτοματισμούς του καλούντος· η ενεργοποίηση webhook πιστοποιείται με το μυστικό του αυτοματισμού.

ΜέθοδοςΔιαδρομήΣκοπός
GET/api/automationsΛίστα αυτοματισμών
POST/api/automationsΔημιουργία αυτοματισμού
GET/api/automations/occurrences?from=&to=Μελλοντικές εμφανίσεις
GET/api/automations/runsΙστορικό εκτελέσεων
GET/api/automations/runs/summaryΜη προβεβλημένες + ομάδες 30 ημερών
POST/api/automations/runs/seenΣήμανση ολοκληρωμένων ως προβεβλημένων
GET/api/automations/:automationIdΑνάγνωση αυτοματισμού
PUT/api/automations/:automationIdΕνημέρωση αυτοματισμού
DELETE/api/automations/:automationIdΔιαγραφή αυτοματισμού
POST/api/automations/:automationId/pauseΠαύση προγράμματος
POST/api/automations/:automationId/resumeΣυνέχιση προγράμματος
POST/api/automations/:automationId/runΆμεση εκτέλεση (202 με id)
POST/api/automations/:automationId/webhookΕνεργοποίηση με μυστικό (202)
POST/api/automations/:automationId/webhook-secretΔημιουργία/εναλλαγή μυστικού
DELETE/api/automations/:automationId/webhook-secretΑπενεργοποίηση webhook

Ένας χρήστης μπορεί να κρατά έως 50 αυτοματισμούς. Τα ονόματα περιορίζονται σε 200 χαρακτήρες και οι οδηγίες σε 20.000.