Otomasyonlar
Otomasyonlar yönergeyi takvimde çalıştırıp sonucu normal sohbet olarak teslim eder. Günlük haber özeti, haftalık inceleme, aylık rapor — her çalıştırma sunucuda arayüzsüz işler, sohbet listenize gelir ve diğer konuşmalar gibi açılıp sürdürülebilir.
Yapı
Otomasyonun adı, serbest metin yönergesi, en çok beş tetikleyicisi, isteğe bağlı modeli (boşsa çalıştırma anındaki varsayılan sohbet modeli), hedefi ve bildirim tercihi vardır. Chat session varsayılan olarak yönergeyi konuşma kuyruğuna alır; Work task ise yönergeyi ilk mesaj yaparak yalıtılmış Work korumalı alanı başlatır ve seçilmiş adlandırılmış Work ilkesini kullanabilir. Bildirim açıksa hata bildirim kutusuna da gelir. Ad ve yönergeler beklemede şifrelidir. Otomasyon oluşturana aittir.
Tetikleyiciler ortak takvim modelini kullanır: once, hourly, daily, weekly, monthly, yearly. Sonraki çalıştırma, sunucu saat dilimindeki en erken olaydır.
Çalıştırma
Koordinasyon kiralı zamanlayıcı dakikada bir çalışır; takvimi tek çoğaltma ilerletir. Süre geldiğinde çalıştırmayı kaydeder, kalıcı automation.run.v1 işini kuyruğa alır ve olayın en çok bir kez çalışması için next_run_at değerini compare-and-set ile ilerletir. İş otomasyon adlı sohbet oluşturur ve yönergeyi sağlayıcı yolu, persona varsayılanları ve kalıcılık dâhil normal kalıcı üretim hattına gönderir.
Sunucu kapalıysa sonraki tur son kaçan olayı bir kez çalıştırıp eskileri atlar. Duraklatma takvimi temizler; sürdürme veya düzenleme şimdiden yeniden hesaplar. Silme geçmişi dış anahtar zinciriyle kaldırır.
Kalıcı iş günlüğü sonucu belirler: üretim bitince başarılı, iş başarısız kuyruğa girince hata, 30 dakikada başlamazsa stalled.
Work hedefi sohbet işi yerine Work yaşam döngüsünü kullanır: kayıt oluşturulan göreve bağlanır, Runs ona gider, ajan tamamladığında veya girdi istediğinde başarılı, görev hata ya da iptalde başarısızdır. Work erişimi tetiklenirken denetlenir; geri alınırsa otomasyon work-access-denied olur. İlke kayıtta doğrulanır, ağ ve kaynak sınırları görevlere uygulanır. Yalnız doğrudan sağlayıcılar ve araç destekli modeller çalışır.
Ajan Rutinleri
Work otomasyonu workTaskId ile mevcut göreve bağlanabilir; bu ajan panelindeki Routines yapısıdır. Her olay yeni görev oluşturmaz; görevin kendi alanında, konuşmasında, modeli, sağlayıcısı ve ilkesiyle çalışır. Otomasyon model/ilke alanları kullanılmaz, sağlanan ilke kayıtta düşürülür. Bağ kayıtta doğrulanır. Silinmiş görev work-task-missing, çalışan veya canlı önizlemeli görev work-task-busy olur; kuyruğa alınmaz.
Webhook tetikleyicileri
Takvimin yanı sıra otomasyon dış bir sistemle de tetiklenebilir — CI hattı, cron hizmeti, ev otomasyonu. Otomasyonun düzenleme penceresinde Webhook tetikleyici → Etkinleştir otomasyona özgü bir gizli anahtar üretir; yalnız SHA-256 özeti saklandığından düz metin tam olarak bir kez gösterilir. Anahtarı yenilemek öncekini anında geçersiz kılar, webhook’u kapatmak uç noktayı yeniden kapatır.
Dış sistem otomasyonu şöyle tetikler:
curl -X POST https://your-host/api/automations/<automationId>/webhook \
-H "Authorization: Bearer lwh_..."
(X-Libre-Webhook-Secret: lwh_... başlığı da kullanılabilir.) Yanıt, kuyruğa alınan çalışmanın kimliğiyle 202 olur — Şimdi çalıştır ile aynı elle çalıştırma yolu olduğundan çalışmalar aynı biçimde sonlanır, bildirim üretir ve geçmişte görünür. Gizli anahtar karşılaştırması sabit sürelidir, bulunmayan otomasyon ile yanlış anahtar aynı yanıtı verir (otomasyon kimliği sızdırılmaz) ve duraklatılmış otomasyon 409 döndürür: sahibin Şimdi çalıştır’ının aksine dış çağıran duraklatmayı aşamaz.
API
Webhook tetiklemesi dışındaki tüm uç noktalar kimlik doğrulaması ister ve yalnız çağıranın otomasyonlarında çalışır; webhook tetiklemesi ise otomasyona özgü gizli anahtarla doğrulanır.
| Yöntem | Yol | Amaç |
|---|---|---|
GET | /api/automations | Listele |
POST | /api/automations | Oluştur |
GET | /api/automations/occurrences?from=&to= | Yaklaşan olaylar |
GET | /api/automations/runs | Geçmiş (süzülebilir) |
GET | /api/automations/runs/summary | Görülmeyen + 30 günlük bölümler |
POST | /api/automations/runs/seen | Tamamlananları görüldü işaretle |
GET | /api/automations/:automationId | Birini oku |
PUT | /api/automations/:automationId | Güncelle |
DELETE | /api/automations/:automationId | Sil |
POST | /api/automations/:automationId/pause | Duraklat |
POST | /api/automations/:automationId/resume | Sürdür |
POST | /api/automations/:automationId/run | Şimdi çalıştır (çalıştırma kimlikli 202) |
POST | /api/automations/:automationId/webhook | Gizli anahtarla tetikleme (202) |
POST | /api/automations/:automationId/webhook-secret | Gizli anahtarı üretme/yenileme |
DELETE | /api/automations/:automationId/webhook-secret | Webhook’u kapatma |
Kullanıcı en çok 50 otomasyon tutabilir; ad 200, yönerge 20.000 karakterle sınırlıdır.