CAPSOLVER
Blog
Cách giải CAPTCHA trong AutoGen Agents

Cách giải CAPTCHA trong các tác nhân AutoGen

Logo of CapSolver

Anh Tuan

Data Science Expert

29-Jul-2026

Khung AutoGen của Microsoft cho phép các tác nhân AI trò chuyện hợp tác thông qua các cuộc trò chuyện nhiều lần để hoàn thành các nhiệm vụ phức tạp. Khi các tác nhân AutoGen thực hiện các thao tác dựa trên web - truy xuất dữ liệu, gửi biểu mẫu hoặc nghiên cứu tự động - các thách thức CAPTCHA làm gián đoạn luồng trò chuyện và chặn việc hoàn thành nhiệm vụ. Gói capsolver-agent của CapSolver cung cấp các lược đồ công cụ và trình thực thi bất đồng bộ tích hợp trực tiếp vào cơ chế gọi hàm của AutoGen, mang lại khả năng giải reCAPTCHA, Cloudflare Turnstile và các thách thức xác minh khác trong cuộc trò chuyện.

TL;DR

  • Các tác nhân trò chuyện của AutoGen bị treo khi nhiệm vụ web gặp các thách thức xác minh CAPTCHA
  • CapSolver tích hợp thông qua API register_function của AutoGen như một công cụ gọi được
  • Trình thực thi capsolver-agent xử lý giải một cách bất đồng bộ và trả về kết quả có cấu trúc
  • Hỗ trợ reCAPTCHA v2/v3 (bao gồm cả phiên bản doanh nghiệp) và Cloudflare Turnstile
  • Hoạt động với cả mô hình trò chuyện hai tác nhân và trò chuyện nhóm của AutoGen

Tại sao các tác nhân AutoGen cần giải CAPTCHA

Kiến trúc đa tác nhân của AutoGen sử dụng các mô hình trò chuyện mà các tác nhân hợp tác thông qua các tin nhắn. Một cấu hình phổ biến bao gồm AssistantAgent (AI) và UserProxyAgent (thực thi mã và công cụ). Khi trợ lý xác định rằng một nhiệm vụ web cần giải CAPTCHA, nó cần một hàm được đăng ký để gọi - nếu không, vòng lặp trò chuyện sẽ bị treo mà không có cách nào tiếp tục.

Vấn đề trở nên nghiêm trọng hơn trong các tình huống trò chuyện nhóm của AutoGen. Nhiều tác nhân có thể cần truy cập web đồng thời: một tác nhân nghiên cứu dữ liệu công ty, một tác nhân xác minh thông tin liên hệ, một tác nhân kiểm tra các tài liệu quy định. Mỗi người có thể gặp CAPTCHA trên các trang khác nhau. Không có cơ chế giải, toàn bộ cuộc trò chuyện nhóm sẽ dừng lại tại bức tường xác minh đầu tiên.

Theo dữ liệu sản xuất của CapSolver, khoảng 30% các nhiệm vụ web của tác nhân gặp các thách thức xác minh. Đối với một quy trình AutoGen thực hiện 10 bước phụ thuộc vào web, điều này có nghĩa là 3 lần gián đoạn tiềm năng mỗi cuộc trò chuyện - mỗi lần yêu cầu can thiệp của con người hoặc công cụ giải tự động.

Những gì bạn cần trước khi bắt đầu

Cài đặt các gói cần thiết:

bash Copy
# Động cơ CapSolver (nguồn cấp dữ liệu bắt buộc)
pip install git+https://github.com/capsolver-ai/capsolver-core.git

# Công cụ tác nhân CapSolver
pip install git+https://github.com/capsolver-ai/capsolver-agent.git

# Khung AutoGen
pip install autogen-agentchat

Thiết lập biến môi trường:

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

