Automatizace
Automatizace spouštějí instrukci podle plánu a výsledek doručí jako běžnou chatovou relaci. Denní přehled zpráv, týdenní kontrola nebo měsíční report běží bez uživatelského rozhraní na serveru, objeví se v seznamu chatů a lze je otevřít a pokračovat v nich jako v kterékoli jiné konverzaci.
Struktura
Automatizace má název, volně psané instrukce, jeden či více spouštěčů, volitelný model (prázdná hodnota znamená Auto: výchozí chatový model v okamžiku běhu), cíl běhu a nastavení oznámení. Cíl určuje výstup: Chat session (výchozí) zařadí instrukci jako konverzaci, zatímco Work task spustí izolovaný sandbox Work s instrukcí jako první zprávou a volitelně s pojmenovanou zásadou Work. Při zapnutých oznámeních se neúspěšný běh objeví také v doručených oznámeních. Názvy a instrukce jsou v úložišti šifrované. Každá automatizace patří svému tvůrci.
Spouštěče používají společný model kalendáře — once, hourly, daily, weekly, monthly, yearly — a jedna automatizace jich může mít nejvýše pět. Další běh je nejbližší budoucí výskyt napříč všemi spouštěči, vypočítaný v místním časovém pásmu serveru.
Provádění
Plánovač tiká každou minutu pod koordinačním leasovacím zámkem, takže plány posouvá právě jedna replika. Když automatizace dozraje, tick zaznamená běh, zařadí trvalou úlohu automation.run.v1 a pomocí compare-and-set posune next_run_at, aby se každý výskyt spustil nejvýše jednou. Úloha vytvoří chatovou relaci s názvem automatizace a zařadí instrukci do stejné trvalé pipeline generování jako běžné konverzace, včetně směrování poskytovatele, výchozích hodnot persony a ukládání.
Pokud byl server při výskytu vypnutý, příští tick jej spustí jednou a starší zmeškané sloty přeskočí. Pozastavení plán smaže; obnovení nebo úprava jej přepočítá od aktuálního okamžiku. Smazání automatizace odstraní historii běhů pomocí foreign-key cascade.
Stav běhů se odvozuje z trvalého účetního záznamu úloh: úspěch po dokončení generování, chyba při dead-lettered úloze a stalled, pokud zařazený běh nezačne do 30 minut.
Běhy s cílem Work používají životní cyklus Work místo chatové úlohy. Běh zaznamená vytvořenou úlohu a odkazuje na ni, uspěje při dokončení agentem nebo zastavení kvůli vstupu a selže při chybě či zrušení. Přístup k Work se ověřuje při spuštění plánu; odvolaný přístup vede na work-access-denied. Vybraná zásada se ověří při uložení a její síťové a prostředkové limity platí pro všechny úlohy. Ve Work běží pouze přímí poskytovatelé modelů a model musí podporovat nástroje.
Rutiny agentů
Automatizaci Work lze pomocí workTaskId svázat s existující úlohou Work; to je struktura za částí Routines na detailu agenta. Každý výskyt spustí běh v existujícím pracovním prostoru a konverzaci úlohy s jejím modelem, poskytovatelem a runtime zásadou; pole modelu a zásady automatizace se nepoužijí. Vazba se ověřuje při uložení. Smazaná úloha vede na work-task-missing; již běžící úloha nebo živý náhled na work-task-busy místo čekání ve frontě.
Spouštěče webhookem
Kromě plánu může automatizaci spustit i vnější systém — CI pipeline, cronová služba, domácí automatizace. V dialogu úprav automatizace vygeneruje Webhook trigger → Enable tajemství pro danou automatizaci; ukládá se jen jeho SHA-256, takže se otevřený text zobrazí právě jednou. Rotace tajemství předchozí okamžitě zneplatní a vypnutí webhooku endpoint zase uzavře.
Vnější systém spustí automatizaci takto:
curl -X POST https://your-host/api/automations/<automationId>/webhook \
-H "Authorization: Bearer lwh_..."
(Jako alternativní hlavička funguje X-Libre-Webhook-Secret: lwh_....) Odpovědí je 202 s id zařazeného běhu — jde o stejnou cestu ručního spuštění jako u Run now, takže běhy se uzavírají, oznamují a objevují v historii úplně stejně. Porovnání tajemství probíhá v konstantním čase, chybějící automatizace a špatné tajemství odpovědí shodně (žádná věštírna id automatizací) a pozastavená automatizace odpoví 409: na rozdíl od vlastníkova Run now nemůže vnější volající spustit běh přes pauzu.
API
Všechny endpointy kromě spuštění webhookem vyžadují ověření a pracují pouze s automatizacemi volajícího; spuštění webhookem se místo toho ověřuje tajemstvím dané automatizace.
| Metoda | Cesta | Účel |
|---|---|---|
GET | /api/automations | Vypsat automatizace |
POST | /api/automations | Vytvořit automatizaci |
GET | /api/automations/occurrences?from=&to= | Vypočítané budoucí výskyty |
GET | /api/automations/runs | Historie běhů (lze filtrovat) |
GET | /api/automations/runs/summary | Počet neviděných + 30denní skupiny |
POST | /api/automations/runs/seen | Označit dokončené běhy jako viděné |
GET | /api/automations/:automationId | Načíst jednu automatizaci |
PUT | /api/automations/:automationId | Aktualizovat automatizaci |
DELETE | /api/automations/:automationId | Smazat automatizaci |
POST | /api/automations/:automationId/pause | Pozastavit plán |
POST | /api/automations/:automationId/resume | Obnovit plán |
POST | /api/automations/:automationId/run | Spustit nyní (202 s id běhu) |
POST | /api/automations/:automationId/webhook | Spustit tajemstvím (202) |
POST | /api/automations/:automationId/webhook-secret | Vytvořit/rotovat tajemství |
DELETE | /api/automations/:automationId/webhook-secret | Vypnout webhook |
Uživatel může mít nejvýše 50 automatizací. Název má limit 200 znaků a instrukce 20 000.