Kondisi
Condition adalah pengecekan opsional yang berjalan setelah trigger aktif dan sebelum task dimulai. Ia menjawab: "Adakah sesuatu yang layak dikerjakan sekarang?" Jika tidak, run berhenti dengan tenang.
"Every weekday at 7:30, check the status of project KG-2041 and give me a short summary, but only if it is delayed or on hold."
Tanpa condition, Atlas akan mengirim ringkasan ke operations lead setiap pagi hari kerja, bahkan ketika KG-2041 berjalan sesuai rencana. Dengan condition, ia hanya dikabari saat itu penting.
Sebelum memulai
- Baca Membuat Automation dan Jadwal.
Rule terstruktur, bukan tebakan
User menjelaskan condition dengan kata-kata; agent mengubahnya menjadi rule terstruktur yang dievaluasi Qlar sendiri. Sebuah condition terdiri dari:
| Bagian | Rincian | Dalam contoh KG-2041 |
|---|---|---|
| Description | Condition dalam kata-kata, agar mudah dibaca orang. | "Only deliver a summary when project KG-2041 is delayed or on hold." |
| Rules | Hingga 5. Setiap rule membandingkan satu nilai dengan target. | project_status contains delayed; project_status contains on hold |
| Logic | All: semua rule harus terpenuhi, atau any: salah satu saja. | Any of |
Sebuah rule punya value checked (apa yang dilihat, dengan deskripsi singkat), sebuah comparison, dan sebuah value pembanding. Di preview, Atlas menuliskan rule pertama sebagai: project_status (text) contains delayed — The project's current status.
| Jenis nilai | Perbandingan |
|---|---|
| Number | <, ≤, >, ≥, =, ≠ |
| Text | =, ≠, contains, does not contain |
| Yes / No | =, ≠ |
Angka dibaca dengan toleran: 1.000.000, 80%, dan 80,5 semuanya dipahami.
Dari mana datanya
Agent sendiri yang membaca datanya, dengan tool dan skill yang sudah dimiliki agent Anda, seperti custom API, SQL Database Reader, atau knowledge base-nya. Di setiap run ia mengambil nilai terkini, melaporkannya ke Qlar, dan Qlar memutuskan met atau not met. Agent tidak memutuskan apakah condition terpenuhi; ia hanya melaporkan apa yang ditemukannya. Untuk pengecekan KG-2041, Atlas memanggil API get_project_status (lihat Menghubungkan API Anda) dan melaporkan status yang diterimanya, misalnya "Delayed".
Dua aturan melindungi dari jawaban yang salah:
- Nilai harus berasal dari hasil tool yang nyata di run ini. Jika agent mencoba melaporkan nilai tanpa membaca data apa pun, laporannya ditolak dan ia harus membaca datanya dulu. Ia tidak boleh memperkirakan atau memakai ulang nilai dari percakapan sebelumnya.
- Nilai yang tidak bisa dibaca dilaporkan sebagai unknown, bukan dikarang.
Artinya condition hanya sebaik tool di belakangnya. Jika agent Anda tidak punya tool yang bisa membaca nilainya, ia tidak bisa mengecek condition-nya. Uji pertanyaan yang persis sama di chat lebih dulu, misalnya "What is the status of project KG-2041?". Jika agent bisa menjawabnya, ia bisa mengeceknya.
Apa yang dilakukan setiap hasil
| Hasil | Yang terjadi |
|---|---|
| Met | Task berjalan, lalu action. KG-2041 berstatus "Delayed", jadi Atlas menulis ringkasannya. |
| Not met | Run berhenti. Tidak ada conversation yang dibuat dan tidak ada pesan WhatsApp yang dikirim. Dicatat di history sebagai Condition not met, yang normal, bukan kegagalan. |
| Unknown | Condition ada tetapi sebuah nilai tidak bisa dibaca. Diperlakukan sebagai met, sehingga user tidak dibiarkan tanpa kabar. Atlas menyebutkannya di preview: "If the condition cannot be checked, the result is delivered anyway." Jika ini terjadi tiga kali berturut-turut, user mendapat notifikasi peringatan untuk memeriksa automation. |
| No condition | Automation tidak punya; task berjalan setiap kali. |
Mengedit condition
Di halaman Automations milik user, sebuah condition bisa diubah kata-katanya, diubah targetnya, atau dihapus. Condition tidak bisa ditambahkan atau diganti dengan pengecekan lain di sana. Untuk itu user meminta agent dalam percakapan, yang kembali melewati langkah preview-dan-konfirmasi.
Contoh
| User berkata | Condition |
|---|---|
| "…but only if KG-2041 is delayed or on hold." | project_status contains delayed, atau project_status contains on hold (logic: any) |
| "…if any project waits more than 5 business days at one approval stage." | Hari kerja di tahap approval saat ini > 5 |
| "…if there are more than 3 open safety incidents at the Surabaya site." | Insiden keselamatan terbuka di Surabaya > 3 |
| "…if KG-2041 is delayed and more than 60% of the budget is spent." | project_status contains delayed, dan Persentase anggaran terpakai > 60 (logic: all) |
Contoh kedua dan ketiga membutuhkan tool yang bisa membaca tahap approval dan insiden keselamatan, misalnya SQL Database Reader pada database proyek Kirana. Projects API dari tutorial Menghubungkan API Anda mengembalikan status, progres, anggaran, dan tahap approval satu proyek, jadi API itu mencakup contoh pertama dan terakhir.
Buatlah condition tetap sederhana. Hingga lima rule yang digabung dengan all/any mencakup sebagian besar kebutuhan. Yang lebih rumit lebih baik ditangani di dalam task itu sendiri: minta agent untuk "analyze and only report if …".
Periksa hasilnya
Di automation preview, periksa bahwa:
- Baris Condition menyatakan dengan kata-kata apa yang dimaksud user.
- Setiap rule memakai nilai yang benar-benar bisa dibaca agent, dengan perbandingan yang tepat ("contains" untuk teks status,
>untuk jumlah). - Logic-nya (any atau all) sesuai dengan "atau" atau "dan" yang diucapkan user.
Langkah berikutnya
- Berikutnya dalam alur: Action, WhatsApp, dan Email, untuk memilih apa yang terjadi dengan hasilnya.
- Cara Kerja Automation: di mana pemeriksaan condition terjadi selama sebuah run.