
Anh Tuan
Data Science Expert
Diterbitkan Oct 30, 2026
Diperbarui Oct 30, 2026 · min baca

errorId sebelum menafsirkan status atau solution.Sebuah agen browser bisa menerima respons tool yang valid tetapi tetap tidak punya langkah berguna berikutnya. Respons bisa berisi error validasi, tugas yang belum selesai, atau solusi yang belum diterima halaman. Menyulap ketiganya menjadi pesan “selesai” yang sama akan membuat agen lanjut terlalu cepat.
CapSolver mengekspos operasi CAPTCHA melalui direct API dan antarmuka agen. Antarmuka yang Anda pilih menentukan bentuk hasilnya. Panduan ini menjelaskan cara menafsirkan bentuk-bentuk tersebut dan merancang ringkasan aplikasi kecil tanpa mengada-ada field baru dari penyedia.
Kasus konkret di sini adalah agen yang mengoperasikan form uji milik sendiri. Browser mencapai CAPTCHA yang didukung, solver terpilih berjalan, dan aplikasi memutuskan apakah harus menunggu, mengoreksi input, menerapkan hasil, atau berhenti. Pertanyaannya di sini adalah bukti apa yang seharusnya mengontrol keputusan itu.
Identifikasi lapisan respons sebelum membaca field bernama success atau status.
Ada tiga lapisan yang berguna: transport tool, operasi CAPTCHA, dan tugas browser. Sebuah API mendefinisikan antarmuka tertentu; responsnya harus ditafsirkan dalam kontrak tersebut. Sebuah pembungkus tool bisa menambah amplop lain, dan aplikasi bisa menambahkan status workflow miliknya sendiri.
| Lapisan | Pertanyaan yang dijawab | Apa yang tidak dapat ditetapkan sendiri |
|---|---|---|
| Transport MCP/tool | Apakah pemanggilan tool berhasil kembali, atau melaporkan error tool? | Apakah solusi CAPTCHA yang dapat digunakan sudah ada |
| Layanan CAPTCHA | Apakah operasi solving gagal, masih menunggu, atau menghasilkan hasil terdokumentasi? | Apakah form atau halaman yang dimaksud menerima hasil tersebut |
| Browser/aplikasi | Apakah operasi yang dimaksud mencapai keadaan yang diharapkan? | Apakah setiap diagnostik sebelumnya tercatat dengan benar |
Simpan hasil asli untuk debugging. Jika aplikasi Anda menormalisasi hasil, beri label field-nya sebagai milik aplikasi. Jangan mempresentasikan field internal yang nyaman seperti workflow_state sebagai field API CapSolver yang terdokumentasi.
Periksa sinyal error tool MCP, lalu periksa payload sesuai kontrak tool tersebut.
Spesifikasi tool MCP menjelaskan konten hasil tool dan flag isError. Library klien dapat mengekspos ini dengan nama bahasa pemrograman yang berbeda. Misalnya, hasil tool FastMCP mengekspos .is_error, .content, dan data yang sudah diurai.
Jangan berasumsi setiap respons tool adalah kamus JSON mentah. Beberapa server mengembalikan konten teks yang berisi JSON terserialisasi; beberapa juga menyediakan konten terstruktur. Bacalah properti klien yang terdokumentasi, lalu parse hanya lapisan yang benar-benar berisi JSON. Mencari kata “success” di seluruh string respons tidak dapat diandalkan.
Dalam uji koneksi lokal dengan FastMCP 3.4.11 dan capsolver-mcp 0.1.3, pemanggilan solve_captcha yang sengaja tidak lengkap mengembalikan error tool yang mengidentifikasi input website_url dan website_key yang hilang. Panggilan registry terpisah kembali dengan sukses. Pengamatan tersebut mengonfirmasi jalur pembacaan error dan eksekusi registry, bukan solving berbayar.
Sebuah tool juga bisa mengembalikan amplop MCP normal yang berisi kegagalan di level layanan. Karena itu, “tidak ada pengecualian tool” hanyalah pemeriksaan pertama. Selanjutnya periksa hasil bisnis yang terdokumentasi untuk tool spesifik tersebut. Jangan menerjemahkan field direct API ke field MCP dengan menebak-nebak.
Untuk contoh pendaftaran spesifik framework, panduan tool Pydantic AI membahas input bertipe dan eksekusi adapter. Fokus di sini adalah keputusan setelah respons tiba, terlepas framework mana yang mendaftarkan tool.
Dengan direct API, mulai dari errorId, lalu ikuti state tugas yang terdokumentasi.
Referensi createTask dan getTaskResult mendefinisikan alur ini. Pembuatan tugas yang sukses dapat mengembalikan identifier tugas untuk pengambilan nanti. Identifier itu adalah pegangan untuk operasi, bukan jawaban yang sudah diselesaikan.
Untuk hasil yang dipolling, respons error harus ditangani sebelum membaca solusi. State idle dan processing yang terdokumentasi adalah state yang belum selesai. Lanjutkan alur pengambilan yang ada dalam batas tenggat waktu yang dikonfigurasi; referensi menginstruksikan pemanggil untuk menunggu tiga detik sebelum mencoba lagi hasil yang sedang diproses. Hasil yang siap tetap harus berisi bentuk solusi yang terdokumentasi untuk tipe tugas tersebut.
| Pengamatan respons | Interpretasi | Tindakan aplikasi |
|---|---|---|
errorId tidak nol |
Layanan melaporkan error | Simpan errorCode dan errorDescription; pilih koreksi atau berhenti |
| Tugas diterima, hasil masih diproses | Belum ada solusi final | Poll tugas yang sama dalam batas yang terdokumentasi |
| Hasil siap dengan field solusi yang diharapkan | Solusi kandidat tersedia | Teruskan ke komponen yang bertanggung jawab untuk tantangan yang sama |
| Field hasil hilang atau tidak terduga | Kontrak tidak terjalin | Hentikan penafsiran dan inspeksi respons; jangan mengada-ada token |
| Browser mengonfirmasi tugas yang dimaksud | Hasil aplikasi sudah ditetapkan | Catat penyelesaian workflow secara terpisah |
Beberapa tipe tugas dapat selesai secara sinkron. Ikuti respons yang terdokumentasi untuk tipe yang dipilih alih-alih memaksa setiap tugas ke dalam loop polling. Sebaliknya, jangan berulang kali memanggil createTask hanya karena hasil asinkron belum siap.
Referensi reCAPTCHA v2 menjelaskan field solusinya. Keluarga tugas lain dapat mengembalikan data berbeda. Pembungkus yang mengasumsikan setiap hasil berisi field token yang sama bisa diam-diam membuang jawaban yang valid atau keliru mengira field yang tidak terkait sebagai token.
Tukarkan Kode Bonus CapSolver Anda
Tingkatkan anggaran otomatisasi Anda seketika!
Gunakan kode bonus CAP26 saat mengisi saldo akun CapSolver Anda untuk mendapatkan bonus 5% tambahan pada setiap pengisian — tanpa batas.
Tukarkan sekarang di Dashboard CapSolver
Kembalikan informasi yang cukup untuk langkah diizinkan berikutnya bagi agen, sambil menyimpan data layanan terperinci di komponen yang mengonsumsinya.
Ringkasan aplikasi kecil dapat memuat tahap operasi, hasil ternormalisasi, penjelasan yang aman, dan aksi berikutnya yang diizinkan. Ini adalah field aplikasi Anda, bukan pengganti respons penyedia.
Sebagai contoh, setelah respons direct API yang masih pending, ringkasan bisa berbunyi: “Tugas CAPTCHA sedang diproses; lanjutkan menunggu tugas yang ada.” Setelah error input, bisa berbunyi: “Permintaan tidak lengkap; dapatkan parameter halaman yang hilang sebelum mencoba lagi.” Setelah hasil solver, bisa berbunyi: “Solusi tersedia; verifikasi browser masih tertunda.”
Perhatikan apa yang dihindari pesan-pesan ini: tidak ada yang mengklaim bahwa form sudah dikirim atau permintaan data sudah selesai. Browser harus menyediakan bukti itu nanti.
Implementasi praktis menyimpan dua catatan. Catatan operasional menyimpan referensi tugas, field diagnostik yang aman, dan transisi tahap. Komponen browser untuk sementara menyimpan nilai solusi yang dibutuhkannya. Ringkasan yang tampak di model mengarahkan ke aksi berikutnya yang diizinkan tanpa menyalin token penuh ke jawaban percakapan.
Jika aplikasi menerima output terstruktur dari model, validasi output tersebut terhadap schema milik aplikasi. Schema yang valid menetapkan bentuk, bukan kebenaran. Model tidak boleh bisa mengubah pengamatan solver yang masih pending menjadi hasil browser yang sudah selesai hanya dengan mengembalikan string status yang berbeda.
Pilih aksi berikutnya dari deskripsi error dan state halaman saat ini, bukan dari aturan retry universal.
Referensi error resmi membedakan data tidak valid, tugas yang tidak didukung, kredensial, limit, dan kegagalan solving. Kategori-kategori tersebut memerlukan penanganan berbeda. Mengulangi payload tidak valid yang sama tidak memperbaiki field-nya. Memulai tugas berbayar lain tidak memperbaiki kredensial yang hilang.
Gunakan urutan keputusan ringkas:
Penghentian yang berbatas adalah hasil yang berguna. “Tidak dapat menyelesaikan langkah ini” dengan alasan yang akurat lebih dapat ditindaklanjuti daripada string kosong yang membuat agen berperilaku seolah-olah solving berhasil.
Aplikasi harus mengamati hasil yang diharapkan dari tugas asli setelah langkah CAPTCHA.
Untuk form uji milik sendiri, definisikan kondisi itu sebelum memanggil solver: mungkin elemen konfirmasi yang sudah dikenal dan catatan pengiriman uji yang cocok. Iframe yang menghilang, field respons yang terisi, atau tool yang mengembalikan token bisa menjadi bukti antara yang berguna, tetapi masing-masing lebih lemah daripada hasil aplikasi yang dimaksud.
Dokumentasi verifikasi reCAPTCHA Google menjelaskan langkah verifikasi sisi server. Itulah mengapa token yang dikembalikan ke browser tidak boleh disamakan dengan penerimaan oleh aplikasi penerima.
Ketika workflow gagal, simpan tahap terakhir yang ditetapkan. “Solver mengembalikan hasil; aplikasi menolak” berbeda dengan “solver tidak pernah kembali.” Perbedaan ini mencegah sesi debugging mengubah permintaan solver ketika masalah sebenarnya adalah field form wajib lain yang tidak terkait.
Uji cabang hasil secara independen, lalu lakukan uji end-to-end yang diizinkan dengan kredensial nyata dan halaman milik sendiri.
Sertakan kegagalan validasi input, fixture error layanan, respons processing, respons siap, payload tak terduga, dan penolakan browser setelah solusi kandidat. Fixture menguji keputusan aplikasi Anda; fixture tidak membuktikan perilaku API live atau penerimaan CAPTCHA.
Ujilah juga respons yang tiba setelah aplikasi berhenti menunggu. Aplikasi harus mempertahankan state berhenti alih-alih membiarkan hasil terlambat melanjutkan form yang sudah ditinggalkan. Pertahankan hasil tetap terkait dengan upaya aslinya.
Pemeriksaan dalam artikel ini menetapkan penafsiran respons yang terdokumentasi dan jalur validasi/registry MCP nyata. Pemeriksaan ini bukan tolok ukur solving berbayar, bukan studi kasus pelanggan ter-deploy, dan bukan pengukuran tingkat keberhasilan agen.
Buat hasil CAPTCHA dapat ditindaklanjuti dengan mempertahankan state aktualnya dan memeriksa hasil browser. CapSolver menyediakan antarmuka solver yang terdokumentasi untuk langkah tersebut. Coba CapSolver dengan workflow uji yang diizinkan dan jaga agar pemeriksaan aplikasi final tetap terpisah.
T: Apakah isError false berarti CAPTCHA berhasil dipecahkan?
Tidak. Itu berarti respons tool tidak ditandai sebagai error eksekusi tool. Periksa hasil bisnis yang terdokumentasi dalam payload lalu verifikasi tugas browser secara terpisah.
T: Haruskah agen menerima token CAPTCHA lengkap?
Hanya jika komponen yang mengonsumsi token benar-benar membutuhkannya. Banyak desain dapat menyimpan nilai itu di state aplikasi dan memberi model status singkat saja.
T: Bisakah saya menggunakan parser hasil yang sama untuk REST dan MCP?
Hanya setelah secara eksplisit mengadaptasi kontrak respons yang berbeda. Hasil tugas REST dan amplop tool MCP bukan objek yang dapat dipertukarkan.
T: Apa yang harus saya kembalikan ketika hasil masih diproses?
Kembalikan status pending dalam format aplikasi Anda sendiri dan terus ambil tugas yang ada dalam tenggat Anda. Jangan melabelinya selesai atau membuat tugas lain hanya karena tugas pertama belum selesai.
T: Bagaimana jika solver mengembalikan hasil tetapi form gagal?
Catat penyelesaian solver dan kegagalan aplikasi secara terpisah. Periksa penolakan halaman dan konteks tugas saat ini sebelum memutuskan apakah percobaan CAPTCHA baru diperlukan.

Anh Tuan
Data Science Expert
Turning task outcomes into actionable insights.
TENTANG PENULIS
Jaga agar agen browser paralel tidak mencampur hasil CAPTCHA. Petakan ID tugas ke pemilik halaman, tolak respons yang sudah kedaluwarsa, dan uji perutean sebelum menerapkan solusi.

Pilih API CAPTCHA atau MCP untuk agen AI Anda dengan membandingkan kontrol tugas, penemuan alat, penanganan hasil, dan tanggung jawab browser sebelum Anda melakukan integrasi.