Bạn cần tài khoản CapSolver (https://www.capsolver.com) với tín dụng API đã nạp.

Bước 1 - Đăng ký Giải CAPTCHA như một Hàm AutoGen

Điều gì cần làm

AutoGen sử dụng register_function để làm cho các công cụ có sẵn cho các tác nhân. Tạo một hàm giải CAPTCHA và đăng ký nó:

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

# Tạo trình thực thi 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:
    """Giải một thách thức CAPTCHA và trả về mã xác minh.
    
    Args:
        captcha_type: Loại CAPTCHA - 'reCaptchaV2', 'reCaptchaV3', hoặc 'cloudflare'
        website_url: URL đầy đủ của trang có CAPTCHA
        website_key: Mã trang (thuộc tính data-sitekey)
        page_action: Tên hành động cho reCAPTCHA v3 (tùy chọn)
        min_score: Điểm tối thiểu cho reCAPTCHA v3 (mặc định 0.7)
    
    Returns:
        Mã CAPTCHA đã giải hoặc thông báo lỗi
    """
    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 đã được giải thành công. Token (80 ký tự đầu): {token[:80]}..."
    return f"Giải CAPTCHA thất bại: {result['error']}"

Tại sao điều này quan trọng

Đăng ký hàm của AutoGen là cách tiêu chuẩn để cung cấp khả năng thực thi cho các tác nhân. Trợ lý nhận thấy mô tả hàm, hiểu các tham số thông qua chú thích, và gọi nó khi trò chuyện yêu cầu giải CAPTCHA. Điều này tuân theo chính xác mô hình thiết kế của AutoGen.

Bước 2 - Thiết lập Trò chuyện Hai Tác nhân của AutoGen

Điều gì cần làm

Tạo cặp AssistantAgent và UserProxyAgent với khả năng giải CAPTCHA:

python Copy
# Cấu hình LLM
llm_config = {
    "config_list": [{"model": "gpt-4o", "api_key": "YOUR_OPENAI_KEY"}],
    "temperature": 0
}

# Tác nhân trợ lý (AI quyết định điều gì cần làm)
assistant = AssistantAgent(
    name="web_assistant",
    system_message="""Bạn là một trợ lý nghiên cứu web với khả năng giải CAPTCHA.
    Khi một nhiệm vụ yêu cầu truy cập trang web có CAPTCHA, sử dụng hàm solve_captcha 
    với các tham số phù hợp:
    - captcha_type: 'reCaptchaV2', 'reCaptchaV3', hoặc 'cloudflare'
    - website_url: URL trang đầy đủ
    - website_key: mã trang từ trang
    
    Sau khi giải, trả lại token cho người dùng để gửi biểu mẫu."""
)

# Người đại diện người dùng (thực thi hàm thay mặt trợ lý)
user_proxy = UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=5,
    code_execution_config={"work_dir": "workspace", "use_docker": False}
)

# Đăng ký hàm giải CAPTCHA
from autogen import register_function

register_function(
    solve_captcha,
    caller=assistant,      # Trợ lý quyết định khi gọi
    executor=user_proxy,   # Người đại diện người dùng thực thi hàm
    name="solve_captcha",
    description="Giải thách thức CAPTCHA (reCAPTCHA v2/v3 hoặc Cloudflare Turnstile) và trả về token xác minh"
)

Tại sao điều này quan trọng

Mô hình hai tác nhân là kiến trúc cốt lõi của AutoGen. Trợ lý suy nghĩ về nhiệm vụ và quyết định gọi solve_captcha khi cần. Người đại diện người dùng thực thi lời gọi hàm và trả lại kết quả cho trợ lý, sau đó trợ lý tiếp tục trò chuyện với token có sẵn.

Bước 3 - Chạy Cuộc trò chuyện Giải CAPTCHA

Điều gì cần làm

Khởi động cuộc trò chuyện yêu cầu giải CAPTCHA:

python Copy
# Bắt đầu cuộc trò chuyện
user_proxy.initiate_chat(
    assistant,
    message="""Tôi cần truy cập một trang được bảo vệ bởi reCAPTCHA v2.
    URL: https://example.com/data-portal
    Mã trang: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
    
    Vui lòng giải CAPTCHA và cung cấp token cho tôi."""
)

