CAPSOLVER
Blog
Cara menyelesaikan CAPTCHA dalam Alur Kerja Multi-Agen CrewAI

Cara menyelesaikan CAPTCHA dalam Alur Kerja Multi-Agen CrewAI

Logo of CapSolver

Emma Foster

Machine Learning Engineer

28-Jul-2026

CrewAI mengoordinasikan beberapa agen AI yang bekerja sama pada tugas kompleks — penelitian, pengumpulan data, pembuatan konten, dan otomatisasi alur kerja. Ketika agen mana pun dalam kru menghadapi tantangan CAPTCHA selama interaksi web, seluruh alur kerja multi-agen terhenti. Paket capsolver-agent dari CapSolver terintegrasi langsung ke dalam alur kerja CrewAI, memberikan agen Anda kemampuan untuk menyelesaikan reCAPTCHA, Cloudflare Turnstile, dan tantangan verifikasi lainnya tanpa mengganggu alur eksekusi kolaboratif.

TL;DR

  • Alur kerja multi-agen CrewAI berhenti saat anggota kru menemui CAPTCHA selama tugas web
  • CapSolver menyediakan skema alat yang kompatibel dengan sistem pendaftaran alat kustom CrewAI
  • Executor capsolver-agent menyelesaikan melalui layanan AI CapSolver dan mengembalikan hasil yang terstruktur
  • Mendukung reCAPTCHA v2/v3 (termasuk Enterprise) dan Cloudflare Turnstile
  • Integrasi memerlukan kurang dari 15 baris kode menggunakan create_executor() dan dekorator @tool CrewAI

Mengapa Agen CrewAI Membutuhkan Penyelesaian CAPTCHA

CrewAI memungkinkan tim agen AI khusus untuk bekerja sama pada tugas yang membutuhkan berbagai kemampuan. Sebuah kru yang umum mungkin mencakup agen peneliti yang menjelajahi web, agen analis yang memproses data, dan agen penulis yang menghasilkan laporan. Ketika agen peneliti menemui CAPTCHA di situs target, ia tidak dapat melanjutkan — dan karena agen CrewAI mentransfer output secara berurutan, seluruh alur kerja kru terhenti.

Masalah ini diperparah dalam CrewAI karena beberapa agen mungkin membutuhkan akses web. Sebuah kru peningkatan kualitas pemasok mungkin memiliki satu agen yang mengumpulkan data perusahaan dan satu lagi yang memverifikasi informasi kontak — keduanya menemui CAPTCHA di situs berbeda secara bersamaan. Tanpa mekanisme penyelesaian, kru produksi memerlukan pengawasan manusia terus-menerus, yang menghilangkan tujuan pengoordinasian multi-agen otonom.

Menurut Data produksi CapSolver, sekitar 30% tugas web agen menghadapi tantangan verifikasi. Untuk kru CrewAI yang menjalankan 10 tugas tergantung web, itu berarti 3 titik potensi kehentian per run — masing-masing memerlukan intervensi manual tanpa penyelesaian otomatis.

Apa yang Perlu Anda Siapkan Sebelum Memulai

Instal paket yang diperlukan:

bash Copy
# Mesin inti CapSolver (dependensi yang diperlukan)
pip install git+https://github.com/capsolver-ai/capsolver-core.git

# Alat agen CapSolver
pip install git+https://github.com/capsolver-ai/capsolver-agent.git

# Kerangka kerja CrewAI
pip install crewai crewai-tools

Atur variabel lingkungan:

bash Copy
export CAPSOLVER_API_KEY="your-capsolver-api-key"
export OPENAI_API_KEY="your-openai-api-key"

Pastikan Anda memiliki akun CapSolver dengan kredit API yang terisi. Halaman harga CapSolver menunjukkan tarif saat ini per jenis CAPTCHA.

Langkah 1 — Membuat Alat Penyelesaian CAPTCHA untuk CrewAI

Apa yang Harus Dilakukan

CrewAI menggunakan alat kustom yang didefinisikan dengan dekorator @tool. Bungkus executor CapSolver ke dalam alat yang kompatibel dengan CrewAI:

python Copy
import asyncio
from crewai import Agent, Task, Crew
from crewai.tools import tool
from capsolver_agent.schema import create_executor

# Buat executor CapSolver
executor = create_executor(api_key="YOUR_CAPSOLVER_API_KEY")

