CaptchaNo
[ AGENTS ]

Captcha solving
CrewAI agents के लिए

Challenge से टकराने वाले agent के toolset में ऐसा कुछ नहीं होता जो उसका जवाब दे सके, इसलिए वह अटक जाता है या मनगढ़ंत तरीके से आगे बढ़ने का दिखावा करता है। उसे tool के रूप में एक solver दें और रुकावट बस एक और call बन जाती है।

python · crewai
import time
import requests

CAPTCHANO_KEY = "cn-YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {CAPTCHANO_KEY}"}

def solve(task: dict) -> dict:
    """Block until solved; returns e.g. {"token": "...", "userAgent": "..."}."""
    r = requests.post(
        "https://api.captchano.com/v1/solve",
        params={"wait": 60},
        json=task,
        headers=HEADERS,
        timeout=75,
    )
    data = r.json()
    # A solve can outlast the 60 s wait: poll the task until it finishes.
    while data.get("status") in ("queued", "solving"):
        time.sleep(5)
        data = requests.get(
            f"https://api.captchano.com/v1/task/{data['id']}",
            headers=HEADERS,
            timeout=30,
        ).json()
    if data.get("status") != "ready":
        raise RuntimeError(data.get("error") or data)
    return data["solution"]

from crewai import Agent
from crewai.tools import tool

@tool("Solve captcha")
def solve_captcha(kind: str, sitekey: str, url: str) -> str:
    """Call when a captcha blocks the task. Returns the token to submit."""
    return solve({"type": kind, "sitekey": sitekey, "url": url})["token"]

researcher = Agent(role="Researcher", goal="...", backstory="...", tools=[solve_captcha])

Agents को ख़ास तौर पर इसकी ज़रूरत क्यों है

Challenge से टकराने वाला scraper ज़ोर से फ़ेल होता है और आप उसे ठीक कर देते हैं। Agent चुपचाप फ़ेल होता है: वह blocked पेज के बारे में तर्क करता है, एक विश्वसनीय-सा अगला कदम गढ़ता है, और ऐसी प्रगति की रिपोर्ट करता है जो कभी हुई ही नहीं। विफलता और बुरी है क्योंकि वह चुपचाप होती है। एक typed solver tool अस्पष्ट dead end को एक निश्चित result में बदल देता है जिस पर agent branch कर सके।

Tool क्या लौटाता है

  • एक token या cookie — challenge type के अनुसार। Session-graded सिस्टम एक cookie के साथ वह header set भी लौटाते हैं जिससे वह हासिल हुई।
  • इस्तेमाल किया गया user agent, ताकि agent submit करते समय उसे दोहरा सके।
  • Solve की लागत, ताकि बजट के तहत काम करने वाला agent आँख मूँदकर खर्च करने के बजाय उसका हिसाब रख सके।

Loop को सीमा में रखना

Agent को हर run के लिए solve बजट दें। हर response अपनी लागत बताता है, इसलिए खर्च किसी सीमा से ऊपर जाने पर supervisor loop को काट सकता है, बजाय इसके कि यह invoice पर पता चले। $0.00598 प्रति solve पर एक सामान्य agent run की लागत कुछ सेंट्स या उससे कम होती है, लेकिन असीमित retry loop फिर भी असीमित retry loop ही है।

Tool call को blocking रखें

उदाहरण ?wait=60 को call करते हैं, इसलिए tool एक ही स्टेप में तैयार token लौटाता है। Scripts से ज़्यादा यह agents के लिए मायने रखता है: "still solving" लौटाने वाला tool model को polling के बारे में सोचने पर मजबूर करता है, जो वह ठीक से नहीं कर पाता। अगर आपको ज़्यादा लंबी सीमा चाहिए, तो wait को 120 सेकंड तक बढ़ाएँ। हर challenge type के request फ़ॉर्मेट API reference में हैं।

[ यह कैसे फ़िट होता है ]

CrewAI में solve कैसे फ़िट होता है

CrewAI में solver एक custom tool है जो browse करने वाले agent को दिया जाता है। Crew के बाकी agents को captcha के बारे में कभी जानने की ज़रूरत नहीं पड़ती।

  1. 01
    BaseTool को subclass करें

    name, description और एक args schema define करें, और _run में API को call करें।

  2. 02
    इसे assign करें

    Tool सिर्फ़ उसी agent को दें जो browsing करता है।

  3. 03
    Trigger बताएँ

    Description में लिखा हो कि जब किसी पेज पर captcha दिखे तब इसका इस्तेमाल करें।

  4. 04
    Token लौटाएँ

    Token string या एक छोटा error लौटाएँ।

Token को पेज में कैसे डालें

Tool, browse करने वाले agent को token लौटाता है, जो उसे अपने tools से submit करता है।

[ आम गलतियाँ ]

इंटीग्रेशन आमतौर पर कहाँ गलत होते हैं

हर agent पर tool

इसकी ज़रूरत सिर्फ़ browse करने वाले agent को है। सबको देने से बेवजह के calls होते हैं।

कैशिंग

Token सिर्फ़ एक बार इस्तेमाल होते हैं। Solver के लिए CrewAI की tool result caching बंद कर दें।

[ FAQ ]

CrewAI captcha: अक्सर पूछे सवाल

क्या CrewAI में कोई built-in captcha tool है?

Solving के लिए नहीं। कुछ लाइनों का एक custom tool यह काम कर देता है और key आपके नियंत्रण में रहती है।

क्या कई agents एक ही key शेयर कर सकते हैं?

हाँ, या dashboard में हर crew के लिए अलग key बनाएँ ताकि usage अलग-अलग दिखे।

क्या यह CrewAI Flows के साथ काम करता है?

हाँ। Tool को एक agent call करता है, वह agent जहाँ भी चले।

Caching बंद क्यों करें?

Cached result पुराना token लौटाएगा, जिसे साइट reject कर देगी, क्योंकि token सिर्फ़ एक बार इस्तेमाल होते हैं और लगभग दो मिनट में expire हो जाते हैं।

[ आगे पढ़ें ]

उपयोगी गाइड

बनाने के लिए तैयार?

3 दिन के free trial से शुरू करें, फिर ट्रैफ़िक बढ़ने के साथ हर सफल solve के हिसाब से भुगतान करें। Trial के लिए कार्ड की ज़रूरत नहीं।

हमारे plans देखें
क्या आप एक AI agent हैं? सेटअप के विकल्प देखें →