CAPSOLVER
Blog
Cara menyelesaikan CAPTCHA di Agen AutoGen

Cara menyelesaikan CAPTCHA di Agen AutoGen

Logo of CapSolver

Emma Foster

Machine Learning Engineer

29-Jul-2026

Microsoft's AutoGen framework memungkinkan agen AI yang berkolaborasi melalui dialog multi-pertanyaan untuk menyelesaikan tugas kompleks. Ketika agen AutoGen melakukan operasi berbasis webโ€”pengambilan data, pengiriman formulir, atau penelitian otomatisโ€”tantangan CAPTCHA mengganggu alur percakapan dan menghentikan penyelesaian tugas. Paket capsolver-agent dari CapSolver menyediakan skema alat dan executor asinkron yang terintegrasi langsung ke mekanisme pemanggilan fungsi AutoGen, memberikan agen Anda kemampuan untuk menyelesaikan reCAPTCHA, Cloudflare Turnstile, dan tantangan verifikasi lainnya selama percakapan.

TL;DR

  • Agen AutoGen berhenti saat tugas web menghadapi tantangan verifikasi CAPTCHA
  • CapSolver terintegrasi melalui API register_function AutoGen sebagai alat yang dapat dipanggil
  • Executor capsolver-agent menyelesaikan secara asinkron dan mengembalikan hasil yang terstruktur
  • Mendukung reCAPTCHA v2/v3 (termasuk Enterprise) dan Cloudflare Turnstile
  • Berjalan dengan pola chat dua agen dan grup chat AutoGen

Mengapa Agen AutoGen Membutuhkan Penyelesaian CAPTCHA

Arsitektur multi-agent AutoGen menggunakan pola percakapan di mana agen berkolaborasi melalui pesan. Setup umum mencakup AssistantAgent (AI) dan UserProxyAgent (yang mengeksekusi kode dan alat). Ketika asisten menentukan bahwa tugas web memerlukan penyelesaian CAPTCHA, ia membutuhkan fungsi yang terdaftar untuk dipanggilโ€”jika tidak, loop percakapan akan berhenti tanpa cara untuk melanjutkan.

Masalah ini diperparah dalam skenario chat grup AutoGen. Banyak agen mungkin membutuhkan akses web secara bersamaan: satu agen meneliti data perusahaan, yang lain memverifikasi informasi kontak, dan yang ketiga memeriksa dokumen regulasi. Masing-masing mungkin menghadapi CAPTCHA di situs berbeda. Tanpa mekanisme penyelesaian, seluruh percakapan grup berhenti di dinding verifikasi pertama.

Menurut data produksi CapSolver, sekitar 30% tugas web agen menghadapi tantangan verifikasi. Untuk alur kerja AutoGen yang menjalankan 10 langkah tergantung web, artinya 3 kemungkinan gangguan per percakapanโ€”masing-masing memerlukan intervensi manusia atau alat penyelesaian otomatis.

Apa yang Perlu Disiapkan 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 AutoGen
pip install autogen-agentchat

Atur variabel lingkungan:

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