Luồng trò chuyện:

  1. Người đại diện người dùng gửi nhiệm vụ
  2. Trợ lý nhận ra cần giải CAPTCHA
  3. Trợ lý gọi solve_captcha với các tham số
  4. Người đại diện người dùng thực thi hàm (CapSolver giải)
  5. Kết quả trở lại trợ lý
  6. Trợ lý trình bày token để hoàn thành nhiệm vụ

Bước 4 - Sử dụng trong Trò chuyện Nhóm AutoGen

Điều gì cần làm

Đối với các quy trình phức tạp với nhiều tác nhân, đăng ký giải CAPTCHA trong trò chuyện nhóm:

python Copy
from autogen import GroupChat, GroupChatManager

# Các tác nhân chuyên biệt
researcher = AssistantAgent(
    name="researcher",
    system_message="Bạn nghiên cứu các trang web và thu thập dữ liệu. Sử dụng solve_captcha khi gặp các thách thức xác minh.",
    llm_config=llm_config
)

analyst = AssistantAgent(
    name="analyst",
    system_message="Bạn phân tích dữ liệu đã thu thập và tạo ra các thông tin.",
    llm_config=llm_config
)

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

# Đăng ký giải CAPTCHA cho nhà nghiên cứu
register_function(
    solve_captcha,
    caller=researcher,
    executor=executor_agent,
    name="solve_captcha",
    description="Giải các thách thức CAPTCHA trên các trang web"
)

# Tạo trò chuyện nhóm
group_chat = GroupChat(
    agents=[researcher, analyst, executor_agent],
    messages=[],
    max_round=10
)

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

# Bắt đầu nhiệm vụ nghiên cứu nhóm
executor_agent.initiate_chat(
    manager,
    message="Nghiên cứu dữ liệu tại https://example.com/reports. Nó được bảo vệ bởi reCAPTCHA v2 (mã: 6Le...). Giải CAPTCHA, thu thập dữ liệu, sau đó phân tích."
)
Loại CAPTCHA Tham số Loại Nhiệm vụ Thời gian Giải Trung bình Các trang phổ biến
reCAPTCHA v2 reCaptchaV2 5-12 giây Trang đăng nhập, biểu mẫu, cổng
reCAPTCHA v3 reCaptchaV3 3-8 giây APIs, bảo vệ vô hình
Cloudflare Turnstile cloudflare 2-5 giây SaaS hiện đại, trang Shopify

Hướng dẫn reCAPTCHA của CapSolvertài liệu Cloudflare Turnstile cung cấp thêm chi tiết tham số cho từng loại CAPTCHA.

Mã Giảm Giá Của Bạn: Sử dụng mã WEBS tại Bảng điều khiển CapSolver để nhận thêm 5% tiền thưởng cho mỗi lần nạp tiền. Lý tưởng cho các nhóm chạy quy trình đa tác nhân AutoGen.

Bước 5 - Mẫu Sản xuất và Xử lý Lỗi

Điều gì cần làm

Thêm logic thử lại và kiểm tra cân bằng cho các triển khai sản xuất:

python Copy
def solve_captcha_with_retry(
    captcha_type: str,
    website_url: str,
    website_key: str,
    max_retries: int = 3
) -> str:
    """Giải CAPTCHA với thử lại tự động khi thất bại."""
    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"Đã giải (lần {attempt+1}). Token: {result['solution']['token'][:80]}..."
        
        if attempt < max_retries - 1:
            import time
            time.sleep(3)
    
    return f"Thất bại sau {max_retries} lần: {result.get('error', 'Không rõ')}"

def check_captcha_balance() -> str:
    """Kiểm tra số dư giải CAPTCHA còn lại."""
    result = asyncio.run(executor.execute("get_balance", {}))
    if result["success"]:
        return f"Số dư CapSolver: ${result['balance']:.2f}"
    return "Không thể truy xuất số dư"

