मुख्य सामग्रीकडे जा
AUTOGEN एकत्रीकरण

AutoGen पेमेंट एकत्रीकरण.

AutoGen पॅकेज नाही, आणि तुम्हाला एकाची आवश्यकता नाही. वास्तविक blockchain0x क्लायंट एका कार्यात लपवा, ते तुमच्या एजंटला द्या, आणि ते Base वर USDC हलवू शकते.

लघु उत्तर

AutoGen साठी कोणताही specific package नाही, आणि त्याची गरजही नाही. AutoGen आधीच एका साध्या typed function ला tool मध्ये बदलते, त्यामुळे तुम्ही खऱ्या Python client ला function मध्ये wrap करता, द्वारे ते एका कडे देता, आणि agent Base वर USDC पाठवू शकतो, invoices settle करू शकतो, आणि wallets वाचू शकतो. सेट करा आणि सुरू करा.

Package का नाही

AutoGen आधीच एक फंक्शन टूल बनवते. ते वापरा.

AutoGen एक टूल स्कीमा थेट Python फंक्शनच्या सिग्नेचर आणि डॉकस्ट्रिंगमधून तयार करते. एक समर्पित AutoGen अडॅप्टर फक्त एक फंक्शन लपवेल जे आपण तरीही लिहिले असते, नंतर AutoGen च्या जलद-गतीच्या API सह समक्रमणातून बाहेर जाईल. म्हणून आम्ही एक पाठवत नाही. तुम्ही काही ओळी लिहिता ज्या वास्तविक blockchain0x क्लायंटला कॉल करतात, आणि तुम्ही तर्क, पडताळणी, आणि त्रुटी हाताळण्यावर पूर्ण नियंत्रण ठेवता.

हे त्या क्लायंटसारखेच आहे ज्याला पाठवलेले LangChain आणि CrewAI अडॅप्टर लपवतात. येथे तुम्ही ते स्वतः लपवता, म्हणजे ट्रॅक करण्यासाठी कोणतीही अडॅप्टर आवृत्ती नाही आणि तुमच्या एजंट आणि API दरम्यान तुमचे स्वतःचे कार्य वगळता काहीही नाही. मल्टी-एजंट संघ तशाच प्रकारे कार्य करतात: एक एजंटला वॉलेट कार्य द्या, इतरांना त्याशिवाय सोडा, आणि खर्चाची अधिकृतता एका ठिकाणी राहते.

इंस्टॉलेशन

AutoGen आणि मुख्य SDK स्थापित करा. एक पर्यावरणीय चल.

जोडण्यासाठी समर्पित AutoGen पॅकेज नाही. तुम्ही AutoGen (Python 3.10+) आणि वास्तविक blockchain0x कोर SDK स्थापित करता, नंतर खालील कार्य लिहिता. ती संपूर्ण अवलंबन यादी आहे.

इंस्टॉल करा
pip install autogen-agentchat "autogen-ext[openai]" blockchain0x
पर्यावरण चल
export BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

BLOCKCHAIN0X_API_KEY ही तुमच्या dashboard मधील sk_test_ testnet किंवा sk_live_ mainnet की आहे; client ती environment मधून वाचतो. जर तुमच्या agent ला पैसे देखील मिळत असतील, तर webhook handler ला BLOCKCHAIN0X_WEBHOOK_SECRET देखील लागतो, जो webhook तयार करताना किंवा rotate करताना डॅशबोर्ड एकदाच परत देतो.

रेसिपी

एक कार्य जे पैसे देते, एक AssistantAgent ला दिले.

खाली संपूर्ण एकत्रीकरण आहे. send_usdc वास्तविक blockchain0x क्लायंटला कॉल करते; AssistantAgent(tools=[send_usdc]) याला एक टूलमध्ये बदलतो जे मॉडेल कॉल करू शकते. AutoGen प्रकाराच्या सूचनांमधून आणि डॉकस्ट्रिंगमधून स्कीमा तयार करते, त्यामुळे त्यांना प्रामाणिक ठेवा. ते चालवा आणि एजंट Base वर USDC हलवतो.

AGENT.PY
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from blockchain0x import Client

blockchain0x = Client()  # reads BLOCKCHAIN0X_API_KEY from the environment

# AutoGen turns a plain typed function into a tool. No dedicated package needed.
def send_usdc(agent_id: str, to: str, amount_wei: str) -> str:
    """Send a USDC payment from an agent wallet.

    amount_wei is USDC base units (6 decimals), so "10000" is 0.01 USDC.
    """
    result = blockchain0x.payments.create(
        body={"agentId": agent_id, "to": to, "amountWei": amount_wei},
    )
    return str(result)

treasurer = AssistantAgent(
    name="treasurer",
    model_client=OpenAIChatCompletionClient(model="gpt-4o"),
    tools=[send_usdc],
    system_message="You pay vendor invoices in USDC within owner-set limits.",
)

result = await treasurer.run(
    task="Pay 0.01 USDC from agent agt_123 to 0xVendor for the dataset.",
)