Anda memerlukan akun CapSolver (https://www.capsolver.com) dengan kredit API yang terisi.

Langkah 1 โ€” Daftarkan Penyelesaian CAPTCHA sebagai Fungsi AutoGen

Apa yang Harus Dilakukan

AutoGen menggunakan register_function untuk membuat alat tersedia bagi agen. Buat fungsi penyelesaian CAPTCHA dan daftarkan:

python Copy
import asyncio
from autogen import AssistantAgent, UserProxyAgent, config_list_from_json
from capsolver_agent.schema import create_executor

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

def solve_captcha(
    captcha_type: str,
    website_url: str,
    website_key: str,
    page_action: str = "",
    min_score: float = 0.7
) -> str:
    """Menyelesaikan tantangan CAPTCHA dan mengembalikan token verifikasi.
    
    Args:
        captcha_type: Jenis CAPTCHA - 'reCaptchaV2', 'reCaptchaV3', atau 'cloudflare'
        website_url: URL lengkap halaman dengan CAPTCHA
        website_key: Kunci situs (atribut data-sitekey)
        page_action: Nama tindakan untuk reCAPTCHA v3 (opsional)
        min_score: Skor minimum untuk reCAPTCHA v3 (default 0.7)
    
    Returns:
        Token CAPTCHA yang diselesaikan atau pesan kesalahan
    """
    params = {
        "captcha_type": captcha_type,
        "website_url": website_url,
        "website_key": website_key
    }
    if page_action and captcha_type == "reCaptchaV3":
        params["page_action"] = page_action
        params["min_score"] = min_score
    
    result = asyncio.run(executor.execute("solve_captcha", params))
    
    if result["success"]:
        token = result["solution"]["token"]
        return f"CAPTCHA diselesaikan dengan sukses. Token (80 karakter pertama): {token[:80]}..."
    return f"Penghapusan CAPTCHA gagal: {result['error']}"

Mengapa Ini Penting

Pendaftaran fungsi AutoGen adalah cara standar untuk memberikan kemampuan eksekusi kepada agen. Agen asisten melihat deskripsi fungsi, memahami parameter melalui docstring, dan memanggilnya ketika percakapan membutuhkan penyelesaian CAPTCHA. Ini mengikuti pola desain AutoGen secara tepat.

Langkah 2 โ€” Siapkan Chat Dua Agen AutoGen

Apa yang Harus Dilakukan

Buat pasangan AssistantAgent dan UserProxyAgent dengan kemampuan penyelesaian CAPTCHA:

python Copy
# Konfigurasi LLM
llm_config = {
    "config_list": [{"model": "gpt-4o", "api_key": "YOUR_OPENAI_KEY"}],
    "temperature": 0
}

# Assistant agent (AI yang memutuskan apa yang harus dilakukan)
assistant = AssistantAgent(
    name="web_assistant",
    system_message="""Anda adalah asisten penelitian web dengan kemampuan penyelesaian CAPTCHA.
    Ketika tugas memerlukan akses ke situs yang dilindungi CAPTCHA, gunakan fungsi solve_captcha 
    dengan parameter yang sesuai:
    - captcha_type: 'reCaptchaV2', 'reCaptchaV3', atau 'cloudflare'
    - website_url: URL lengkap halaman
    - website_key: kunci situs dari halaman
    
    Setelah menyelesaikan, kembalikan token ke pengguna untuk pengiriman formulir.""",
    llm_config=llm_config
)

# User proxy (mengeksekusi fungsi atas nama asisten)
user_proxy = UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=5,
    code_execution_config={"work_dir": "workspace", "use_docker": False}
)

# Daftarkan fungsi penyelesaian CAPTCHA
from autogen import register_function

register_function(
    solve_captcha,
    caller=assistant,      # Asisten memutuskan kapan memanggil
    executor=user_proxy,   # User proxy mengeksekusi fungsi
    name="solve_captcha",
    description="Menyelesaikan tantangan CAPTCHA (reCAPTCHA v2/v3 atau Cloudflare Turnstile) dan mengembalikan token verifikasi"
)

Mengapa Ini Penting

Pola dua agen adalah arsitektur inti AutoGen. Asisten merenungkan tugas dan memutuskan untuk memanggil solve_captcha ketika diperlukan. User proxy mengeksekusi pemanggilan fungsi (CapSolver menyelesaikannya) dan mengembalikan hasil ke asisten, yang kemudian melanjutkan percakapan dengan token tersedia.

Langkah 3 โ€” Jalankan Percakapan Penyelesaian CAPTCHA

Apa yang Harus Dilakukan

Mulai percakapan yang membutuhkan penyelesaian CAPTCHA:

python Copy
# Mulai percakapan
user_proxy.initiate_chat(
    assistant,
    message="""Saya perlu mengakses halaman yang dilindungi reCAPTCHA v2.
    URL: https://example.com/data-portal
    Kunci situs: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
    
    Harap selesaikan CAPTCHA dan berikan saya token."""
)