Đăng ký cả hai hàm cho khả năng toàn diện:

python Copy
register_function(solve_captcha_with_retry, caller=assistant, executor=user_proxy,
    name="solve_captcha", description="Giải CAPTCHA với logic thử lại")
register_function(check_captcha_balance, caller=assistant, executor=user_proxy,
    name="check_balance", description="Kiểm tra số dư giải CAPTCHA")

Tài liệu giải CAPTCHA bằng web scraping của CapSolver đề cập đến các mẫu bổ sung cho thu thập dữ liệu khối lượng lớn áp dụng cho các tác nhân nghiên cứu AutoGen. Đối với tự động hóa trình duyệt, phần mở rộng CapSolver giúp xác định tham số CAPTCHA trong quá trình phát triển.

Kết luận

Việc tích hợp giải CAPTCHA vào các tác nhân AutoGen yêu cầu đăng ký hàm giải thông qua register_function, kết nối nó với trình thực thi của CapSolver và để tác nhân trợ lý quyết định khi gọi nó trong cuộc trò chuyện. CapSolver cung cấp cơ sở hạ tầng giải CAPTCHA dựa trên AI, xóa bỏ các thách thức xác minh trong 3-12 giây, giữ cho các cuộc trò chuyện AutoGen tiếp tục mà không cần can thiệp của con người.

Bắt đầu với mô hình hai tác nhân cho các nhiệm vụ đơn giản, sau đó mở rộng sang trò chuyện nhóm cho các quy trình đa tác nhân phức tạp. Cách tiếp cận đăng ký hàm có nghĩa là các tác nhân tự nhiên quyết định khi giải dựa trên ngữ cảnh trò chuyện - không cần phát hiện CAPTCHA được mã hóa cứng.

Câu hỏi thường gặp

CapSolver có hoạt động với thực thi bất đồng bộ của AutoGen không?

Có. Mặc dù register_function của AutoGen sử dụng các chữ ký hàm đồng bộ, bạn có thể bao bọc trình thực thi bất đồng bộ của CapSolver bằng asyncio.run() bên trong hàm được đăng ký. Điều này cung cấp lợi ích giải bất đồng bộ (kết nối nhóm, yêu cầu đồng thời) trong giao diện gọi hàm đồng bộ của AutoGen.

Nhiều tác nhân AutoGen có thể chia sẻ cùng một trình giải CAPTCHA không?

Có. Đăng ký hàm giải giống nhau với nhiều tác nhân gọi trong trò chuyện nhóm. Mỗi tác nhân có thể gọi giải CAPTCHA độc lập khi nhiệm vụ cụ thể của họ yêu cầu. API của CapSolver xử lý các yêu cầu đồng thời mà không có xung đột.

AutoGen quyết định khi nào gọi hàm giải CAPTCHA như thế nào?

Tác nhân trợ lý của AutoGen sử dụng mô tả hàm và ngữ cảnh trò chuyện để quyết định. Khi nhiệm vụ đề cập đến việc truy cập tài nguyên được bảo vệ bằng CAPTCHA, trợ lý nhận ra nhu cầu và tạo lời gọi hàm với tham số phù hợp. Bạn cũng có thể thêm chỉ dẫn rõ ràng trong thông điệp hệ thống.

Điều gì xảy ra nếu giải CAPTCHA thất bại trong cuộc trò chuyện?

Hàm trả về thông báo lỗi đến tác nhân trợ lý. Trợ lý có thể thử lại với tham số khác, yêu cầu làm rõ hoặc báo cáo thất bại. Vòng lặp trò chuyện của AutoGen tiếp tục bất kể - thất bại được xử lý như một phần của cuộc trò chuyện thay vì làm hệ thống dừng lại.

Chi phí giải CAPTCHA cho mỗi cuộc trò chuyện AutoGen là bao nhiêu?

