
Emma Foster
Machine Learning Engineer

Agen AI Anda berhenti tiba-tiba di layar verifikasi. Halaman dimuat untuk Anda, tetapi agen melaporkan hasil kosong. Ini terjadi pada hampir semua agen AI yang menyentuh web terbuka saat ini. Panduan ini menjelaskan mengapa agen AI yang terjebak di Cloudflare Turnstile diblokir, dan bagaimana memperbaikinya dengan benar. Ini ditulis untuk pengembang dan insinyur otomasi yang menjalankan agen terhadap target yang diizinkan. Anda akan mendapatkan penyebabnya, jalur kode yang berfungsi, dan batasan kepatuhan yang jelas.
Agen AI adalah perangkat lunak yang merencanakan dan bertindak sendiri. Ia membaca tujuan, memecahnya menjadi langkah-langkah, lalu menjalankan langkah-langkah tersebut melalui alat. Browser sering kali adalah salah satu alat tersebut. Mode Agen ChatGPT dan penggunaan komputer Claude keduanya bekerja dengan cara ini.
Agen ini berpikir dengan baik. Ia menulis kode, menyimpulkan halaman, dan mengisi formulir. Namun, ia menjelajahi web melalui browser otomatis. Browser ini tidak mirip dengan browser manusia. Dan celah ini adalah awal dari kegagalan kebanyakan. Kategori ini berkembang pesat juga. Gartner memprediksi bahwa 40% aplikasi perusahaan akan memiliki agen AI khusus tugas pada akhir 2026, naik dari kurang dari 5% pada tahun sebelumnya. Lebih banyak agen berarti lebih banyak agen yang menghadapi dinding yang sama.
Agen AI gagal di situs langsung dalam beberapa cara yang bisa diulang. Pola di bawah ini muncul di hampir setiap kerangka kerja.
Ini bukan bug dalam satu produk. Ini adalah celah yang luas di antara apa yang bisa dipikirkan agen AI dan apa yang bisa dilakukannya di situs yang dilindungi. Ketika agen AI terjebak di Cloudflare Turnstile, biasanya menghadapi salah satu dari tiga dinding ini.
Cloudflare berada di depan sebagian besar web. Menurut W3Techs, Cloudflare digunakan oleh sekitar satu per lima situs web, yang berarti agen yang menjelajahi web secara luas akan terus bertemu dengannya. Perusahaan ini telah menghabiskan tahun-tahun belakangan untuk membedakan browser nyata dari browser otomatis. Beberapa sinyal bekerja bersama, dan agen AI cenderung gagal dalam semua sinyal tersebut sekaligus.
Setiap browser nyata melaporkan kumpulan sinyal yang konsisten. Ukuran layar, font, GPU, zona waktu, dan bahasa semuanya sejalan. Browser otomatis sering melaporkan celah atau kontradiksi. User agent mengklaim Chrome, tetapi handshake TLS mengatakan sebaliknya. Cloudflare menangkap ketidaksesuaian ini dalam milidetik.
Pengguna nyata menggulir, berhenti, dan menggerakkan mouse dalam kurva yang tidak merata. Agen memuat halaman dan mengekstrak teks secara instan. Kecepatan ini sendiri menjadi tanda. Cloudflare's Turnstile menjalankan bukti kerja, bukti ruang, dan pengujian API web untuk membaca kebiasaan browser dan perilaku manusia. Agen yang efisien gagal dalam profil ini karena terlalu bersih.
Kebanyakan agen berjalan di infrastruktur awan. Rentang IP pusat data ini sudah dikatalogkan dengan baik dan dikenakan sanksi berat. Permintaan dari rentang IP yang dikenal sebagai host bot menimbulkan kecurigaan bahkan ketika semuanya terlihat benar.
Ketika sinyal lain tidak pasti, Cloudflare mengeluarkan tantangan. Turnstile adalah bentuk tantangan modern. Ia menggantikan teka-teki gambar lama dengan penilaian diam-diam. Untuk manusia, ini sering tidak terlihat. Untuk agen AI yang terjebak di Cloudflare Turnstile, tidak ada yang perlu diklik dan tidak ada jalan yang jelas.
Orang sering bingung antara keduanya. Mereka memerlukan penanganan yang berbeda, jadi perbedaan ini penting sebelum Anda menulis kode apa pun.
Turnstile adalah widget yang tertanam dalam formulir. Anda biasanya melihatnya di login, daftar, atau checkout. Tantangan penuh adalah interstitial halaman penuh. Ia menampilkan layar "Just a moment..." dan mengembalikan 403 dengan persyaratan cookie cf_clearance. Mengetahui jenis yang Anda hadapi menentukan pendekatan keseluruhan Anda. Perbandingan di bawah ini menjelaskan perbedaan praktisnya.
| Faktor | Cloudflare Turnstile | Tantangan Cloudflare Penuh |
|---|---|---|
| Di mana muncul | Widget yang tertanam dalam formulir | Interstitial halaman penuh |
| Tanda yang terlihat | Checkbox kecil atau tidak terlihat | Layar "Just a moment...", status 403 |
| Yang Anda butuhkan | websiteURL + websiteKey |
URL target + proxy tetap + user agent |
| Proxy yang diperlukan | Tidak | Ya (statis atau tetap) |
| Output | Token respons | Cookie cf_clearance dan token |
| Waktu penyelesaian biasa | 1–20 detik | 2–20 detik |
Menganggap Tantangan sebagai Turnstile adalah kesalahan paling umum. Pendekatan widget tidak akan mengembalikan cookie yang dapat digunakan untuk blok halaman penuh.
Insting yang salah adalah membuat browser otomatis lebih meyakinkan. Memperbaiki pengaturan itu adalah perlombaan yang tidak menang melawan sistem deteksi yang terus diperbarui. Jalur praktisnya adalah memisahkan langkah verifikasi dari logika utama agen. Biarkan layanan khusus menghasilkan token, lalu biarkan agen Anda mengirimkannya.
Ini adalah tempat layanan CAPTCHA seperti CapSolver cocok dalam alur kerja. Ia menghasilkan token yang valid untuk langkah verifikasi sehingga agen dapat melanjutkan tugasnya. Alur ini memiliki tiga bagian: baca parameter, minta token, sisipkan token.
Turnstile memerlukan dua input: URL halaman dan kunci situs. Kunci situs berada di HTML halaman pada elemen Turnstile. Anda dapat membacanya dari DOM yang dirender atau mengekstraknya dengan ekstensi browser. Prosesnya dijelaskan secara rinci dalam panduan ini tentang cara mengidentifikasi parameter Cloudflare Turnstile.
Buat tugas dengan URL dan kunci situs. Turnstile adalah pemeriksaan di sisi klien, jadi tidak diperlukan proxy di sini. Tipe tugasnya adalah AntiTurnstileTaskProxyLess. Lalu polling hasilnya hingga status siap.
# pip install requests
import requests
import time
api_key = "KUNCI_API_ANDA"
site_key = "0x4XXXXXXXXXXXXXXXXX" # kunci situs dari halaman target Anda
site_url = "https://www.situs-anda.com"
def solve_turnstile():
payload = {
"clientKey": api_key,
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteKey": site_key,
"websiteURL": site_url,
"metadata": {
"action": "" # opsional, cocokkan atribut data-action jika ada
}
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
task_id = res.json().get("taskId")
if not task_id:
print("Gagal membuat tugas:", res.text)
return None
while True:
time.sleep(1)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": api_key, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["token"]
if result.get("errorId"):
print("Penyelesaian gagal:", result)
return None
token = solve_turnstile()
print(token)
Referensi parameter lengkap, termasuk bidang opsional action dan cdata, ada di panduan API Cloudflare Turnstile.
Token hanya bisa digunakan sekali. Tempatkan di bidang respons yang diharapkan, biasanya cf-turnstile-response, lalu kirimkan formulir dalam sesi browser agen Anda. Permintaan token baru untuk setiap pengiriman. Jangan menyimpan atau mengulang penggunaan token.
# di dalam sesi browser agen Anda (contoh Playwright)
page.evaluate(
"""(token) => {
const field = document.querySelector('[name="cf-turnstile-response"]');
if (field) field.value = token;
}""",
token,
)
# lalu aktifkan tindakan pengiriman formulir biasa
Jika agen Anda menghadapi layar "Just a moment...", ganti ke tipe AntiCloudflareTask. Tipe ini memerlukan proxy statis atau tetap dan user agent nyata Anda. Ia mengembalikan cookie cf_clearance yang kemudian Anda sertakan ke dalam sesi Anda. Pengaturan, termasuk kapan memasukkan HTML halaman, didokumentasikan dalam panduan Tantangan Cloudflare. Proxy yang berputar akan mengganggu alur ini, jadi pertahankan IP tetap selama permintaan.
Token bisa berhasil dihasilkan tetapi tetap ditolak. Ini adalah penyebab umumnya.
AntiTurnstileTaskProxyLess. Halaman penuh memerlukan AntiCloudflareTask.data-action, kirimkan nilai tersebut dalam metadata.Untuk penjelasan yang lebih luas tentang teknik dan alat, panduan ini tentang cara menyelesaikan Turnstile captcha menutupi metode saat ini. Tim yang menjalankan kerangka kerja browser juga mungkin menemukan artikel ini tentang Playwright stealth dalam alur kerja AI berguna untuk sisi sidik jari masalahnya.
Ini penting sebanyak kode. Hanya tangani verifikasi di situs yang Anda miliki atau diizinkan secara eksplisit. Kasus penggunaan yang baik termasuk pengujian kualitas untuk formulir Anda sendiri, pemantauan data yang Anda miliki haknya, dan pengumpulan data publik yang diizinkan. Baca ketentuan layanan setiap target sebelum Anda membangun. Hormati aturan robots dan batas kecepatan. Jangan pernah gunakan metode ini untuk mengakses akun pribadi, mengumpulkan data pribadi yang dilindungi, atau menghindari keinginan pemilik situs yang jelas. Agen AI yang menangani Turnstile tetap tunduk pada aturan yang sama yang diikuti operator manusia. Memastikan pekerjaan diizinkan melindungi Anda dan proyek tersebut.
Agen AI yang terjebak di Cloudflare Turnstile adalah masalah yang dapat diprediksi dengan solusi yang jelas. Blok tersebut berasal dari sinyal sidik jari, perilaku, dan IP, bukan dari kecerdasan agen. Perbaikannya adalah memisahkan verifikasi dari logika utama Anda: baca kunci situs, minta token dari layanan penyelesaian, sisipkan token, dan kirimkan. Sesuaikan tipe tugas dengan yang Anda hadapi, widget atau halaman penuh. Lalu pastikan setiap eksekusi berada dalam batas izin. Dengan cara itu, agen Anda melewati dinding tanpa mengambil jalan pintas.
Jika agen Anda terjebak hari ini, mulailah dengan panduan API Turnstile, konfirmasikan jenis tantangan, dan kaitkan alur tiga langkah ke dalam alur kerja Anda.
Apakah Cloudflare Turnstile sama dengan layar "Just a moment..."?
Tidak. Turnstile adalah widget kecil dalam formulir. Layar "Just a moment..." adalah Tantangan Cloudflare penuh. Mereka memerlukan tipe tugas dan pengaturan yang berbeda, jadi identifikasi dulu jenis yang Anda hadapi.
Apakah saya memerlukan proxy untuk menangani Turnstile?
Tidak untuk widget Turnstile itu sendiri. Ini adalah pemeriksaan sisi klien, jadi tipe tugas tanpa proxy bekerja. Tantangan halaman penuh berbeda dan memerlukan proxy statis atau tetap.
Mengapa token saya ditolak meskipun penyelesaian berhasil?
Alasan paling umum adalah penggunaan ulang token, user agent yang tidak sesuai, atau tipe tugas yang salah. Token Turnstile hanya bisa digunakan sekali, jadi minta token baru untuk setiap pengiriman.
Apakah agen AI saya bisa melakukan ini dalam sesi browser yang sudah ada?
Ya. Minta token dari layanan penyelesaian, lalu sisipkan token ke bidang respons yang diharapkan dalam sesi browser agen Anda sebelum mengirimkan formulir.
Apakah legal menangani Cloudflare Turnstile dengan cara ini?
Tergantung pada target dan izin Anda. Gunakan di situs yang Anda miliki atau diizinkan untuk otomasi, ikuti ketentuan layanan setiap situs, dan hormati batas kecepatan. Izin adalah yang membuat pekerjaan tetap sah.
Pelajari cara menyelesaikan CAPTCHA dalam alur kerja otomatisasi browser AI menggunakan Hermes Agent dan CapSolver. Panduan ini menjelaskan cara mengintegrasikan CapSolver untuk menangani secara otomatis reCAPTCHA, dan sistem CAPTCHA modern lainnya dalam lingkungan penjelajahan otomatis tanpa menulis kode yang rumit.

Ketahui bagaimana Infrastruktur Otomatisasi AI yang didukung LLM mengubah pengenalan CAPTCHA, meningkatkan efisiensi proses bisnis dan mengurangi intervensi manual. Optimalkan operasi otomatis Anda dengan solusi verifikasi canggih.