When the agent decides to pay, it calls send_usdc, the SDK submits the transfer, and you get a transaction hash back. amount_wei is base units, so 0.01 USDC is "10000". A sk_test_ key keeps it on Base Sepolia until you switch to sk_live_. Add more functions - read a wallet, settle an invoice - the same way; each becomes another entry in tools.

वेबहुक हाताळणी

स्वाक्षरी केलेल्या वेबहुकसह इनबाउंड पेमेंटची पुष्टी करा.

जर तुमचा एजंट USDC देखील प्राप्त करतो, तर ते वेबहुकद्वारे पुष्टी करा, मतदानाद्वारे नाही. सत्यापन सहाय्यक Node SDK मध्ये पाठवला जातो; एका Python सेवेमध्ये तुम्ही दस्तऐवजीकरण केलेल्या HMAC विरुद्ध हाताने सत्यापित करता, जे सर्व सहाय्यक करते. खालील FastAPI उदाहरण; समान कोड कोणत्याही असिंक्रोनस Python फ्रेमवर्कमध्ये कार्य करतो.

WEBHOOK.PY
import hmac, hashlib, os, time
from fastapi import FastAPI, Request, HTTPException

app = FastAPI()
SECRET = os.environ["BLOCKCHAIN0X_WEBHOOK_SECRET"].encode()

@app.post("/webhooks/payment")
async def receive(request: Request):
    raw = await request.body()  # RAW bytes - do not parse first
    sig = request.headers.get("X-Blockchain0x-Signature", "")
    ts = request.headers.get("X-Blockchain0x-Timestamp", "")
    parts = dict(p.split("=", 1) for p in sig.split(",") if "=" in p)
    t, v1 = parts.get("t", ts), parts.get("v1", sig)
    want = hmac.new(SECRET, t.encode() + b"." + raw, hashlib.sha256).hexdigest()
    if not hmac.compare_digest(want, v1) or abs(time.time() - int(t)) > 300:
        raise HTTPException(status_code=401)
    if request.headers.get("X-Blockchain0x-Event-Type") == "payment.received":
        await trigger_followup()  # USDC landed - run the next step
    return {"ok": True}

अल्गोरिदम t.rawBody वर HMAC-SHA256 आहे, एक स्थिर-वेळ तुलना, आणि 300-सेकंद पुनरावृत्ती विंडो. कच्चा शरीर await request.body() द्वारे वाचा, कधीही request.json() पुन्हा-सीरियलाइझ केलेले नाही, कारण ते सिग्नेचरच्या कव्हर केलेल्या बाइट्समध्ये बदल करते. शिप केलेले इव्हेंट्स आहेत payment.received, payment.sent, wallet.deployed, आणि webhook.test. मोठ्या फॉलो-अप कामासाठी, एक काम (Celery, RQ, arq) एनक्यू करा आणि हँडलरला ब्लॉक करण्याऐवजी त्वरित 200 प्रतिसाद द्या.

स्रोत आणि दस्तऐवज

तुम्ही लपवलेला क्लायंट ओपन आहे. त्याला वाचा.

Clone करण्यासाठी AutoGen starter package नाही - वरचा recipe हीच integration आहे. blockchain0x SDKs GitHub वर open source आहेत; हा recipe Python SDK (blockchain0x-python) wrap करतो, आणि पूर्ण method surface docs मध्ये आहे. function bodies साठी reference म्हणून ते वाचा.

github.com/tosh-labs/blockchain0x-python

पूर्ण SDK method surface आणि scopes यांचे दस्तऐवजीकरण the docs येथे आहे. Base Sepolia वर sk_test_ key ने सुरुवात करा, आणि function अपेक्षेप्रमाणे काम करू लागल्यावर sk_live_ वर स्विच करा.

सामान्य अडथळे

पाच गट-चर्चा आणि असिंक्रोनस जाळे टाळा.

AutoGen चा बहु-एजंट + असिंक्रोनस डिझाइन शक्तिशाली पॅटर्न अनलॉक करतो परंतु त्याच्या स्वतःच्या अडचणी आणतो. हे आमच्या समर्थन इनबॉक्समधून येतात.

PITFALL 1

AutoGen पॅकेज नाही - तुम्ही SDK लपवता.

Blockchain0x LangChain आणि CrewAI साठी अडॅप्टर्स पाठवते; येथे कोणतीही समर्पित AutoGen पॅकेज नाही. वरील रेसिपी हा समर्थित मार्ग आहे: एक साधी टाइप केलेली कार्यक्षमता जी वास्तविक blockchain0x क्लायंटला कॉल करते, AssistantAgent(tools=[...]) कडे दिली जाते. AutoGen कार्यक्षमता स्वाक्षरी आणि डॉकस्ट्रिंग वाचतो जेणेकरून टूल स्कीमा तयार करता येईल, त्यामुळे डॉकस्ट्रिंग अचूक ठेवा.

PITFALL 2

रक्कम USDC बेस युनिट्स आहेत, स्ट्रिंग्स म्हणून