Một cuộc trò chuyện AutoGen gặp 1-3 CAPTCHA thường tốn 0.002-0.009 cho phí giải. reCAPTCHA v2 tốn khoảng 2-3 cho 1.000 giải, và Cloudflare Turnstile tốn $1-2 cho 1.000 giải. Đối với hầu hết các quy trình, chi phí giải CAPTCHA là nhỏ so với chi phí API LLM.

Tuyên bố Tuân thủ: Thông tin được cung cấp trên blog này chỉ mang tính chất tham khảo. CapSolver cam kết tuân thủ tất cả các luật và quy định hiện hành. Việc sử dụng mạng lưới CapSolver cho các hoạt động bất hợp pháp, gian lận hoặc lạm dụng là hoàn toàn bị cấm và sẽ bị điều tra. Các giải pháp giải captcha của chúng tôi nâng cao trải nghiệm người dùng trong khi đảm bảo tuân thủ 100% trong việc giúp giải quyết các khó khăn về captcha trong quá trình thu thập dữ liệu công khai. Chúng tôi khuyến khích việc sử dụng dịch vụ của chúng tôi một cách có trách nhiệm. Để biết thêm thông tin, vui lòng truy cập Điều khoản Dịch vụ và Chính sách Quyền riêng tư.

Thêm

Giải CAPTCHA bằng TinyFish AgentQ
Cách giải CAPTCHA với TinyFish AgentQL – Hướng dẫn từng bước sử dụng CapSolver

Học cách tích hợp CapSolver với TinyFish AgentQL để giải CAPTCHAs như reCAPTCHA và Cloudflare Turnstile tự động. Hướng dẫn từng bước với ví dụ SDK Python và JavaScript cho tự động hóa web dựa trên AI liền mạch.

ai
Logo of CapSolver

Nikolai Smirnov

05-Aug-2026

Cách giải CAPTCHA trong các tác nhân LlamaIndex
Cách giải CAPTCHA trong các tác nhân LlamaIndex

Tích hợp giải CAPTCHA vào các tác nhân LlamaIndex bằng FunctionTool và CapSolver cho các pipeline tiếp nhận dữ liệu web.

ai
Logo of CapSolver

Anh Tuan

31-Jul-2026

Làm thế nào để giải CAPTCHA với dịch vụ CapSolver MCP
Cách giải CAPTCHA với MCP: Mô hình Bối cảnh Giao thức Dịch vụ CapSolver

Cài đặt dịch vụ CapSolver MCP để giải CAPTCHA mà không cần lập trình trên Claude Desktop, Cursor và bất kỳ khách hàng MCP nào.

ai
Logo of CapSolver

Anh Tuan

31-Jul-2026

Cách giải quyết reCAPTCHA v3 trong OpenAI Agents SDK
Cách giải reCAPTCHA v3 trong OpenAI Agents SDK

Tạo token reCAPTCHA v3 có điểm cao trong OpenAI Agents SDK bằng cách sử dụng công cụ hàm CapSolver.

ai
Logo of CapSolver

Anh Tuan

30-Jul-2026

Cách giải quyết Cloudflare Turnstile trong các tác nhân CrewAI
Cách giải quyết Cloudflare Turnstile trong agent CrewAI

Tích hợp việc giải quyết Cloudflare Turnstile vào các quy trình đa tác nhân của CrewAI bằng cách sử dụng CapSolver.

ai
Logo of CapSolver

Anh Tuan

30-Jul-2026

Làm thế nào để giải CAPTCHA trong các tác nhân AI AutoGen bằng CapSolver
Cách giải CAPTCHA trong các tác nhân AutoGen

Hướng dẫn đầy đủ về việc tích hợp giải CAPTCHA vào các cuộc trò chuyện đa tác nhân Microsoft AutoGen bằng cách sử dụng CapSolver với các hàm register_function và mô hình trò chuyện nhóm.

ai
Logo of CapSolver

Anh Tuan

29-Jul-2026