Hoppa till huvudinnehåll

Automatiseringar

Automatiseringar kör en instruktion enligt ett schema och levererar resultatet som en vanlig chattsession. En daglig nyhetssammanfattning, veckogenomgång eller månadsrapport körs utan gränssnitt på servern, hamnar i chattlistan och kan öppnas och fortsättas som andra konversationer.

Uppbyggnad

En automatisering har ett namn, fritextinstruktioner, en eller flera utlösare, en valfri modell (tomt betyder Auto: din standardmodell vid körning), ett körmål och en aviseringsinställning. Målet avgör resultatet: Chat session (standard) köar instruktionen som en konversation, medan Work task startar en isolerad Work-sandbox med instruktionen som första meddelande och valfritt en namngiven Work-policy. Med aviseringar aktiverade hamnar misslyckade körningar även i aviseringsinkorgen. Namn och instruktioner krypteras i vila. Varje automatisering tillhör skaparen.

Utlösare återanvänder kalenderns modell – once, hourly, daily, weekly, monthly, yearly – och högst fem får anges. Nästa körning är den tidigaste kommande förekomsten bland alla utlösare, beräknad i serverns lokala tidszon.

Körning

Schemaläggaren tickar varje minut bakom ett samordningslås så att exakt en replik flyttar schemat. När tiden infaller registreras en körning, ett beständigt automation.run.v1-jobb köas och next_run_at flyttas med en atomär jämför-och-sätt-operation så att varje förekomst utlöses högst en gång. Jobbet skapar en chattsession med automatiseringens namn och köar instruktionen genom samma beständiga genereringspipeline som andra konversationer, inklusive leverantörsrutt, personastandarder och lagring.

Om servern var nere när en förekomst passerade kör nästa tick den en gång och hoppar över äldre missade tider. Paus rensar schemat; återupptagning eller redigering räknar om från nu. Radering tar bort körhistoriken genom foreign-key cascade.

Körningar avgörs från den beständiga jobbloggen: lyckad när chattgenereringen slutförts, misslyckad när ett jobb dead-lettered och misslyckad som stalled om en köad körning inte startar inom 30 minuter.

Work-körningar använder Work-livscykeln i stället för chattjobbet. Körningen länkar till skapad uppgift, lyckas när agenten slutför eller stannar för indata och misslyckas när uppgiften misslyckas eller avbryts. Work-åtkomst kontrolleras när schemat utlöses; återkallad åtkomst ger work-access-denied. Vald policy valideras när automatiseringen sparas och dess nätverks- och resursgränser gäller varje uppgift. Bara direkta modellleverantörer körs i Work och modellen måste stödja verktyg.

Agentrutiner

En Work-automatisering kan bindas till en befintlig Work-uppgift via workTaskId, vilket används av Routines i agentens detaljpanel. Varje förekomst startar då en körning i uppgiftens befintliga arbetsyta och konversation med dess modell, leverantör och runtime-policy. Modell- och policyfält på automatiseringen ignoreras. Bindningen valideras vid sparande. En raderad uppgift ger work-task-missing; en redan körande uppgift eller aktiv förhandsvisning ger work-task-busy i stället för att köas.

Webhookutlösare

Utöver schemat kan en automatisering utlösas av ett externt system — en CI-pipeline, en cron-tjänst, hemautomation. I automatiseringens redigeringsdialog genererar Webhook trigger → Enable en hemlighet per automatisering; bara dess SHA-256 lagras, så klartexten visas exakt en gång. Att rotera hemligheten ogiltigförklarar den föregående omedelbart, och att stänga av webhooken stänger endpointen igen.

Det externa systemet utlöser automatiseringen med:

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

(X-Libre-Webhook-Secret: lwh_... fungerar som alternativ header.) Svaret är 202 med id:t för den köade körningen — samma manuella körväg som Run now, så körningar avgörs, aviserar och hamnar i historiken på exakt samma sätt. Jämförelsen av hemligheten är konstanttid, en saknad automatisering och en felaktig hemlighet svarar likadant (inget orakel för automatiserings-id), och en pausad automatisering svarar 409: till skillnad från ägarens Run now kan en extern anropare inte utlösa förbi en paus.

API

Alla endpoints utom webhookutlösningen kräver autentisering och verkar bara på anroparens egna automatiseringar; webhookutlösningen autentiserar i stället med hemligheten per automatisering.

MetodSökvägSyfte
GET/api/automationsLista automatiseringar
POST/api/automationsSkapa en automatisering
GET/api/automations/occurrences?from=&to=Kommande beräknade förekomster
GET/api/automations/runsKörhistorik (filtrerbar)
GET/api/automations/runs/summaryOsedda + 30-dagarsgrupper
POST/api/automations/runs/seenMarkera slutförda körningar som sedda
GET/api/automations/:automationIdLäs en automatisering
PUT/api/automations/:automationIdUppdatera en automatisering
DELETE/api/automations/:automationIdRadera en automatisering
POST/api/automations/:automationId/pausePausa schemat
POST/api/automations/:automationId/resumeÅteruppta schemat
POST/api/automations/:automationId/runKör nu (202 med körnings-id)
POST/api/automations/:automationId/webhookUtlös via hemlighet (202)
POST/api/automations/:automationId/webhook-secretSkapa/rotera hemligheten
DELETE/api/automations/:automationId/webhook-secretStäng av webhooken

En användare får ha högst 50 automatiseringar. Namn begränsas till 200 tecken och instruktioner till 20 000.