Lewati ke konten utama

Otomasi

Otomasi menjalankan instruksi sesuai jadwal dan mengirim hasil sebagai chat. Ringkasan harian, ulasan mingguan, laporan bulanan — setiap proses berjalan di server, masuk daftar chat, dan dapat dilanjutkan.

Anatomi

Otomasi memiliki nama, instruksi, maksimal lima pemicu, model opsional, target, dan pemberitahuan. Chat session mengantrekan percakapan; Work task memulai Work terisolasi dengan kebijakan opsional. Kegagalan masuk kotak pemberitahuan. Nama dan instruksi terenkripsi. Otomasi milik pembuat.

Pemicu: once, hourly, daily, weekly, monthly, yearly. Proses berikutnya adalah kejadian terdekat menurut zona server.

Eksekusi

Penjadwal bersewa berjalan tiap menit agar satu replika memajukan jadwal. Saat jatuh tempo, ia mencatat proses, mengantrekan automation.run.v1, dan memperbarui next_run_at dengan compare-and-set. Pekerjaan membuat chat dan memakai jalur generasi persisten.

Jika server mati, kejadian terakhir berjalan sekali dan yang lama dilewati. Jeda membersihkan jadwal; lanjut/sunting menghitung ulang. Hapus menghapus riwayat.

Status berasal dari jurnal: berhasil setelah generasi, gagal pada dead-letter, stalled jika tidak mulai 30 menit.

Target Work memakai siklus Work. Akses diperiksa saat jadwal; pencabutan memberi work-access-denied. Kebijakan diverifikasi dan model harus mendukung alat.

Rutinitas Agen

Otomasi dapat mengikat tugas yang ada melalui workTaskId (panel agen). Setiap kejadian memakai ruang, percakapan, model, penyedia, dan kebijakan tugas. Tugas hilang memberi work-task-missing; sibuk memberi work-task-busy.

Pemicu webhook

Selain jadwal, otomasi dapat dipicu sistem eksternal — pipeline CI, layanan cron, otomasi rumah. Dalam dialog sunting otomasi, Pemicu webhook → Aktifkan membuat secret per otomasi; hanya SHA-256-nya yang disimpan, jadi teks aslinya ditampilkan tepat sekali. Merotasi secret langsung membatalkan yang lama, dan menonaktifkan webhook menutup endpoint kembali.

Sistem eksternal memicu otomasi dengan:

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

(X-Libre-Webhook-Secret: lwh_... juga berfungsi sebagai header alternatif.) Responsnya 202 berisi id proses yang diantrekan — jalur jalankan-manual yang sama dengan Jalankan sekarang, sehingga proses selesai, memberi notifikasi, dan muncul di riwayat secara identik. Perbandingan secret bersifat constant-time, otomasi yang tidak ada dan secret yang salah menjawab identik (tidak ada oracle id otomasi), dan otomasi yang dijeda menjawab 409: berbeda dengan Jalankan sekarang milik pemilik, pemanggil eksternal tidak dapat menembus jeda.

API

Semua endpoint kecuali pemicu webhook memerlukan autentikasi dan hanya bekerja pada otomasi milik pemanggil; pemicu webhook diautentikasi dengan secret per otomasi.

MetodeJalurTujuan
GET/api/automationsDaftar
POST/api/automationsBuat
GET/api/automations/occurrences?from=&to=Kejadian
GET/api/automations/runsRiwayat
GET/api/automations/runs/summaryRingkasan
POST/api/automations/runs/seenTandai dilihat
GET/api/automations/:automationIdBaca
PUT/api/automations/:automationIdUbah
DELETE/api/automations/:automationIdHapus
POST/api/automations/:automationId/pauseJeda
POST/api/automations/:automationId/resumeLanjut
POST/api/automations/:automationId/runJalankan
POST/api/automations/:automationId/webhookPicu via secret (202)
POST/api/automations/:automationId/webhook-secretBuat/rotasi secret
DELETE/api/automations/:automationId/webhook-secretNonaktifkan webhook

Pengguna dapat menyimpan 50 otomasi; nama 200 karakter, instruksi 20.000.