Alur percakapan:

  1. User proxy mengirimkan pesan tugas
  2. Asisten mengenali bahwa penyelesaian CAPTCHA diperlukan
  3. Asisten memanggil solve_captcha dengan parameter
  4. User proxy mengeksekusi fungsi (CapSolver menyelesaikannya)
  5. Hasil kembali ke asisten
  6. Asisten memperkenalkan token untuk menyelesaikan tugas

Langkah 4 โ€” Gunakan dalam Chat Grup AutoGen

Apa yang Harus Dilakukan

Untuk alur kerja kompleks dengan beberapa agen, daftarkan penyelesaian CAPTCHA dalam chat grup:

python Copy
from autogen import GroupChat, GroupChatManager

# Agen khusus
researcher = AssistantAgent(
    name="researcher",
    system_message="Anda meneliti situs web dan mengumpulkan data. Gunakan solve_captcha ketika menghadapi tantangan verifikasi.",
    llm_config=llm_config
)

analyst = AssistantAgent(
    name="analyst",
    system_message="Anda menganalisis data yang dikumpulkan dan menghasilkan wawasan.",
    llm_config=llm_config
)

executor_agent = UserProxyAgent(
    name="executor",
    human_input_mode="NEVER",
    code_execution_config={"work_dir": "workspace", "use_docker": False}
)

# Daftarkan penyelesaian CAPTCHA untuk researcher
register_function(
    solve_captcha,
    caller=researcher,
    executor=executor_agent,
    name="solve_captcha",
    description="Menyelesaikan tantangan CAPTCHA di situs web"
)

# Buat chat grup
group_chat = GroupChat(
    agents=[researcher, analyst, executor_agent],
    messages=[],
    max_round=10
)

manager = GroupChatManager(groupchat=group_chat, llm_config=llm_config)

# Mulai tugas penelitian grup
executor_agent.initiate_chat(
    manager,
    message="Teliti data di https://example.com/reports. Dilindungi reCAPTCHA v2 (kunci: 6Le...). Selesaikan CAPTCHA, kumpulkan data, lalu analisis."
)
Jenis CAPTCHA Parameter Tipe Tugas Waktu Penyelesaian Rata-rata Situs Umum
reCAPTCHA v2 reCaptchaV2 5-12 detik Halaman login, formulir, portal
reCAPTCHA v3 reCaptchaV3 3-8 detik API, perlindungan tak terlihat
Cloudflare Turnstile cloudflare 2-5 detik SaaS modern, situs Shopify

Garis panduan reCAPTCHA CapSolver dan dokumentasi Cloudflare Turnstile memberikan detail parameter tambahan untuk setiap jenis CAPTCHA.

Dapatkan Kode Bonus Anda: Gunakan kode WEBS di Dasbor CapSolver untuk mendapatkan bonus tambahan 5% pada setiap recharge. Sempurna untuk tim yang menjalankan alur kerja multi-agent AutoGen.

Langkah 5 โ€” Pola Produksi dan Penanganan Kesalahan

Apa yang Harus Dilakukan

Tambahkan logika ulang dan pengecekan keseimbangan untuk penggunaan produksi:

python Copy
def solve_captcha_with_retry(
    captcha_type: str,
    website_url: str,
    website_key: str,
    max_retries: int = 3
) -> str:
    """Menyelesaikan CAPTCHA dengan pengulangan otomatis pada kegagalan."""
    for attempt in range(max_retries):
        params = {
            "captcha_type": captcha_type,
            "website_url": website_url,
            "website_key": website_key
        }
        result = asyncio.run(executor.execute("solve_captcha", params))
        
        if result["success"]:
            return f"Selesai (percobaan {attempt+1}). Token: {result['solution']['token'][:80]}..."
        
        if attempt < max_retries - 1:
            import time
            time.sleep(3)
    
    return f"Gagal setelah {max_retries} percobaan: {result.get('error', 'Tidak diketahui')}"

