CrewAI পেমেন্ট ইন্টেগ্ৰেচন।
CrewAIৰ এজন কৰ্মীলৈ এটা ৱালেট দিয়ক। এজন নিবিড় তহবিলৰ এজেণ্ট USDC পঠিয়ায়, ইনভইচসমূহ সমাধান কৰে, আৰু বেলেন্স পঢ়ে যেতিয়া কৰ্ম এজেণ্টসমূহ কৰ্মত কেন্দ্ৰীভূত থাকে।
Blockchain0x এ এটা বাস্তৱ Python package, , প্ৰদান কৰে। ইয়াক install কৰক, set কৰক, call কৰক, আৰু toolসমূহ এটা dedicated treasurer agentক দিয়ক। সেই agent এ USDC পঠিয়াব পাৰে, on-chain proofৰে invoice settle কৰিব পাৰে, আৰু wallet পঢ়িব পাৰে, আনহাতে crewৰ work agentসমূহৰ কোনো wallet access নাথাকে। USDC Base ত settle হয়।
CrewAIৰ শক্তি হৈছে ভূমিকা বিভাজন। ইয়াক ৱালেটৰ বাবে ব্যৱহাৰ কৰক।
অন্যান্য ফ্ৰেমৱৰ্কে প্ৰতিটো টুলক এখন একক এজেন্টৰ ওপৰত থলুৱা কৰে। CrewAIৰ ডিজাইন ভূমিকা পৃথকীকৰণক উৎসাহিত কৰে: এজন গৱেষক গৱেষণা কৰে, এজন লেখক লেখে, এজন পৰ্যালোচক পৰ্যালোচনা কৰে। পইচাই একে ব্যৱহাৰ কৰাৰ যোগ্য - এজন নিবেদিত কোষাধ্যক্ষ এজেন্টে ৱালেট টুলসমূহৰ অধিকার ৰাখে, আৰু কৰ্ম এজেন্টসমূহে কোনো টুল নধৰে। খৰচৰ অধিকাৰ এখন ঠাইত থাকে য'ত দলৰ ভিতৰত যিকোনো এজেন্টৰ মাজেৰে লিক নহয়।
এই আকাৰটো অডিট পথসমূহক অধিক স্পষ্ট কৰে। যেতিয়া USDC স্থানান্তৰ হয়, আপুনি জানে ঠিক কোন এজেন্টে ইয়াক স্থানান্তৰ কৰিছে (ট্ৰেজাৰ) আৰু ইয়াৰ বাবে কোনটো কাৰ্য্য আছিল (যি ইয়াক হস্তান্তৰ কৰিছিল)। একক-এজেন্টৰ একত্ৰিতকৰণে সেই সীমাৰ মূৰ্তি কৰে আৰু প্ৰতি-কাৰ্য্য খৰচ বিশ্লেষণ কঠিন কৰে।
এখন পিপ ইনষ্টল। এখন পৰিবেশ ভেৰিয়েবল।
পেকেজটোৰ Python 3.10 বা নতুনৰ প্ৰয়োজন আৰু কবিতা বা pipৰ সৈতে কাম কৰে। ই মূল blockchain0x SDK আৰু crewaiক নিৰ্ভৰশীলতা হিচাপে আনে; আন কিছু যোগ কৰিবলৈ নাই।
pip install blockchain0x-crewaiexport BLOCKCHAIN0X_API_KEY=sk_test_... # sk_test_ = Base Sepolia, sk_live_ = Base mainnet
BLOCKCHAIN0X_API_KEY হৈছে আপোনাৰ Blockchain0x ডেছব'ৰ্ডৰ পৰা sk_test_ testnet বা sk_live_ mainnet চাবি, আৰু ইয়াই একমাত্ৰ চলক যি এডাপ্টাৰে প্ৰয়োজন - ইয়াক বেকএণ্ডলৈ আগবঢ়ায় আৰু নিজৰ কোনো গোপনীয়তা ৰাখে। তলত থকা webhook হেণ্ডলাৰৰ বাবে আপুনি BLOCKCHAIN0X_WEBHOOK_SECRETও স্থাপন কৰে, যি ডেছব'ৰ্ডে আপোনাৰ webhook সৃষ্টি বা ঘূৰাই দিলে একবাৰ মাক কৰে।
বিলিং + গৱেষণা ভূমিকা থকা এখন কাম কৰি থকা দুটা এজেন্টৰ দল।
তলত এটা সম্পূৰ্ণ CrewAI দল আছে য'ত এটা কোষাধ্যক্ষ এজেন্টে USDCত এটা তথ্য বিক্ৰেতাক পেমেন্ট কৰে, আৰু এটা গৱেষক এজেন্টে ফলাফল ব্যৱহাৰ কৰে। কোষাধ্যক্ষৰ হাতত ৱালেট টুল আছে; গৱেষকৰ হাতত কোনো নাই। এইটো খৰচ কৰা দলৰ বাবে প্ৰমাণিত প্যাটাৰ্ন।
from crewai import Agent, Task, Crew from blockchain0x import Client from blockchain0x_crewai import create_blockchain0x_toolset client = Client() # reads BLOCKCHAIN0X_API_KEY from the environment tools = create_blockchain0x_toolset(client) # A dedicated treasurer holds the wallet tools; the work agents do not. treasurer = Agent( role="Treasurer", goal="Pay vendor invoices in USDC within owner-set limits", backstory="Operates a Blockchain0x agent wallet on Base.", tools=tools, allow_delegation=False, ) researcher = Agent( role="Senior Market Analyst", goal="Produce a thorough Q4 LLM market analysis", backstory="A specialist analyst with 10 years in tech-market research.", tools=[], allow_delegation=False, ) pay_task = Task( description="Pay 0.01 USDC from our agent wallet to the data vendor at 0xVendor.", expected_output="The transaction hash of the settled payment.", agent=treasurer, ) research_task = Task( description="Using the purchased dataset, write the Q4 LLM market analysis.", expected_output="A 1,500-word market analysis.", agent=researcher, context=[pay_task], ) crew = Crew(agents=[treasurer, researcher], tasks=[pay_task, research_task]) result = crew.kickoff()
When you call crew.kickoff(), the pay_task runs first: the treasurer calls blockchain0x_send_payment, the SDK submits the transfer on Base, and the transaction hash is the task output. The research_task runs next and uses the purchased result. amount_wei is USDC base units, so 0.01 USDC is the string "10000". On a sk_test_ key the whole flow runs on Base Sepolia, and payments.create can answer 503 until the chain adapter is wired for your network.
এটা পেমেন্ট স্থানান্তৰ হ'লে পৰৱৰ্তী ক্রিউটো সক্ৰিয় কৰা।
যেতিয়া USDC আপোনাৰ এজেণ্টলৈ স্থিৰ হয়, Blockchain0x আপোনাৰ ৱেবহুক URLলৈ এটা স্বাক্ষৰিত ঘটনা POST কৰে। verify সহায়ক Node SDKত প্ৰেৰণ কৰা হয়; এটা Python সেৱাই নথিভুক্ত HMACৰ বিৰুদ্ধে হাতৰ দ্বাৰা পৰীক্ষা কৰে, যি হৈছে সহায়কৰ সকলো কাম। তলত Flask উদাহৰণ; একে কোডটো FastAPI বা যিকোনো Python ৱেব ফ্ৰেমৱৰ্কত কাম কৰে।
import hmac, hashlib, os, time from flask import Flask, request, abort app = Flask(__name__) SECRET = os.environ["BLOCKCHAIN0X_WEBHOOK_SECRET"].encode() @app.post("/webhooks/payment") def receive(): raw = request.get_data() # RAW bytes - do not parse first sig = request.headers.get("X-Blockchain0x-Signature", "") ts = request.headers.get("X-Blockchain0x-Timestamp", "") # Header is "t=<unix>,v1=<hex>"; some proxies send bare hex + the ts header. 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: abort(401) if request.headers.get("X-Blockchain0x-Event-Type") == "payment.received": run_followup_for(request.get_json()) # USDC landed - do the work return "ok", 200
এইটো হৈছে বাস্তৱ অ্যালগৰিদম: t.rawBody ষ্ট্ৰিংৰ ওপৰত HMAC-SHA256, এটা ধ্ৰুৱক-সময় তুলনা, আৰু 300-ছেকেণ্ডৰ পুনৰ খেলা উইণ্ডো। কাঁচা শৰীৰ পঢ়ক (request.get_data()), কেতিয়াও request.get_json() পুনৰ-সিরিয়েলাইজ কৰা নহয়, কাৰণ সেইটো স্বাক্ষৰৰ আচ্ছাদন কৰা বাইটসমূহ সলনি কৰে। স্থাপত্য: হেণ্ডলাৰটোক এটা চাকৰি (Celery, RQ, এটা Redis তালিকা) ৰ বাবে এনকিউ কৰিবলৈ দিয়ক যিয়ে বাস্তৱ CrewAI চলা আৰম্ভ কৰে। হেণ্ডলাৰত crew.kickoff() কল কৰাটো মিনিট ল'ব পাৰে আৰু HTTP অনুৰোধৰ সময় সীমা শেষ কৰিব।
কৰ্মীলৈ সম্পূৰ্ণ টুলছেটটো দিয়ক, অথবা মাত্ৰ এটা টুল।
create_blockchain0x_toolset পাঁচটা টুলৰ সকলোটা উলিয়ায়: blockchain0x_send_payment, blockchain0x_settle_invoice, blockchain0x_get_wallet, blockchain0x_list_wallets, আৰু blockchain0x_get_transaction। যদি এটা দলক মাত্ৰ পেমেন্ট কৰিবলৈ লাগে, তেন্তে ইয়াক মাত্ৰ সেইটো এখন একক কাৰখানাৰ সৈতে দিয়ক।
from blockchain0x_crewai import create_payment_tool pay = create_payment_tool(client) # amount_wei is USDC base units: 6 decimals, so 10000 = 0.01 USDC. pay.run(agent_id="agt_123", to="0xRecipient", amount_wei="10000")
প্ৰতি-ক্ষমতা কাৰখানাসমূহ হৈছে create_payment_tool, create_invoice_tool, create_wallet_tool, create_wallets_list_tool, আৰু create_transaction_tool। উৎস আৰু টেষ্টনেট উদাহৰণসমূহ Python SDK repoত আছে; CrewAI সমৰ্থন মেট্ৰিক ডক্সসমূহত আছে।
এখন ক্রুত বিলিং সংযোগ কৰাৰ সময় লক্ষ্য কৰিবলগীয়া পাঁচটা কথা।
CrewAIৰ ভূমিকা-ভিত্তিক ডিজাইনেই পেমেন্ট ইন্টেগ্ৰেচনক অন্যান্য ফ্ৰেমৱৰ্কতকৈ অধিক পৰিষ্কাৰ কৰে। ইয়াৰ নিজৰ কিছু সমস্যা আছে। আগতীয়াকৈ এইবোৰ জানিলে সময় বাচে।
ভুল এজেন্টত ৱালেট টুলসমূহ ৰাখা
CrewAI এজেন্টৰ ভূমিকা আছে। ৱালেট টুলসমূহ গৱেষকক দিয়ক, যিয়ে গৱেষণা কৰা উচিত, আৰু LLMয়ে বিশ্লেষণৰ মাজত ধন স্থানান্তৰ কৰিবলৈ চেষ্টা কৰা আৰম্ভ কৰে। পৰিষ্কাৰ পেটাৰ্ন হৈছে এটা নিৰ্দিষ্ট কোষাধ্যক্ষ এজেন্ট যিয়ে টুলসমূহ ৰাখে আৰু নিজৰ কামৰূপে চলে; কামৰ এজেন্টসকলৰ কোনো ৱালেট প্ৰৱেশ নাই। ওপৰৰ উদাহৰণটো সেই আকৃতি অনুসৰণ কৰে। ইয়াক কপি কৰক।
অনুক্ৰমিক বনাম হায়াৰাৰ্কিকেল প্ৰক্ৰিয়া
CrewAIয়ে অনুক্ৰমিক (ডিফল্ট) আৰু শ্ৰেণীবদ্ধ কাৰ্যন্বয় সমৰ্থন কৰে। শ্ৰেণীবদ্ধতাত, এটা মেনেজাৰ এজেন্টে ক্ৰিউক সংগঠিত কৰে। যদি মেনেজাৰক ৱালেট টুলসমূহৰ প্ৰতিনিধিত্ব কৰিবলৈ অনুমতি দিয়া হয়, তেন্তে ই যিকোনো অধীনস্থক সঁপিব পাৰে, যি খৰচৰ অধিকাৰ বাবে আপুনি ঠিক নচায়। অথবা একেটা নিৰ্দিষ্ট এজেন্টত টুলসমূহ ৰাখক আৰু অনুক্ৰমিক চলাওক, অথবা মেনেজাৰৰ প্ৰতিনিধিত্বৰ নিয়মসমূহ সীমিত কৰক।
কাৰ্য্যৰ পৰিপ্ৰেক্ষিতৰ পৰা চূড়ান্তকৰণ স্থিতি পঢ়া
ইনবাউণ্ড সমাধান অসমৰ্থিত। যদি গৱেষণা কাৰ্যই ইয়াৰ প্ৰসংগত পেমেন্ট কাৰ্যৰ তালিকা প্ৰদান কৰে (ভাল) কিন্তু LLM তেতিয়া সেই প্ৰসংগত পৰা এটা চূড়ান্ত পেমেন্ট স্থিতি পঢ়িবলৈ চেষ্টা কৰে (ভাল নহয়, নিশ্চিতকৰণ পাছত ৱেবহুকৰ দ্বাৰা আহে), তেন্তে আপুনি মিশ্ৰিত আউটপুট পাব। তলৰ কাৰ্যত ৱেবহুক-প্ৰেৰিত সংকেতৰ ওপৰত গেট কৰক, কাৰ্য প্ৰসংগত নহয়। CrewAIৰ কাৰ্য ক'লব্যাকসমূহ সঠিক হুক।
মাত্ৰাসমূহ USDC বেছ ইউনিট, ষ্ট্ৰিং হিচাপে
blockchain0x_send_payment takes amount_wei: a string of USDC base units, not a float and not a dollar figure. USDC has 6 decimals, so 0.01 USDC is "10000". CrewAI passes tool inputs through as-is, so a Python float arrives as a float and the SDK rejects it - but the error reads like a CrewAI tool error, which throws off first integrators. Pass a string.
Webhook হেণ্ডলাৰ ক্রু প্ৰক্ৰিয়াৰ বাহিৰত
আপোনাৰ webhook হেণ্ডলাৰ সাধাৰণতে এটা পৃথক Flask বা FastAPI প্ৰক্ৰিয়া হয়, দলৰ ৰাণটাইমৰ অংশ নহয়। দলটো নিজৰ kickoff() সম্পূৰ্ণ কৰে আৰু উভতি আহে; webhook পেমেন্ট স্থিৰ হ'লে পিছত আহে। দুয়োটা সংযোগ কৰিবলৈ এটা কিউ বা এটা ডেটাবেছ ৰো ব্যৱহাৰ কৰক যি webhook লেখে আৰু দলটো তাৰ পৰৱৰ্তী ৰাণত পঢ়ে। webhook ৰ বাবে অপেক্ষা কৰি একো দলক জীয়াই ৰাখিব নালাগে - CrewAI ৰাণবোৰ ডিজাইন অনুসৰি সৰু জীৱনকালৰ হয়।