@tool("Selesaikan CAPTCHA")
def solve_captcha(captcha_type: str, website_url: str, website_key: str) -> str:
    """Selesaikan tantangan CAPTCHA dan kembalikan token.
    Gunakan alat ini saat Anda menemui CAPTCHA di situs web.
    
    Argumen:
        captcha_type: Jenis CAPTCHA - 'reCaptchaV2', 'reCaptchaV3', atau 'cloudflare'
        website_url: URL lengkap halaman dengan CAPTCHA
        website_key: Kunci situs (nilai atribut data-sitekey)
    
    Mengembalikan:
        Token CAPTCHA yang telah diselesaikan untuk dikirim dengan formulir
    """
    result = asyncio.run(executor.execute("solve_captcha", {
        "captcha_type": captcha_type,
        "website_url": website_url,
        "website_key": website_key
    }))
    
    if result["success"]:
        return f"CAPTCHA berhasil diselesaikan. Token: {result['solution']['token']}"
    else:
        return f"Penyelesaian CAPTCHA gagal: {result['error']}"

Alat ini mengikuti pola standar CrewAI — dekorator @tool mendaftarkannya dengan nama dan deskripsi yang digunakan LLM agen untuk menentukan kapan menggunakannya.

Mengapa Ini Penting

Agen CrewAI memilih alat berdasarkan deskripsinya. Alat penyelesaian CAPTCHA yang dengan baik didefinisikan memungkinkan agen untuk secara otonom mengenali kapan ia membutuhkan penyelesaian dan memanggil alat dengan parameter yang benar. Format kembalian yang terstruktur memberikan umpan balik jelas kepada agen tentang keberhasilan atau kegagalan.

Kesalahan Umum yang Harus Dihindari

  • Menggunakan async secara langsung dalam alat CrewAI: Eksekusi alat CrewAI bersifat sinkron. Bungkus panggilan CapSolver async dengan asyncio.run() di dalam fungsi alat.
  • Deskripsi alat yang tidak jelas: LLM membutuhkan deskripsi yang jelas untuk mengetahui kapan menggunakan alat. Sertakan nama jenis CAPTCHA spesifik dan penjelasan parameter.

Langkah 2 — Membangun Agen CrewAI dengan Kemampuan CAPTCHA

Apa yang Harus Dilakukan

Buat agen CrewAI yang memiliki kemampuan penyelesaian CAPTCHA sebagai salah satu alatnya:

python Copy
from crewai import Agent

# Agen peneliti dengan kemampuan penyelesaian CAPTCHA
researcher = Agent(
    role="Spesialis Penelitian Web",
    goal="Kumpulkan data dari situs web, menangani tantangan CAPTCHA yang ditemui",
    backstory="""Anda adalah ahli peneliti web yang mengumpulkan data dari berbagai sumber online. 
    Ketika Anda menemui tantangan CAPTCHA di situs web, Anda menggunakan alat solve_captcha untuk menyelesaikannya 
    dan melanjutkan penelitian Anda. Anda tahu cara mengidentifikasi jenis CAPTCHA: reCaptchaV2 (checkbox atau tidak terlihat), reCaptchaV3 
    (berdasarkan skor), dan cloudflare (widget Turnstile).""",
    tools=[solve_captcha],
    verbose=True
)

Untuk kru yang membutuhkan beberapa agen dengan akses web, berikan alat CAPTCHA kepada setiap agen yang mungkin menghadapi verifikasi:

python Copy
# Agen pengumpul data
data_collector = Agent(
    role="Spesialis Pengumpulan Data",
    goal="Ekstrak data terstruktur dari situs target",
    backstory="Anda mengumpulkan data dari sumber web dan menangani tantangan CAPTCHA menggunakan alat solve_captcha.",
    tools=[solve_captcha],
    verbose=True
)

# Agen verifikasi
verifier = Agent(
    role="Spesialis Verifikasi Data", 
    goal="Memverifikasi data yang dikumpulkan terhadap sumber otoritatif",
    backstory="Anda memverifikasi akurasi data dengan memeriksa sumber resmi, menyelesaikan CAPTCHA ketika diperlukan.",
    tools=[solve_captcha],
    verbose=True
)

Langkah 3 — Mengumpulkan Kru dengan Tugas yang Sadar CAPTCHA

Apa yang Harus Dilakukan

Definisikan tugas yang mungkin memerlukan penyelesaian CAPTCHA dan susun menjadi kru:

python Copy
from crewai import Task, Crew, Process

# Tugas yang mungkin menghadapi CAPTCHA
research_task = Task(
    description="""Telusuri situs web target di {url}. 
    Jika Anda menemui tantangan CAPTCHA, identifikasi jenisnya dan kunci situs,
    lalu gunakan alat solve_captcha untuk mendapatkan token.
    Situs ini menggunakan reCAPTCHA v2 dengan kunci situs: {site_key}.
    Kumpulkan data yang diperlukan setelah menyelesaikan CAPTCHA.""",
    expected_output="Data yang dikumpulkan dari situs web target dengan token CAPTCHA jika diperlukan",
    agent=researcher
)