payments.create takes amountWei: a string of USDC base units, not a float and not a dollar figure. USDC has 6 decimals, so 0.01 USDC is "10000" and 5 USDC is "5000000". Type the tool argument as str and validate it before the call - a float that sneaks through either errors at the backend or moves a millionth of what you meant.

PITFALL 3

send_payment लवकर 503 उत्तर देऊ शकते

payments.create डिफॉल्टने पुनःप्रयत्न करत नाही आणि तुमच्या नेटवर्कसाठी चेन अडॅप्टर वायर्ड होईपर्यंत 503 परत करू शकते. एका अयशस्वी पेमेंटवर ग्रुप चॅट लूप करू देऊ नका - तुमच्या कार्यामध्ये त्रुटी पकडा, मॉडेलवर कार्य करण्यासाठी स्पष्ट संदेश परत करा, आणि स्वयंचलितपणे तयार केलेल्या idempotency कीवर अवलंबून राहा जेणेकरून एक मॅन्युअल पुनःप्रयत्न दुहेरी पेमेंट करणार नाही.

PITFALL 4

AutoGen 0.4+ async आहे; SDK कॉल समक्रमित आहे

AutoGen 0.4 टूल्सना एक async लूपमध्ये चालवते. blockchain0x क्लायंट कॉल समक्रमित आहे, जो जलद विनंतीसाठी चांगला आहे, परंतु एक मंद कॉल लूपला अडथळा आणतो. जर तुम्ही वास्तविक प्रमाण हलवत असाल, तर SDK कॉलला asyncio.to_thread सह लपवा जेणेकरून इव्हेंट लूप प्रतिसाद देत राहील. एका टर्नसाठी एकच पेमेंटसाठी, थेट कॉल करणे ठीक आहे.

PITFALL 5

कच्च्या शरीराच्या विरोधात इनबाउंड वेबहुक सत्यापित करा

जर तुमचा एजंट पैसे देखील प्राप्त करतो, तर ते वेबहुकद्वारे पुष्टी करा, मतदानाद्वारे नाही. RAW विनंती बाइट्सवर स्वाक्षरीची पुष्टी करा (await request.body()), कधीही request.json() पुन्हा-सीरियलाइज केलेले नाही, कारण HMAC अचूक बाइट्स कव्हर करते. हे HMAC-SHA256 आहे ज्यात 300-सेकंद पुनरुत्पादन विंडो आहे. खालील हँडलर संपूर्ण गोष्ट आहे.

वारंवार विचारले जाते

तीन AutoGen-विशिष्ट प्रश्न.

इंस्टॉल करण्यासाठी एक समर्पित AutoGen पॅकेज आहे का?

नाही. कोणताही समर्पित AutoGen अडॅप्टर नाही, आणि हे हेतुपुरस्सर आहे - AutoGen आधीच एक साधी टाइप केलेली कार्य साधनात रूपांतरित करतो, त्यामुळे प्रामाणिक मार्ग म्हणजे वास्तविक blockchain0x क्लायंटला एका कार्यात लपेटणे आणि ते तुमच्या एजंटला देणे, जसे वर दर्शविले आहे. एकमेव शिप केलेले फ्रेमवर्क पॅकेजेस म्हणजे blockchain0x-langchain आणि blockchain0x-crewai (दोन्ही Python) आणि @blockchain0x/mcp सर्व्हर. इतर सर्व काही, AutoGen समाविष्ट, हा काही ओळ रेसिपी आहे.

रेसिपी क्लासिक AutoGen (0.2.x) आणि 0.4+ वर कार्य करते का?

हो, कारण payment logic ही फक्त एक Python function आहे - त्यात AutoGen आवृत्ती-विशिष्ट काहीही नाही. 0.4+ वर तुम्ही ती वरीलप्रमाणे AssistantAgent(tools=[...]) द्वारे देता. 0.2.x ConversableAgent line वर तुम्ही तीच function register_function ने नोंदवता. इथे import करायला .legacy submodule नाही, कारण packageच नाही; function तुमचीच आहे.

माझा एजंट USDC कसा प्राप्त करतो किंवा इनव्हॉइस कसा निपटवतो, फक्त पाठवतो का?

Client चा आणखी भाग याच प्रकारे wrap करा. blockchain0x.transactions.get transaction वाचते, blockchain0x.agents.get आणि blockchain0x.agents.list wallets वाचतात, आणि blockchain0x.payment_requests.settle dashboard मध्ये तयार केलेला invoice on-chain proof सह settle करते. प्रत्येक गोष्ट तुमच्या tools list मधील आणखी एक typed function बनते. Inbound payments payment.received webhook द्वारे confirm होतात (खालील handler ने ते verify करा); नवीन invoice तयार करणारे कोणतेही tool नाही, कारण payment requests dashboard मध्ये तयार होतात.

तुमच्या AutoGen एजंटला एक वॉलेट द्या.

वास्तविक क्लायंटला लपेटणाऱ्या काही ओळी, स्थापित करण्यासाठी कोणतेही पॅकेज नाही. सुरू करण्यासाठी मोफत.