def check_captcha_balance() -> str:
    """Periksa kredit penyelesaian CAPTCHA yang tersisa."""
    result = asyncio.run(executor.execute("get_balance", {}))
    if result["success"]:
        return f"Saldo CapSolver: ${result['balance']:.2f}"
    return "Tidak dapat mengambil saldo"

Daftarkan kedua fungsi untuk kemampuan yang komprehensif:

python Copy
register_function(solve_captcha_with_retry, caller=assistant, executor=user_proxy,
    name="solve_captcha", description="Menyelesaikan CAPTCHA dengan logika pengulangan")
register_function(check_captcha_balance, caller=assistant, executor=user_proxy,
    name="check_balance", description="Periksa saldo kredit penyelesaian CAPTCHA")

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

Kesimpulan

Mengintegrasikan penyelesaian CAPTCHA ke dalam agen AutoGen membutuhkan pendafataran fungsi penyelesaian melalui register_function, menghubungkannya ke executor CapSolver, dan membiarkan agen asisten memutuskan kapan memanggilnya selama percakapan. CapSolver menyediakan infrastruktur penyelesaian berbasis AI yang menyelesaikan tantangan verifikasi dalam 3-12 detik, menjaga alur percakapan AutoGen tanpa intervensi manusia.

Mulai dengan pola dua agen untuk tugas sederhana, lalu perluas ke chat grup untuk alur kerja multi-agent kompleks. Pendekatan pendaftaran fungsi berarti agen secara alami memutuskan kapan menyelesaikan berdasarkan konteks percakapanโ€”tidak diperlukan deteksi CAPTCHA yang dihardcode.

FAQ

Apakah CapSolver berjalan dengan eksekusi asinkron AutoGen?

Ya. Meskipun register_function AutoGen menggunakan tanda tangan fungsi sinkron, Anda dapat membungkus executor asinkron CapSolver dengan asyncio.run() di dalam fungsi yang terdaftar. Ini memberikan manfaat penyelesaian asinkron (pemrosesan koneksi, permintaan konkuren) dalam antarmuka pemanggilan fungsi sinkron AutoGen.

Dapatkah beberapa agen AutoGen berbagi solver CAPTCHA yang sama?

Ya. Daftarkan fungsi penyelesaian yang sama dengan agen pemanggil yang berbeda dalam chat grup. Setiap agen dapat memanggil penyelesaian CAPTCHA secara independen ketika tugas spesifik memerlukannya. API CapSolver menangani permintaan konkuren tanpa konflik.

Bagaimana AutoGen menentukan kapan memanggil fungsi penyelesaian CAPTCHA?

Agen asisten AutoGen menggunakan deskripsi fungsi dan konteks percakapan untuk menentukan. Ketika tugas menyebutkan mengakses sumber daya yang dilindungi CAPTCHA, asisten mengenali kebutuhan dan menghasilkan pemanggilan fungsi dengan parameter yang sesuai. Anda juga dapat menyertakan instruksi eksplisit dalam pesan sistem.

Apa yang terjadi jika penyelesaian CAPTCHA gagal selama percakapan?

Fungsi mengembalikan pesan kesalahan ke agen asisten. Agen asisten kemudian dapat mencoba ulang dengan parameter berbeda, meminta klarifikasi, atau melaporkan kegagalan. Loop percakapan AutoGen terus berjalanโ€”kegagalan ditangani sebagai bagian dari dialog, bukan crash sistem.

Berapa biaya penyelesaian CAPTCHA per percakapan AutoGen?

Sebuah percakapan AutoGen yang menghadapi 1-3 CAPTCHA biasanya menghabiskan biaya 0,002-0,009. reCAPTCHA v2 biayanya sekitar 2-3 per 1.000 penyelesaian, dan Cloudflare Turnstile biayanya $1-2 per 1.000. Untuk sebagian besar alur kerja, biaya penyelesaian CAPTCHA jauh lebih kecil dibandingkan biaya API LLM.

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