Grafik, tabel, dan persetujuan Slack di OpenClaw
Blok visualisasi data native dan batasannya, aturan dua grafik per pesan, tabel data native dengan sel bertipe, fallback teks yang tidak pernah membuang baris, pengiriman modal milik plugin, serta persetujuan exec dan plugin native di Slack
Dulu, grafik di pesan Slack berarti merender gambar di suatu tempat lalu mengunggahnya. Kini Slack memiliki blok Block Kit native untuk grafik dan tabel, dan OpenClaw memetakan blok presentasi portabelnya langsung ke blok tersebut, dengan versi teks yang selalu ikut untuk semua yang tidak dapat menggambar blok. Berikut dua blok native beserta batasan dan fallback-nya, jalur modal untuk plugin, dan tombol persetujuan yang memungkinkan Slack berfungsi sebagai klien persetujuan.
Grafik native
- Blok visualisasi data publik Slack merender grafik garis, batang, area, dan pai di dalam pesan, dan OpenClaw memetakan blok grafik portabel, dengan jenis grafik, judul, kategori, seri bernama, dan label sumbu opsional, ke bentuk native tersebut tanpa scope OAuth tambahan, unggahan file, perender gambar, atau konfigurasi Slack di luar akses pesan biasa.
- Batasan Slack diberlakukan sebelum perenderan native: judul dan label sumbu maksimal 50 karakter, satu hingga dua belas segmen positif untuk grafik pai, satu hingga dua belas seri dengan nama unik dan satu hingga dua puluh kategori bersama untuk grafik garis, batang, dan area, label maksimal 20 karakter, serta satu nilai berhingga per kategori di setiap seri, dengan nilai negatif diizinkan di luar grafik pai.
- Setiap grafik native membawa representasi teks tingkat atas untuk pembaca layar, notifikasi, pencerminan sesi, dan klien yang tidak dapat merender blok tersebut, saluran lain menerima data grafik deterministik yang sama dalam bentuk teks kecuali saluran itu menyatakan dukungan grafik native, dan saat Slack menolak grafik dengan error blok tidak valid, OpenClaw menghapus blok data yang ditolak, mempertahankan kontrol di sampingnya, dan mengirim grafik lengkap sebagai teks yang terlihat.
- Slack menerima paling banyak dua blok visualisasi data per pesan, batasan yang tidak didokumentasikan dalam referensi publiknya, sehingga presentasi dengan lebih banyak grafik valid mempertahankan urutannya dan melanjutkan perenderan native di pesan lanjutan dengan maksimal dua grafik per pesan; pengumuman peluncuran untuk developer mendokumentasikan blok ini sebagai fitur untuk aplikasi tanpa batasan paket berbayar, ketentuan Business Plus dan Enterprise berlaku untuk pembuatan grafik AI milik Slackbot sendiri, dan grafik adalah blok khusus pesan, bukan konten App Home, modal, atau Canvas.
Hanya blok tabel presentasi yang eksplisit yang dinaikkan menjadi tabel native.
Tabel native
Blok tabel data Slack yang terkini merender baris dan kolom di dalam pesan, dan OpenClaw memetakan blok tabel portabel yang eksplisit, dengan keterangan, header, baris, dan indeks kolom header baris opsional, ke blok tersebut, bukan ke blok tabel lama, lagi-lagi tanpa scope tambahan. Sel header dan sel string menjadi sel teks mentah, sel numerik menjadi sel angka mentah dengan nilai berhingganya dipertahankan untuk pengurutan dan pemfilteran native, dan indeks header baris menandai kolom tersebut (dihitung dari nol) sebagai header baris Slack. Batasan yang dipublikasikan diberlakukan lebih dulu: satu hingga dua puluh kolom, satu hingga seratus baris data ditambah baris header, jumlah sel yang sama di setiap baris, dan total paling banyak sepuluh ribu karakter di semua sel dalam satu pesan. Beberapa tabel valid dapat dirender secara native selama pesan tetap berada dalam batas tersebut; tabel yang tidak bisa akan menjadi teks deterministik lengkap alih-alih kehilangan baris atau sel, teks yang melebihi satu pesan dikirim sebagai potongan berurutan untuk pengiriman dan respons slash, dan pengeditan tabel gagal dengan error ukuran yang eksplisit alih-alih memotong baris secara diam-diam di pesan yang sudah ada. Setiap tabel native juga membawa representasi teksnya, nilai mentah grafik dan tabel tetap literal di fallback sehingga mention pengguna di dalam sel tidak menjadi mention sungguhan, dan saat Slack menolak blok grafik atau tabel native, OpenClaw menghapus semua blok data native dalam satu langkah pemulihan terbatas, mempertahankan elemen lain yang valid seperti tombol dan menu pilihan, lalu mengirim teks lengkap dengan pemformatan Slack dinonaktifkan; pengiriman perintah slash memantau anggaran lima panggilan respons Slack dan, sebelum setiap batch, memilih rencana lengkap yang muat dalam sisa panggilan. Hanya blok tabel presentasi yang eksplisit yang dinaikkan, tabel pipa Markdown tetap menjadi teks sebagaimana ditulis karena OpenClaw tidak menebak struktur atau jenis sel, produsen native Slack yang tepercaya tetap dapat meneruskan blok mentah melalui data saluran dengan teks fallback yang diturunkan dari sel mentah yang valid, dan konten spreadsheet tempelan yang tiba sebagai blok tabel lama dirender sebagai TSV yang aman terhadap pemisah untuk input agen, konteks utas, dan aksi baca, dengan hanya blok tabel native yang diterima dari lampiran biasa.
Modal dan persetujuan
- Plugin Slack yang memiliki handler interaktif dapat menerima peristiwa pengiriman dan penutupan modal sebelum OpenClaw meringkas payload-nya, dengan mengatur ID callback ke namespace dan payload berawalan openclaw atau dengan menaruh data interaktif plugin di metadata privat modal; handler menerima jenis interaksi, input yang dinormalisasi, dan nilai state mentah, perutean melalui ID callback saja sudah cukup untuk memanggilnya, kolom perutean pengguna dan sesi di metadata privat membuat modal juga menghasilkan peristiwa yang terlihat oleh agen, dan agen menerima peristiwa interaksi ringkas yang disamarkan, yang dapat membawa ringkasan, referensi, dan data dari handler tanpa payload formulir lengkap.
- Slack dapat berfungsi sebagai klien persetujuan native dengan tombol interaktif alih-alih beralih ke Web UI atau terminal: persetujuan exec dan plugin dirender sebagai prompt Block Kit, DM persetujuan exec dikirim ke pemberi persetujuan yang dikonfigurasi atau ke pemilik perintah, persetujuan plugin menggunakan tombol native Slack saat Slack adalah klien native untuk sesi asal atau saat persetujuan plugin dirutekan ke sesi atau target Slack, dengan pemberi persetujuan yang diambil dari daftar izin saluran, daftar izin akun bernama, atau rute default akun, dan pemberi persetujuan yang khusus exec tidak dapat menyetujui permintaan plugin kecuali mereka juga pemberi persetujuan plugin.
- Jalur konfigurasinya adalah blok exec-approvals dengan enabled, pemberi persetujuan opsional dengan fallback ke pemilik perintah, target dm, channel, atau both dengan dm sebagai default, serta filter agen dan sesi; persetujuan exec native memerlukan enabled bernilai true atau auto ditambah setidaknya satu pemberi persetujuan yang berhasil di-resolve, membiarkannya tidak diatur atau false menonaktifkan pengiriman exec native tanpa menonaktifkan persetujuan plugin native, penerusan bersama untuk exec dan plugin tetap terpisah dan hanya diredam saat Slack menangani permintaan secara native, perintah approve di chat yang sama tetap berfungsi di tempat perintah berfungsi, dan untuk Enterprise Grid, ruang kerja tervalidasi dari peristiwa asal dipertahankan untuk prompt, DM, callback tombol, dan pembaruan akhir, dengan gagal secara tertutup saat akun yang diinstal di tingkat organisasi tidak memiliki scope tersebut.
OpenClaw di Slack adalah artikel saluran yang diperluas oleh permukaan-permukaan ini, dan perilaku pesan Slack di OpenClaw adalah model kartu dan pratinjau tempat permukaan tersebut berada.
Mengapa teks selalu ikut
Grafik yang hanya ada sebagai blok akan hilang dari notifikasi, pembaca layar, dan setiap saluran lain tempat sesi dicerminkan, itulah sebabnya versi teks deterministik tidak opsional dan blok yang ditolak turun menjadi teks tersebut, bukan menjadi tidak ada apa-apa. Persetujuan exec di OpenClaw membahas model persetujuan yang dijalankan oleh tombol-tombol ini, dan pesan kaya dan persetujuan Telegram di OpenClaw membahas permukaan kaya yang setara di Telegram.
Di Diali
Slack adalah salah satu saluran yang dihubungkan Diali dari dasbor, dengan konfigurasi runtime yang dibuat dan diganti di setiap rilis, sehingga grafik, tabel, dan prompt persetujuan agen yang di-hosting berperilaku seperti yang dijelaskan di sini tanpa pengaturan yang perlu diedit secara manual. Slack di Diali adalah saluran tersebut di Diali, dan keamanan Diali adalah batas yang berlaku untuk setiap tindakan yang dapat dilakukan bot.
- Dua grafik per pesan; grafik tambahan meluap ke pesan lanjutan.
- Tabel yang melampaui batas menjadi teks lengkap, tanpa pernah kehilangan baris.
- Tombol persetujuan adalah UX utama; perintah approve adalah fallback-nya.
Berhenti membaca, buat agen Anda sendiri
Siapkan agen, pilih saluran, dan biarkan ia bekerja di dalam aplikasi yang sudah selalu Anda buka.
