OpenAI Agents SDK সংহতি।
এজেন্টৰ SDK পেকেজ নাই, আৰু আপোনাৰ একো প্ৰয়োজন নাই। @function_tool সৈতে এটা ফাংশন সজাওক, বাস্তৱ blockchain0x ক্লায়েন্টক কল কৰক, আৰু আপোনাৰ এজেন্ট Base ত USDC স্থানান্তৰ কৰিব পাৰে।
OpenAI Agents SDK-ৰ বাবে কোনো package নাই, আৰু আপোনাক তাৰ প্ৰয়োজনো নহয়। SDK-এ সৈতে এটা decorated function-ক tool-লৈ ৰূপান্তৰ কৰে, সেয়ে আপুনি real Python client-টো এটা function-ত wrap কৰি আপোনাৰ -ত যোগ কৰে। Agent-এ USDC পঠিয়াব পাৰে, invoice settle কৰিব পাৰে, আৰু wallet পঢ়িব পাৰে - single agent, handoff, আৰু underlying Responses API-ৰ মাজেৰে। Payment-সমূহ Base-ত settle হয়।
সৰ্বাধিক পৰিষ্কাৰ টুল-ক'লিং পৃষ্ঠ OpenAI পঠিয়ায়।
OpenAI এজেন্ট SDK (2025 চনত মুক্ত) হৈছে OpenAIৰ পৰামৰ্শিত উপায় এজেন্টসমূহ নিৰ্মাণ কৰিবলৈ Responses APIৰ ওপৰত। ই টুল ৰেজিষ্ট্ৰেশ্যন, বাৰ্তা লুপ, আৰু এজেন্টসমূহৰ মাজত হেণ্ডঅফৰ চাৰিওফালে বয়লাৰপ্লেটটোক বিমুক্ত কৰে, আৰু সেয়া পৰিষ্কাৰ, টাইপ কৰা পাইথন কোড উৎপন্ন কৰে। যদি আপুনি আজিৰ পৰা 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 হৈছে আপোনাৰ বিদ্যমান OpenAI চাবি (Agents SDKয়ে ইয়াক underlying Responses APIৰ বাবে ব্যৱহাৰ কৰে)। BLOCKCHAIN0X_API_KEY হৈছে আপোনাৰ ডেছব'ৰ্ডৰ পৰা sk_test_ testnet বা sk_live_ mainnet চাবি; ক্লায়েন্টে ইয়াক পৰিবেশৰ পৰা পঢ়ে। যদি আপোনাৰ এজেণ্টে ধনো গ্ৰহণ কৰে, তেন্তে webhook হেণ্ডলাৰে লগতে BLOCKCHAIN0X_WEBHOOK_SECRETৰ প্ৰয়োজন।
এখন @function_tool যি পেমেণ্ট কৰে, এজেন্টক দিয়া।
তলত সমগ্ৰ একত্ৰণ আছে। send_usdc বাস্তৱ blockchain0x ক্লায়েন্টক কল কৰে; @function_tool ইয়াক এটা টুললৈ পৰিৱৰ্তন কৰে, আৰু ৰাণাৰটো কলটো সংগঠিত কৰে। SDKয়ে টাইপ হিন্ট আৰু ডকষ্ট্ৰিং পঢ়ে যাতে স্কিমা নিৰ্মাণ কৰিব পাৰে, সেয়ে সিহঁতক সৎ ৰাখক। ইয়াক চলাও আৰু এজেন্টে Baseত USDC স্থানান্তৰ কৰে।
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 উদাহৰণ; একে কোড যিকোনো async 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}
এলগৰিদমটো HMAC-SHA256 হৈছে t.rawBodyৰ ওপৰত, এটা ধ্ৰুৱক-সময় তুলনা, আৰু 300-ছেকেণ্ডৰ পুনৰ খেলা জাননী। কাঁচা বডী পঢ়ক await request.body()ৰ জৰিয়তে, কেতিয়াও request.json() পুনৰ-ডিছাৰিয়েলাইজ নকৰিব, কাৰণ সেয়া স্বাক্ষৰ যি বাইটসমূহ ঢাকিছে সেয়া সলনি কৰে। পঠিওৱা ইভেন্টসমূহ হৈছে payment.received, payment.sent, wallet.deployed, আৰু webhook.test। গম্ভীৰ অনুসৰণৰ কাৰ্যৰ বাবে, এটা চাকৰি (Celery, arq) কিউত ৰাখক আৰু 200 তৎক্ষণাত প্ৰতিক্ৰিয়া জনাওক যাৰ ফলত হেণ্ডলাৰটো ব্লক নকৰে।
আপুনি যি ক্লায়েন্টক মুড়ি দিছে সেয়া খোলা। সিহঁত পঢ়ক।
এজেণ্ট SDKৰ ক্লোন কৰিবলৈ কোনো ষ্টাৰ্টাৰ পেকেজ নাই - ওপৰৰ ৰেচিপিখন হৈছে একীকৰণ। blockchain0x SDKসমূহ GitHubত খুলি আছে; এই ৰেচিপিখনে Python SDK (blockchain0x-python)ক মোড়ে, ডক্সত সম্পূৰ্ণ পদ্ধতি পৃষ্ঠাৰ সৈতে। ফাংশন বডীসমূহৰ বাবে ইয়াক এটা উল্লেখ হিচাপে পঢ়ক।
github.com/tosh-labs/blockchain0x-pythonসম্পূৰ্ণ SDK পদ্ধতি পৃষ্ঠ আৰু স্কোপসমূহ ডক্সসমূহত নথিভুক্ত কৰা হৈছে। Base Sepoliaৰ বিৰুদ্ধে sk_test_ চাবিৰ সৈতে আৰম্ভ কৰক, তাৰপিছত ফাংচন আপোনাৰ আশা কৰা কাম কৰিলে sk_live_লৈ সলনি কৰক।
প্ৰথম একীকৰণত লক্ষ্য কৰিবলগীয়া পাঁচটা কথা।
এইবোৰ আমাৰ সমৰ্থন ইনবক্সৰ পৰা আহে। আগতীয়াকৈ জানিলে প্ৰতিটোতে এক ঘণ্টা বাচে।
এজেন্টৰ SDK পেকেজ নাই - আপুনি SDK মুঠ কৰে
Blockchain0x LangChain আৰু CrewAIৰ বাবে এডাপ্টাৰ আৰু MCP ছাৰ্ভাৰ প্ৰেৰণ কৰে; ইয়াত কোনো নিৰ্দিষ্ট OpenAI Agents SDK পেকেজ নাই। ওপৰৰ ৰেচিপি হৈছে পথ: @function_toolৰ সৈতে এটা সাধাৰণ টাইপ কৰা ফাংচন সজ্জিত কৰক, ভিতৰত বাস্তৱ blockchain0x ক্লায়েন্ট কল কৰক, আৰু ইয়াক Agent(tools=[...])ত যোগ কৰক। SDKয়ে টুল স্কিমা নিৰ্মাণ কৰিবলৈ স্বাক্ষৰ আৰু ডকষ্ট্ৰিং পঢ়ে, সেয়ে ডকষ্ট্ৰিং সঠিক ৰাখক।
এজেন্টস SDK হৈছে Assistants API নহয়
OpenAI এজেণ্টৰ SDK (openai-agents পেকেজ, এজেণ্ট হিচাপে আমদানি কৰা) পুৰণি সহায়ক APIৰ পৰা এটা ভিন্ন উৎপাদ। ৰেচিপিটো এজেণ্টৰ SDKৰ লক্ষ্য: এজেণ্ট + ৰাণাৰ + @function_tool Responses APIৰ ওপৰত। যদি আপুনি client.beta.assistants.create(...) কল কৰিছে, আপুনি পুৰণি থ্ৰেড/ৰাণৰ মডেলত আছে যি OpenAI বন্ধ কৰি আছে - এজেণ্টৰ SDKলৈ সলনি কৰক আৰু ওপৰলৈ উল্লেখ কৰা ফাংশনটো সোজাকৈ মাৰ্গত পৰে।
মাত্ৰাসমূহ USDC বেছ ইউনিট, ষ্ট্ৰিং হিচাপে
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 উলিয়াব পাৰে। আপোনাৰ ফাংশনৰ ভিতৰত ত্ৰুটিটো ধৰি ৰাখক আৰু মডেলৰ কাৰ্য্য কৰিবলৈ এটা স্পষ্ট বাৰ্তা উলিয়াব, ৰাণাৰ লুপ কৰিবলৈ দিয়াৰ সলনি। স্বয়ংক্ৰিয়ভাৱে সৃষ্টি কৰা idempotency চাবি মানে এটা ম্যানুৱেল পুনৰ চেষ্টা দ্বিগুণ পেমেন্ট নকৰে।
এছিঙ্ক-মাত্ৰ ৰাণটাইম
এজেণ্টৰ SDKটো async-প্ৰথম - await Runner.run(...)। আপোনাৰ সঁজুলিৰ ভিতৰত blockchain0x কলটো সমকালীন, যি এটা একমাত্ৰ তৎক্ষণাত পেমেন্টৰ বাবে ঠিক আছে কিন্তু লোডৰ তলত লুপটো বন্ধ কৰে। যদি আপুনি বহুতো সমকালীন এজেণ্ট চলাইছে, SDK কলটো asyncio.to_threadৰ সৈতে মুড়ি দিয়ক। এটা সমকালীন প্ৰৱেশ বিন্দুৰ পৰা, asyncio.run() শীৰ্ষ স্তৰত।