Zum Hauptinhalt springen

Automatisierungen

Automatisierungen führen Anweisungen nach Zeitplan aus und liefern das Ergebnis als normale Chat-Sitzung. Tägliche Zusammenfassung, wöchentliche Prüfung oder Monatsbericht: Jede Ausführung läuft headless auf dem Server, erscheint in deiner Chatliste und kann wie jede Unterhaltung fortgesetzt werden.

Aufbau

Eine Automatisierung hat Namen, Freitextanweisung, bis zu fünf Auslöser, optionales Modell (leer bedeutet Auto: dein Standardmodell zur Laufzeit), Ziel und Benachrichtigung. Chat-Sitzung ist Standard; Work-Aufgabe startet einen isolierten Work-Sandbox, optional mit benannter Richtlinie. Fehler erscheinen bei aktivierten Meldungen auch im Posteingang. Name und Anweisung sind verschlüsselt; Eigentümer ist der Ersteller.

Auslöser sind once, hourly, daily, weekly, monthly und yearly. Der nächste Lauf ist die früheste kommende Auslösung in der Server-Zeitzone.

Ausführung

Ein Scheduler tickt jede Minute hinter einem Koordinations-Lease, sodass nur eine Replik Zeitpläne fortschreibt. Bei Fälligkeit registriert er einen Lauf, reiht automation.run.v1 ein und setzt next_run_at per Compare-and-set, damit jedes Vorkommen höchstens einmal läuft. Der Job erstellt einen Chat und nutzt dieselbe dauerhafte Generierung einschließlich Routing, Persona-Standards und Persistenz.

Nach Ausfall wird das letzte Vorkommen einmal nachgeholt, ältere entfallen. Pausieren löscht den Plan; Fortsetzen oder Bearbeiten berechnet neu. Löschen entfernt den Verlauf per Fremdschlüsselkaskade. Der Job-Ledger markiert Erfolg, Dead-letter-Fehler oder stalled, wenn er nicht innerhalb von 30 Minuten startet.

Work-Ziele verwenden den Work-Lebenszyklus, verlinken die Aufgabe und gelten bei Abschluss oder Eingabeanforderung als erfolgreich. Entzogener Work-Zugriff führt zu work-access-denied. Richtlinie, Netzwerk und Limits werden beim Speichern geprüft. Nur direkte Anbieter und toolfähige Modelle funktionieren.

Agentenroutinen

Eine Work-Automatisierung kann über workTaskId an eine bestehende Work-Aufgabe gebunden werden. Dies ist die Grundlage des Bereichs Routinen im Detailbereich eines Agenten. Eine gebundene Routine erstellt bei der Auslösung keine neue Aufgabe, sondern startet einen Lauf im Workspace und in der Unterhaltung dieser Aufgabe und verwendet deren Modell, Anbieter und Laufzeitrichtlinie. Modell- und Richtlinienfelder der Automatisierung gelten daher nicht; eine angegebene Richtlinie wird beim Speichern entfernt. Die Bindung wird beim Speichern geprüft: Die Aufgabe muss existieren und dem Aufrufer gehören. Ist sie bei der Auslösung gelöscht, scheitert der Lauf mit work-task-missing. Läuft sie bereits oder besitzt eine aktive Vorschau, scheitert das Vorkommen ehrlich mit work-task-busy, statt sich dahinter einzureihen.

Webhook-Auslöser

Neben dem Zeitplan kann ein externes System eine Automatisierung auslösen: CI-Pipeline, Cron-Dienst, Hausautomatisierung. Im Bearbeitungsdialog erzeugt Webhook-Auslöser → Aktivieren ein Secret pro Automatisierung; gespeichert wird nur dessen SHA-256, der Klartext erscheint also genau einmal. Ein Rotieren entwertet das vorherige Secret sofort, Deaktivieren schließt den Endpunkt wieder.

Das externe System löst so aus:

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

(X-Libre-Webhook-Secret: lwh_... funktioniert als alternativer Header.) Die Antwort ist 202 mit der ID des eingereihten Laufs, derselbe manuelle Pfad wie Sofort ausführen; Läufe werden also identisch abgeschlossen, gemeldet und im Verlauf geführt. Der Secret-Vergleich läuft in konstanter Zeit, fehlende Automatisierung und falsches Secret antworten gleich (kein Orakel für Automatisierungs-IDs), und eine pausierte Automatisierung antwortet 409: Anders als der Eigentümer mit Sofort ausführen kann ein externer Aufrufer nicht durch eine Pause hindurch auslösen.

API

Alle Endpunkte außer dem Webhook-Auslöser erfordern Authentifizierung und betreffen nur eigene Automatisierungen; der Webhook-Auslöser authentifiziert stattdessen über das Secret der Automatisierung.

MethodePfadZweck
GET/api/automationsAuflisten
POST/api/automationsErstellen
GET/api/automations/occurrences?from=&to=Kommende Vorkommen
GET/api/automations/runsFilterbarer Verlauf
GET/api/automations/runs/summaryUngesehen und 30-Tage-Gruppen
POST/api/automations/runs/seenFertige als gesehen markieren
GET/api/automations/:automationIdLesen
PUT/api/automations/:automationIdAktualisieren
DELETE/api/automations/:automationIdLöschen
POST/api/automations/:automationId/pausePausieren
POST/api/automations/:automationId/resumeFortsetzen
POST/api/automations/:automationId/runSofort ausführen (202 mit ID)
POST/api/automations/:automationId/webhookPer Secret auslösen (202)
POST/api/automations/:automationId/webhook-secretSecret erzeugen oder rotieren
DELETE/api/automations/:automationId/webhook-secretWebhook deaktivieren

Pro Benutzer sind 50 Automatisierungen erlaubt; Namen 200 Zeichen, Anweisungen 20,000.