# Tugas analisis (tergantung hasil penelitian)
analysis_task = Task(
    description="Analisis data yang dikumpulkan oleh peneliti dan hasilkan laporan ringkasan.",
    expected_output="Laporan analisis terstruktur dari data yang dikumpulkan",
    agent=data_collector
)

# Buat kru
crew = Crew(
    agents=[researcher, data_collector],
    tasks=[research_task, analysis_task],
    process=Process.sequential,
    verbose=True
)

# Jalankan kru
result = crew.kickoff(inputs={
    "url": "https://example.com/data",
    "site_key": "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"
})
print(result)

Proses sekuensial memastikan peneliti menyelesaikan (termasuk penyelesaian CAPTCHA) sebelum pengumpul data memulai analisis. Untuk eksekusi paralel, setiap agen menangani CAPTCHA secara mandiri di situs yang ditugaskan.

Mengapa Ini Penting

Kekuatan CrewAI adalah kolaborasi multi-agen. Dengan memberikan kemampuan penyelesaian CAPTCHA kepada agen yang membutuhkannya, kru beroperasi secara otonom dari awal hingga akhir. Tidak diperlukan intervensi manusia saat tantangan verifikasi muncul — agen mengenali situasi tersebut, memanggil alat, dan melanjutkan.

Langkah 4 — Menangani Berbagai Jenis CAPTCHA dalam CrewAI

Situs web yang berbeda menggunakan sistem CAPTCHA yang berbeda. Buat alat khusus untuk skenario umum:

python Copy
@tool("Selesaikan reCAPTCHA v3")
def solve_recaptcha_v3(website_url: str, website_key: str, page_action: str = "verify") -> str:
    """Selesaikan tantangan reCAPTCHA v3 dengan token skor tinggi.
    Gunakan ketika situs menggunakan reCAPTCHA v3 yang tidak terlihat (berdasarkan skor, tidak ada checkbox).
    
    Argumen:
        website_url: URL lengkap halaman
        website_key: Kunci reCAPTCHA
        page_action: Nama tindakan untuk skoring v3 (default: 'verify')
    """
    result = asyncio.run(executor.execute("solve_captcha", {
        "captcha_type": "reCaptchaV3",
        "website_url": website_url,
        "website_key": website_key,
        "page_action": page_action,
        "min_score": 0.7
    }))
    if result["success"]:
        return f"reCAPTCHA v3 diselesaikan. Token: {result['solution']['token']}"
    return f"Gagal: {result['error']}"

@tool("Selesaikan Cloudflare Turnstile")
def solve_turnstile(website_url: str, website_key: str) -> str:
    """Selesaikan tantangan Cloudflare Turnstile.
    Gunakan ketika situs dilindungi oleh Cloudflare dan menampilkan widget Turnstile.
    
    Argumen:
        website_url: URL lengkap halaman
        website_key: Kunci Turnstile (dimulai dengan 0x)
    """
    result = asyncio.run(executor.execute("solve_captcha", {
        "captcha_type": "cloudflare",
        "website_url": website_url,
        "website_key": website_key
    }))
    if result["success"]:
        return f"Turnstile diselesaikan. Token: {result['solution']['token']}"
    return f"Gagal: {result['error']}"
Jenis CAPTCHA Alat yang Digunakan Waktu Penyelesaian Rata-rata Umum Di
reCAPTCHA v2 solve_captcha 5-12 detik Halaman login, formulir
reCAPTCHA v3 solve_recaptcha_v3 3-8 detik API, perlindungan tidak terlihat
Cloudflare Turnstile solve_turnstile 2-5 detik SaaS modern, Shopify

Garis panduan reCAPTCHA CapSolver dan guru Cloudflare Turnstile memberikan detail tambahan tentang parameter dan perilaku setiap jenis CAPTCHA.

Dapatkan Kode Bonus Anda: Gunakan kode WEBS di Dasbor CapSolver untuk mendapatkan bonus tambahan 5% pada setiap pengisian ulang. Sempurna untuk tim yang menjalankan alur kerja multi-agen CrewAI dalam skala besar.

Langkah 5 — Pola Produksi untuk CrewAI + CapSolver

Apa yang Harus Dilakukan

Untuk penggunaan CrewAI di produksi, tambahkan penanganan kesalahan dan logika ulang:

python Copy
@tool("Selesaikan CAPTCHA dengan Ulang Otomatis")
def solve_captcha_robust(captcha_type: str, website_url: str, website_key: str) -> str:
    """Selesaikan CAPTCHA dengan ulang otomatis pada kegagalan.
    Mencoba menyelesaikan hingga 3 kali sebelum melaporkan kegagalan.
    """
    for attempt in range(3):
        result = asyncio.run(executor.execute("solve_captcha", {
            "captcha_type": captcha_type,
            "website_url": website_url,
            "website_key": website_key
        }))
        if result["success"]:
            return f"Selesai pada percobaan {attempt + 1}. Token: {result['solution']['token']}"
        if attempt < 2:
            import time
            time.sleep(3)
    return f"Gagal setelah 3 percobaan: {result.get('error', 'Kesalahan tidak diketahui')}"

Untuk kru yang memproses beberapa situs, implementasikan pengecekan saldo sebelum memulai:

python Copy
@tool("Periksa Saldo Penyelesaian CAPTCHA")
def check_balance() -> str:
    """Periksa saldo yang tersisa untuk kredit penyelesaian CAPTCHA."""
    result = asyncio.run(executor.execute("get_balance", {}))
    if result["success"]:
        return f"Saldo: ${result['balance']:.2f}"
    return "Tidak dapat memeriksa saldo"

Dokumentasi web scraping CapSolver menutupi pola tambahan untuk pengumpulan data volume tinggi yang berlaku untuk agen penelitian CrewAI. Untuk agen yang menggunakan otomatisasi browser, ekstensi CapSolver membantu mengidentifikasi parameter CAPTCHA selama pengembangan.

Kesimpulan

Mengintegrasikan penyelesaian CAPTCHA ke dalam alur kerja multi-agen CrewAI memerlukan pembungkusan executor CapSolver dalam fungsi @tool yang kompatibel dengan CrewAI, memberikan alat tersebut ke agen yang melakukan tugas web, dan mengumpulkan kru yang dapat beroperasi secara otonom melalui tantangan verifikasi. CapSolver menyediakan infrastruktur penyelesaian berbasis AI yang menjaga alur kerja multi-agen Anda berjalan tanpa intervensi manusia.

Mulailah dengan membuat alat penyelesaian CAPTCHA tunggal, uji dengan satu agen, lalu perluas ke kru lengkap dengan agen yang berinteraksi web. Pendekatan berbasis alat berarti agen memutuskan kapan harus menyelesaikan berdasarkan konteks — tidak diperlukan logika deteksi CAPTCHA yang ditetapkan secara keras.

FAQ

Bisa beberapa agen CrewAI menyelesaikan CAPTCHA secara bersamaan?

Ya. Setiap agen yang memiliki alat penyelesaian CAPTCHA dapat memanggilnya secara independen. API CapSolver mendukung pengiriman tugas paralel tanpa pembatasan kecepatan, sehingga eksekusi kru paralel berjalan tanpa konflik. Setiap penyelesaian dilacak dengan ID permintaan unik untuk debugging.

Bagaimana CrewAI mengetahui saat agen perlu menyelesaikan CAPTCHA?

LLM agen merenungkan situasi berdasarkan deskripsi alat dan konteks tugas. Ketika tugas melibatkan akses ke sumber daya yang dilindungi CAPTCHA, agen mengenali kebutuhan dan memanggil alat penyelesaian dengan parameter yang sesuai. Anda juga dapat menyertakan detail CAPTCHA dalam deskripsi tugas untuk panduan eksplisit.

Apa yang terjadi jika penyelesaian CAPTCHA gagal dalam alur kerja CrewAI?

Alat mengembalikan pesan kegagalan ke agen. Agen kemudian dapat mencoba lagi, mencoba parameter alternatif, atau melaporkan kegagalan dalam output tugasnya. Penanganan kesalahan CrewAI memungkinkan kru melanjutkan tugas yang tersisa meskipun satu tugas menghadapi CAPTCHA yang tidak dapat diselesaikan.

Apakah CapSolver kompatibel dengan mode proses hierarkis CrewAI?

Ya. Dalam mode hierarkis, agen manajer mendistribusikan tugas ke anggota kru. Jika tugas yang didistribusikan membutuhkan penyelesaian CAPTCHA, agen yang ditugaskan menggunakan alatnya secara independen. Manajer menerima hasil yang selesai tanpa perlu memahami detail penyelesaian CAPTCHA.

Berapa biaya penyelesaian CAPTCHA per run CrewAI?

Biaya tergantung pada jumlah CAPTCHA yang dihadapi dan jenisnya. reCAPTCHA v2 biayanya sekitar 2-3 per 1.000 penyelesaian, reCAPTCHA v3 biayanya 1-2 per 1.000, dan Cloudflare Turnstile biayanya 1-2 per 1.000. Sebuah tim penelitian CrewAI yang menghadapi 3-5 CAPTCHA per eksekusi biayanya 0.005-0.015 per eksekusi.

Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.

Lebih lanjut