Modal Chat, Jadi Aplikasi: Ceritaku Ngoprek Cloudflare OS

Beberapa hari yang lalu aku baca berita kalau Cloudflare ngeluarin platform AI agent yang di-open source, namanya Cloudflare OS. Waktu itu cuma aku catet di kepala, belum sempet buka-buka. Nah, hari ini lagi ada waktu luang, langsung deh aku cobain. Hasilnya? Di luar ekspektasiku banget.

Awalnya aku kira Cloudflare OS itu semacam chatbot yang bisa bantu jawab pertanyaan-pertanyaan seputar server atau gitu. Ternyata bukan. Platform ini bisa bikin aplikasi lengkap dengan tampilan dan datanya dan kita cukup “ngobrol” sama agent-nya. Bener-bener ngobrol kayak chat sama temen, bukan nulis kode baris demi baris.

Buat nyobain, aku minta agent-nya bikin aplikasi Tracker Olahraga Rumah. Sederhana aja: tempat catat latihan, masukin jenis olahraga sama durasinya, terus kesimpen di riwayat lengkap dengan statistiknya. Aku pikir bakal ribet, ternyata enggak.

Di sinilah bagian yang bikin aku speechless. Aku gak nulis satu baris kode pun. Aku cuma bilang, “aku mau bisa tambah latihan, terus muncul di riwayat”, dan dia langsung kerjain. Tombol simpan ada, riwayatnya muncul, statistiknya ikut ke-update tiap kali ada data masuk. Semua jadi tanpa aku pegang kode sama sekali.

Sempat ada juga yang error pas aku tes. Ya gitu deh, namanya juga nyoba hal baru apa lagi AI yang buat, wajar kalau ada yang melenceng. Aku lapor ke agent-nya, terus dia jawab santai katanya udah diperbaiki, dan beneran beres. Rasanya kayak punya temen yang bisa bikin aplikasi dan siap sedia 24 jam. Seru banget.

Btw, aplikasinya ini sebenernya jalan di laptopku. Pas aku lihat lognya, di situ tertulis Mode: local, dan env.BASE_URL-nya mengarah ke http://localhost:8787/gatekeeper/home... jadi semua prosesnya emang berjalan secara lokal di komputer sendiri, bukan di server Cloudflare. Buat yang lagi belajar, ini namanya local development, wajar banget buat tahap nyoba-nyoba kayak gini.

Nah, biar bisa dibuka dari HP, aplikasi yang jalan di localhost ini aku expose pake tunnel Cloudflare. Jadi dapet link kayak disposition-elite-answers-above.trycloudflare.com, bisa dibuka dari laptop, bisa juga dari HP. Pas lagi santai pun tinggal buka link-nya, ngetes sambil rebahan, beres.

Tapi… ada satu momen yang bikin aku agak panik. Pas mau lanjut ngetes, eh link-nya udah gak kebuka. Di terminal muncul tulisan “Tunnel expired. Closing tunnel.”, terus di browser muncul error ERR_NAME_NOT_RESOLVED.

Setelah aku baca-baca, baru paham kalau tunnel gratis dari trycloudflare itu emang sifatnya sementara. Link yang tadi bisa dibuka itu bukan alamat permanen begitu tunnelnya ditutup, entah karena udah lewat beberapa jam atau koneksinya sempet putus, alamatnya langsung mati. Makanya browser error ERR_NAME_NOT_RESOLVED, soalnya DNS-nya udah gak bisa di-resolve lagi, alamat itu udah gak valid. Ternyata di log ada juga sih peringatan soal “Flagship binding missing”, tapi itu cuma warning kecil soal feature-flag, gak ada hubungannya sama error-nya.

Terus, pas aku baca-baca cara kerjanya, makin kagum. Ternyata di balik sesederhana itu ada hal teknis yang cukup dalam. Credential atau kunci akses gak pernah dipegang sama agent-nya ada semacam “penjaga gerbang” yang megang semua itu, jadi agent cuma lihat bagian yang dibolehin aja. Di log-nya bahkan keliatan banget, tiap layanan eksternal dijaga sama Gatekeeper-nya masing-masing.

Sempat ada yang namanya gatekeeper-homeassistant has access to the following bindings artinya Gatekeeper buat layanan Home Assistant lagi dibangun dan dikasih akses ke binding-nya sendiri. Terus, setiap data yang dibaca agent itu dicatat, jadi kalau hasil kerjanya dibuka orang lain, sistem bakal cek dulu orang itu berhak lihat atau enggak. Tiap aplikasi juga dapet ruang dan database sendiri, gak numpang-numpang sama aplikasi lain.

Buat yang penasaran, cobain aja langsung dari repo GitHub-nya. Kalau ada yang udah pernah nyoba atau punya cerita ngoprek platform AI agent lain, yuk kita sharing di komentar.

Okey, segitu dulu cerita ngoprekku hari ini. See you next blog ya guys!

Leave a Reply

Your email address will not be published. Required fields are marked *