OpenAI ఏజెంట్స్ SDK సమీకరణ.
ఏజెంట్స్ SDK ప్యాకేజీ లేదు, మరియు మీకు ఒకటి అవసరం లేదు. @function_toolతో ఒక ఫంక్షన్ను అలంకరించండి, నిజమైన blockchain0x క్లయింట్ను కాల్ చేయండి, మరియు మీ ఏజెంట్ Baseలో USDCని కదిలించగలదు.
OpenAI Agents SDK కోసం ప్రత్యేక package లేదు, మీకు అది అవసరమూ లేదు. SDK తో decorated function ను tool గా మారుస్తుంది, కాబట్టి మీరు నిజమైన Python client ను ఒక function లో wrap చేసి, దాన్ని మీ లో చేర్చుతారు. Agent USDC పంపగలదు, invoices settle చేయగలదు, wallets చదవగలదు - single agents, handoffs, మరియు underlying Responses API అంతటా. Payments Base పై settle అవుతాయి.
OpenAI పంపించే అత్యంత శుభ్రంగా ఉన్న టూల్-కాలింగ్ ఉపరితలం.
OpenAI ఏజెంట్స్ SDK (2025లో విడుదలైంది) రెస్పాన్స్ API పై ఏజెంట్లను నిర్మించడానికి OpenAI యొక్క సిఫార్సు చేయబడిన మార్గం. ఇది టూల్ నమోదు, సందేశ చక్రాలు మరియు ఏజెంట్ల మధ్య హ్యాండాఫ్ల చుట్టూ బాయిలర్ప్లేట్ను అబ్స్ట్రాక్ట్ చేస్తుంది మరియు శుభ్రంగా, టైప్ చేయబడిన Python కోడ్ను ఉత్పత్తి చేస్తుంది. మీరు నేడు OpenAI-కేంద్రీకృత ఏజెంట్ ప్రాజెక్ట్ను ప్రారంభిస్తున్నట్లయితే మరియు ఫ్రేమ్వర్క్ ప్రాధాన్యతలు లేవనుకుంటే, ఇది మేము సిఫారసు చేసే SDK.
రెసిపీ ఉద్దేశపూర్వకంగా బరువుగా ఉంది. send_usdc అనేది @function_toolతో అలంకరించిన సాధారణ ఫంక్షన్; మీరు దానిని ఒక ఏజెంట్ యొక్క సాధనాల జాబితాలో చేర్చుతారు మరియు రన్నర్ దానిని ఎత్తుకుంటుంది. ప్రత్యేక కాన్ఫిగరేషన్ లేదు, అదనపు రాపర్ లేదు, SDK యొక్క ఫోర్క్ లేదు. ఏజెంట్ SDK ఒక కొత్త ఫీచర్ను (బహుళ-మోడల్ ఇన్పుట్లు, వాయిస్ ఏజెంట్లు) పంపించినప్పుడు, మీ ఫంక్షన్ పని చేయడం కొనసాగిస్తుంది ఎందుకంటే ఇది ప్రామాణిక సాధన-కాల్ ఉపరితలంపై ఉంది - దానిలో ఏదీ వెర్షన్-స్పెసిఫిక్గా ఉండదు.
ఏజెంట్స్ SDK మరియు కోర్ SDKని ఇన్స్టాల్ చేయండి. రెండు కీలు.
చేర్చడానికి blockchain0x Agents SDK ప్యాకేజీ లేదు. మీరు OpenAI Agents SDKని (openai-agents ప్యాకేజీ, Python 3.10+) మరియు నిజమైన blockchain0x కోర్ SDKని ఇన్స్టాల్ చేస్తారు, తరువాత క్రింద ఫంక్షన్ను రాస్తారు. అది మొత్తం ఆధారిత జాబితా.
pip install openai-agents blockchain0xexport OPENAI_API_KEY=sk-... export BLOCKCHAIN0X_API_KEY=sk_test_... # sk_test_ = Base Sepolia, sk_live_ = Base mainnet
OPENAI_API_KEY మీ existing OpenAI key (Agents SDK underlying Responses API కోసం దాన్ని use చేస్తుంది). BLOCKCHAIN0X_API_KEY అనేది మీ dashboard నుంచి వచ్చిన sk_test_ testnet లేదా sk_live_ mainnet key; client దాన్ని environment నుండి reads చేస్తుంది. మీ agent కు money కూడా వస్తే, webhook handler కు అదనంగా BLOCKCHAIN0X_WEBHOOK_SECRET అవసరం.
చెల్లించే @function_tool, ఏజెంట్కు అందించబడింది.
ఇది మొత్తం integration. send_usdc real blockchain0x client ను call చేస్తుంది; @function_tool దాన్ని ఒక tool గా మారుస్తుంది, మరియు Runner call ను orchestrate చేస్తుంది. SDK schema build చేయడానికి type hints మరియు docstring ను reads చేస్తుంది, కాబట్టి వాటిని accurate గా ఉంచండి. దీన్ని run చేయండి, అప్పుడు agent Base లో USDC ను move చేస్తుంది.
from agents import Agent, Runner, function_tool from blockchain0x import Client blockchain0x = Client() # reads BLOCKCHAIN0X_API_KEY from the environment @function_tool 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. """ return str( blockchain0x.payments.create(body={"agentId": agent_id, "to": to, "amountWei": amount_wei}) ) agent = Agent( name="treasurer", instructions="You pay vendor invoices in USDC within owner-set limits.", tools=[send_usdc], model="gpt-4o", ) result = await Runner.run( agent, input="Pay 0.01 USDC from agent agt_123 to 0xVendor for the dataset.", ) print(result.final_output)
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 is another @function_tool in the list.
సంతకం చేసిన వెబ్హుక్తో ఇన్బౌండ్ చెల్లింపులను నిర్ధారించండి.
మీ ఏజెంట్ కూడా USDCని అందుకుంటే, దాన్ని పోలింగ్ చేయకుండా వెబ్హుక్తో ధృవీకరించండి. ధృవీకరించు సహాయకుడు Node SDKలో షిప్పింగ్ చేస్తుంది; ఒక Python సేవలో మీరు డాక్యుమెంటెడ్ HMACకు వ్యతిరేకంగా చేతితో ధృవీకరించాలి, ఇది సహాయకుడు చేసే అన్ని విషయాలు. కింద ఉన్న FastAPI ఉదాహరణ; అదే కోడ్ ఏ అసంక్రోనస్ Python ఫ్రేమ్వర్క్లో పనిచేస్తుంది.
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, arq) మరియు హ్యాండ్లర్ను బ్లాక్ చేయకుండా వెంటనే 200 కి స్పందించండి.
మీరు ముడివేస్తున్న క్లయింట్ ఓపెన్ ఉంది. దీన్ని చదవండి.
clone చేయడానికి ప్రత్యేక Agents SDK 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 లో documented గా ఉన్నాయి. Base Sepolia పై sk_test_ key తో start చేయండి, తర్వాత function మీరు ఆశించినట్లు పనిచేసినప్పుడు sk_live_ కి switch చేయండి.
మొదటి సమీకరణలో గమనించాల్సిన ఐదు విషయాలు.
ఇవి మా మద్దతు ఇన్బాక్స్ నుండి వస్తాయి. ముందుగా వాటిని తెలుసుకోవడం ప్రతి ఒక్కటికి ఒక గంటను సేవ్ చేస్తుంది.
ఏజెంట్స్ SDK ప్యాకేజీ లేదు - మీరు SDKని చుట్టండి
Blockchain0x LangChain మరియు CrewAI కోసం అడాప్టర్లు మరియు MCP సర్వర్ను పంపిస్తుంది; ప్రత్యేకమైన OpenAI Agents SDK ప్యాకేజీ లేదు. పై వంటకం మార్గం: @function_tool తో సాధారణ టైప్డ్ ఫంక్షన్ను అలంకరించండి, వాస్తవ blockchain0x క్లయింట్ను లోపల కాల్ చేయండి, మరియు దానిని Agent(tools=[...]) కు చేర్చండి. SDK సంతకం మరియు డాక్స్ట్రింగ్ను చదివి సాధనం స్కీమాను నిర్మిస్తుంది, కాబట్టి డాక్స్ట్రింగ్ ఖచ్చితంగా ఉంచండి.
Agents SDK అనేది Assistants API కాదు
OpenAI ఏజెంట్స్ SDK (openai-agents ప్యాకేజ్, ఏజెంట్స్గా దిగుమతి చేసుకోబడింది) పాత అసిస్టెంట్స్ API కంటే వేరే ఉత్పత్తి. రెసిపీ ఏజెంట్స్ SDKని లక్ష్యం చేస్తుంది: ఏజెంట్ + రన్నర్ + @function_tool రెస్పాన్స్ API పై. మీరు client.beta.assistants.create(...) ను కాల్ చేస్తుంటే, మీరు OpenAI క్రమంగా తగ్గిస్తున్న పాత థ్రెడ్స్/రన్ మోడల్లో ఉన్నారు - ఏజెంట్స్ SDK కు మారండి మరియు పై ఫంక్షన్ నేరుగా పడుతుంది.
Amounts USDC base units గా, strings రూపంలో
payments.create takes amountWei: a string of USDC base units, not a float. USDC has 6 decimals, so 0.01 USDC is "10000" and 5 USDC is "5000000". Type the function argument as str; a float will lose precision before it reaches the API. Keep it a string end to end.
send_payment ముందుగా 503ను సమాధానం ఇవ్వవచ్చు
payments.create డిఫాల్ట్గా పునరావృతం చేయదు మరియు మీ నెట్వర్క్ కోసం చైన్ అడాప్టర్ కేబుల్ చేయబడేవరకు 503ను తిరిగి ఇవ్వవచ్చు. మీ ఫంక్షన్లో పొరపాటును పట్టుకోండి మరియు మోడల్ చర్య తీసుకునే స్పష్టమైన సందేశాన్ని తిరిగి ఇవ్వండి, రన్నర్ చక్రం చేయకుండా. ఆటో-మింటెడ్ ఐడెంపోటెన్సీ కీ ఒక మాన్యువల్ రిట్రై డబుల్-చెల్లించదు.
అసింక్-మాత్రం రన్టైమ్
ఏజెంట్ SDK అసింక్-ఫస్ట్ - await Runner.run(...). మీ సాధనంలో blockchain0x కాల్ సమకాలికంగా ఉంటుంది, ఇది ఒకే వేగవంతమైన చెల్లింపుకు బాగుంది కానీ లోడ్ కింద లూప్ను బ్లాక్ చేస్తుంది. మీరు అనేక సమకాలిక ఏజెంట్లను నడుపుతున్నట్లయితే, SDK కాల్ను asyncio.to_thread తో ముడివేయండి. సమకాలిక ఎంట్రీ పాయింట్ నుండి, asyncio.run() టాప్ లెవల్ వద్ద.